dhcpcd-discuss

seccomp violation (unexpected syscall 55)

Mantas Mikulėnas

Fri Dec 11 13:54:35 2020

On Arch Linux x86_64, dhcpcd 9.3.4 will exit several seconds after
startup with SIGSYS and (after rebuilding with seccomp debugging) the
following message:

dhcpcd[556]: ps_seccomp_violation: unexpected syscall 55 (arch=0xc000003e)
dhcpcd[556]: ps_ctl_listen: read: Success

Syscall 55 seems to be getsockopt() here. The crash appears to happen
as soon as the Bird routing daemon starts, so I suspect it's related
to Bird inserting thousands of kernel routes and dhcpcd receiving
thousands of "new route added" messages over its netlink socket, at
which point it will call getsockopt() from dhcpcd_linkoverflow()...

The full service log is:

systemd[1]: Starting dhcpcd@eno1.service...
dhcpcd[545]: dhcpcd-9.3.4 starting
dhcpcd[556]: DUID 00:04:38:4a:31:51:41:35:5a:43:31:37:30:31:30:30:4e:30
dhcpcd[556]: eno1: waiting for carrier
dhcpcd[556]: eno1: carrier acquired
dhcpcd[556]: eno1: IAID 82:38:e4:80
dhcpcd[556]: eno1: adding address fe80::9618:82ff:fe38:e480
dhcpcd[556]: eno1: rebinding lease of 193.219.181.219
dhcpcd[556]: eno1: soliciting an IPv6 router
dhcpcd[556]: eno1: DHCP lease expired
dhcpcd[545]: eno1: DHCP lease expired
dhcpcd[556]: eno1: soliciting a DHCP lease
dhcpcd[556]: eno1: offered 193.219.181.219 from 193.219.181.204
dhcpcd[556]: eno1: probing address 193.219.181.219/26
dhcpcd[556]: eno1: Router Advertisement from fe80::215:17ff:fe91:dba3
dhcpcd[556]: eno1: adding address 2001:778:e27f:0:9618:82ff:fe38:e480/64
dhcpcd[556]: eno1: adding route to 2001:778:e27f::/64
dhcpcd[556]: eno1: adding default route via fe80::215:17ff:fe91:dba3
systemd[1]: Started dhcpcd@eno1.service.
dhcpcd[556]: gre-home: new hardware address: (null)
dhcpcd[556]: gre-land: new hardware address: (null)
dhcpcd[556]: gre-sky: new hardware address: (null)
dhcpcd[556]: gre-star: new hardware address: (null)
dhcpcd[556]: gre-wind: new hardware address: (null)
dhcpcd[556]: eno1: leased 193.219.181.219 for 3600 seconds
dhcpcd[556]: eno1: adding route to 193.219.181.192/26
dhcpcd[556]: eno1: adding default route via 193.219.181.193
dhcpcd[556]: gre-wolke: new hardware address: (null)
dhcpcd[556]: ps_seccomp_violation: unexpected syscall 55 (arch=0xc000003e)
dhcpcd[556]: ps_ctl_listen: read: Success
systemd[1]: dhcpcd@eno1.service: Main process exited, code=exited,
status=1/FAILURE
dhcpcd[556]: ps_sendcmdmsg: Connection refused
dhcpcd[556]: ps_inet_recvra: Connection refused
systemd[1]: dhcpcd@eno1.service: State 'stop-sigterm' timed out. Killing.
systemd[1]: dhcpcd@eno1.service: Killing process 556 (dhcpcd) with
signal SIGKILL.
systemd[1]: dhcpcd@eno1.service: Killing process 601 (dhcpcd) with
signal SIGKILL.
systemd[1]: dhcpcd@eno1.service: Killing process 603 (dhcpcd) with
signal SIGKILL.
systemd[1]: dhcpcd@eno1.service: Killing process 634 (dhcpcd) with
signal SIGKILL.
systemd[1]: dhcpcd@eno1.service: Killing process 852 (dhcpcd) with
signal SIGKILL.
systemd[1]: dhcpcd@eno1.service: Failed with result 'exit-code'.

-- 
Mantas Mikulėnas

Follow-Ups:
Re: seccomp violation (unexpected syscall 55)Roy Marples
Archive administrator: postmaster@marples.name