I discovered a logic bug in the
readline
dependency partially reveals file information when parsing the file specified in the INPUTRC
environment variable. This could allow attackers to move laterally on a box where sshd
is running, a given user is able to login, and the user’s private key is stored in a known location (/home/user/.ssh/id_rsa
).
This bug was reported and patched back in February 2022, and chfn
isn’t typically provided by util-linux
anyway, so your boxen are probably fine. I’m writing about this because the exploit is amusing, as it’s made possible due to a happy coincidence of the readline configuration file parsing functions marrying up well to the format of SSH keys—explained further in this post.
I was recently enticed by SUID bugs after fawning over the Qualys sudo bug a while back. As I was musing through The Art of Software Security Assessment —vol. 2 wen?— I was spurred into looking at environment variables as an attack surface. With a couple of hours to kill, I threw an interposing library into /etc/ld.so.preload
to log getenv
calls.
The link for this article located at Security Boulevard is no longer available.