Public bug reported:

attfpd(source package: atfp) on Ubuntu 24.04 listen by atftpd.socket.

atfptd.socket bind UDPv6/IPv6. But this socket accept IPv4 and IPv6 both
packets.

atftpd process require UDPv4/IPv4 listen socket.

# My workaround

atftpd.socket listen UDPv4/IPv4 socket.

/etc/systemd/system/atftpd.socket.d/workaround.conf
[Socket]
ListenDatagram=
ListenDatagram=0.0.0.0:69

# Package Infomation / System Infomation

root@bootserver:~# lsb_release -rd
No LSB modules are available.
Description:    Ubuntu 24.04 LTS
Release:        24.04
root@bootserver:~# apt-cache policy atftpd
atftpd:
  Installed: 0.8.0-3ubuntu3
  Candidate: 0.8.0-3ubuntu3
  Version table:
 *** 0.8.0-3ubuntu3 500
        500 http://ftp.iij.ad.jp/pub/linux/ubuntu/archive noble/universe amd64 
Packages
        100 /var/lib/dpkg/status

# Errorlog

This DEBUG log indicates that there is a problem with this code
https://salsa.debian.org/debian/atftp/-/blob/0.8.0-3/tftpd.c?ref_type=tags#L728-736

May 11 01:24:53 bootserver systemd[1]: Started atftpd.service - Advanced TFTP 
Server.
May 11 01:24:53 bootserver atftpd[4551]: Advanced Trivial FTP server started 
(0.8.0)
May 11 01:24:53 bootserver atftpd[4551]:   started by inetd or socket activated
May 11 01:24:53 bootserver atftpd[4551]:   logging level: 7
May 11 01:24:53 bootserver atftpd[4551]:   directory: /srv/tftp/
May 11 01:24:53 bootserver atftpd[4551]:   user: nobody.nogroup
May 11 01:24:53 bootserver atftpd[4551]:   log file: syslog
May 11 01:24:53 bootserver atftpd[4551]:   not forcing to listen on local 
interfaces.
May 11 01:24:53 bootserver atftpd[4551]:   server timeout: 300
May 11 01:24:53 bootserver atftpd[4551]:   tftp retry timeout: 5
May 11 01:24:53 bootserver atftpd[4551]:   maximum number of thread: 100
May 11 01:24:53 bootserver atftpd[4551]:   option timeout:    enabled
May 11 01:24:53 bootserver atftpd[4551]:   option tzise:      enabled
May 11 01:24:53 bootserver atftpd[4551]:   option blksize:    enabled
May 11 01:24:53 bootserver atftpd[4551]:   option windowsize: enabled
May 11 01:24:53 bootserver atftpd[4551]:   option multicast:  enabled
May 11 01:24:53 bootserver atftpd[4551]:      address range:  239.255.0.0-255
May 11 01:24:53 bootserver atftpd[4551]:      port range:     1758
May 11 01:25:16 bootserver atftpd[4551]: socket may listen on any address, 
including broadcast
May 11 01:25:16 bootserver atftpd[4551]: bind: Cannot assign requested address
May 11 01:25:16 bootserver atftpd[4551]: Creating new socket: :::0
May 11 01:25:16 bootserver atftpd[4551]: Server thread exiting
May 11 01:26:36 bootserver atftpd[4551]: SIGTERM received, stopping threads and 
exiting.
May 11 01:26:36 bootserver atftpd[4551]: tftpd.c: 468: select: Interrupted 
system call
May 11 01:26:36 bootserver systemd[1]: Stopping atftpd.service - Advanced TFTP 
Server...
May 11 01:26:36 bootserver atftpd[4551]: atftpd terminating after 300 seconds
May 11 01:26:36 bootserver systemd[1]: atftpd.service: Deactivated successfully.

# GDB debuging

(gdb) n
734     in tftpd.c
(gdb) p to
$6 = {ss_family = 10, __ss_padding = 
"\000\000\036y\000\000\000\000\000\000\000\000\000\000\002", '\000' <repeats 
102 times>,
  __ss_align = 0}
(gdb) p *(struct sockaddr_in*)&to
$8 = {sin_family = 10, sin_port = 0, sin_addr = {s_addr = 31006}, sin_zero = 
"\000\000\000\000\000\000\000"}
(gdb) p *(struct sockaddr_in6*)&to
$9 = {sin6_family = 10, sin6_port = 0, sin6_flowinfo = 31006, sin6_addr = 
{__in6_u = {
      __u6_addr8 = 
"\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000", __u6_addr16 = 
{0, 0, 0, 0, 2, 0, 0, 0},
      __u6_addr32 = {0, 0, 2, 0}}}, sin6_scope_id = 0}
(gdb) quit

root@bootserver:~# lsof -p 7298
COMMAND   PID   USER   FD   TYPE             DEVICE SIZE/OFF    NODE NAME
in.tftpd 7298 atftpd  cwd    DIR              252,1     4096       2 /
in.tftpd 7298 atftpd  rtd    DIR              252,1     4096       2 /
in.tftpd 7298 atftpd  txt    REG              252,1    81040 3014777 
/usr/sbin/atftpd
in.tftpd 7298 atftpd  mem    REG              252,1  2125328 3020752 
/usr/lib/x86_64-linux-gnu/libc.so.6
in.tftpd 7298 atftpd  mem    REG              252,1   182944 3026891 
/usr/lib/x86_64-linux-gnu/libgcc_s.so.1
in.tftpd 7298 atftpd  mem    REG              252,1   625344 3027015 
/usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.11.2
in.tftpd 7298 atftpd  mem    REG              252,1    44064 3047322 
/usr/lib/x86_64-linux-gnu/libwrap.so.0.7.6
in.tftpd 7298 atftpd  mem    REG              252,1   236616 3020748 
/usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
in.tftpd 7298 atftpd    0u  IPv6              63411      0t0     UDP *:tftp
in.tftpd 7298 atftpd    1u  IPv6              63411      0t0     UDP *:tftp
in.tftpd 7298 atftpd    2u  IPv6              63411      0t0     UDP *:tftp
in.tftpd 7298 atftpd    3u  unix 0xffff9d588ed85800      0t0   63415 type=DGRAM 
(CONNECTED)
in.tftpd 7298 atftpd    4u  sock                0,8      0t0   15261 protocol: 
UDPv6

** Affects: atftp (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2065463

Title:
  atftpd require UDPv4 socket

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/atftp/+bug/2065463/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to