On Thu, Jun 05, 2025 at 05:31:41AM +0200, Solar Designer wrote: > On Tue, Jun 03, 2025 at 10:16:52AM +0200, Vegard Nossum wrote: > > newgrp: fix potential string injection > > > > Since newgrp is setuid-root, any write() system calls it does in order > > to print error messages will be done as the root user. > > > > Unprivileged users can get newgrp to print essentially arbitrary strings > > to any open file in this way by passing those strings as argv[0] when > > calling execve(). For example: > > > > $ setpid() { (exec -a $1$'\n:' newgrp '' > > 2>/proc/sys/kernel/ns_last_pid & wait) >/dev/null; } > > $ setpid 31000 > > $ readlink /proc/self > > 31001
> This general issue in the Linux kernel is indeed not new: > > https://www.openwall.com/lists/oss-security/2012/02/08/2 > https://www.openwall.com/lists/kernel-hardening/2012/02/10/1 > > As I recall, grsecurity's fix already available by the time was to have > globally unique exec_id's and compare against those before allowing > procfs file access. > As described by Jason A. Donenfeld and Djalal Harouni back then, this > flavor of confused deputy attacks is even more usable for reading the > target SUID/SGID/setcap process info, such as for ASLR bypass, which > doesn't require unusual permissions on the corresponding special files. > Has this aspect been addressed in upstream Linux at all? I'm sorry I > haven't been following this since 2012. I tried to refresh my memory on this and found that Djalal Harouni attempted to upstream this sort of fix in March 2012: https://www.openwall.com/lists/kernel-hardening/2012/03/10/ and got some feedback/criticism from Linus Torvalds and a few others in the next couple of days. Then the thread proceeds into another related topic ("CLONE_PARENT shouldn't allow to set ->exit_signal" by Oleg Nesterov, which I see actually got in, and "Potentially this change allows to kill self_exec_id/parent_exec_id", which are an earlier mechanism of non-unique IDs originating from my -ow patches) and ends on March 18. So nothing further happened, it seems? Alexander