Bug#965091: glibc: setgroups: Bad address [2.31/x32, regression from 2.30]
Package: libc6
Version: 2.31-1
Severity: grave
Justification: renders package unusable
This is related to #965086 and #965087 (and, in fact, possibly
causing them). After a glibc upgrade half the system services
(postfix, sshd, apt-get(!)) don’t work any more.
Downgrading with dpkg -i the following set of packages fixes it:
libc-bin_2.30-8_x32.deb
libc-dev-bin_2.30-8_x32.deb
libc-l10n_2.30-8_all.deb
libc6-dbg_2.30-8_x32.deb
libc6-dev_2.30-8_x32.deb
libc6_2.30-8_amd64.deb
libc6_2.30-8_i386.deb
libc6_2.30-8_x32.deb
locales-all_2.30-8_x32.deb
locales_2.30-8_all.deb
unscd_0.53-1+b3_x32.deb
Snippet from strace:
[…]
9839 getpid() = 9839
9839 chroot("/run/sshd") = 0
9839 chdir("/") = 0
9839 write(7, "\0\0\0$\0\0\0\7\0\0\0\34privsep user:group 1"..., 40) = 40
9839 setgroups(1, 0xffffffffff866750 <unfinished ...>
9794 <... poll resumed>) = 1 ([{fd=6, revents=POLLIN}])
9839 <... setgroups resumed>) = -1 EFAULT (Bad address)
9794 read(6, <unfinished ...>
9839 write(7, "\0\0\0\36\0\0\0\1\0\0\0\26setgroups: Bad addre"..., 34 <unfinished ...>
[…]
Noticeable: the sign-extended address.
I haven’t yet managed to reproduce this in a stand-alone program.
-- System Information:
Debian Release: bullseye/sid
APT prefers unreleased
APT policy: (500, 'unreleased'), (500, 'buildd-unstable'), (500, 'unstable'), (100, 'experimental')
Architecture: x32 (x86_64)
Foreign Architectures: i386, amd64
Kernel: Linux 5.7.0-1-amd64 (SMP w/4 CPU threads)
Kernel taint flags: TAINT_FIRMWARE_WORKAROUND
Locale: LANG=C, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /bin/lksh
Init: sysvinit (via /sbin/init)
Versions of packages libc6 depends on:
ii libcrypt1 1:4.4.16-1
ii libgcc-s1 10.1.0-6
Versions of packages libc6 recommends:
ii libidn2-0 2.3.0-1
Versions of packages libc6 suggests:
ii debconf [debconf-2.0] 1.5.74
ii glibc-doc 2.31-1
ii libc-l10n 2.31-1
ii locales 2.31-1
-- debconf information:
glibc/disable-screensaver:
* libraries/restart-without-asking: true
glibc/restart-failed:
glibc/kernel-too-old:
* glibc/upgrade: true
* glibc/restart-services: postfix openbsd-inetd cups cron
glibc/kernel-not-supported:
Reply to: