Sudo buffer overflow explained, and how to patch (WSL and Linux) [video]
github.com
github.com
Version number alone cannot tell you if you are vulnerable or patched! Many, many Linux distributions, including (at least) Ubuntu and RHEL "backport" security fixes to older versions of the software. That means you could be using an old version of sudo, but still fully patched and protected from this exploit.
Edit: furthermore, the patching instructions for WSL is completely wrong and should not be followed. The correct procedure is to just get the update from your distro:
sudo apt-get update && sudo apt-get --only-upgrade install sudo
If you just run ./configure && make && sudo make install, sudo will be installed to /usr/local as prefix. Doesn't this mean the unpatched binary at /usr/bin/sudoedit will still be accessible?
I had basically the same comment on the first HN posts about it. Just because `sudo -V` doesn't say 1.9.5p2 doesn't mean you're still vulnerable... https://news.ycombinator.com/item?id=25920839
I'm running WSL 2 here with Ubuntu 20.04 LTS and this is what worked for me, without having to install anything from source.
Without doing anything (vulnerable):
nick:~ $ sudoedit -s '\' `perl -e 'print "A" x 65536'`
malloc(): corrupted top size
Aborted
Then I ran this to patch it: sudo apt-get update && sudo apt-get --only-upgrade install sudo
And now this is the output (I guess not vulnerable anymore): nick:~ $ sudoedit -s '\' `perl -e 'print "A" x 65536'`
usage: sudoedit [-AknS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p prompt] [-T timeout] [-u user] file ...
After patching it `dpkg -l | grep sudo` reports 1.8.31-1ubuntu1.2. I didn't think to run that before patching it but I'd guess it's going to be different.-- original comment
You can run it but it doesn't find anything. https://www.youtube.com/watch?v=iRIXXUNkgAM&t=1244s
ln -s `which sudo` sudoedit
and then call it: ./sudoedit
So don't take the lack of a `sudoedit` command as evidence that a system isn't vulnerable. I don't know if the sudo included with macOS has been exploited though. % cd ~ && ln -s /usr/bin/sudo sudoedit && ./sudoedit -s \\
sudoedit(75875,0x109abbdc0) malloc: Incorrect checksum for freed object 0x7fcf2fc06bf8: probably modified after being freed.
Corrupt value: 0x737666635f343332
sudoedit(75875,0x109abbdc0) malloc: *** set a breakpoint in malloc_error_break to debug
zsh: abort ./sudoedit -s \\
Doesn't bode well at all for it being non exploitable (due to ASLR sometimes it doesn't crash tho)It's not just WSL. It would appear to be sudo, wherever it runs. I didn't see anything Linux specific about the CVE, other than maybe there are platforms that are better about heap-based buffer overflows.
You'll need to install gcc, pam-devel and openldap-devel if you need it. Then you can build from source using ./configure --prefix=/usr && make && make install
Oh and remember to switch your repos to CentOS Vault instead of the default mirrorlist if you need the packages mentioned above.
Building a source package is trivial. Just download the srpm, run rpm -i just like you normally would. This will extract the package. Look at rpmbuild/SPECS directory. There is your "spec file" which is a list of patches to apply and the exact commands used to build the package.
Add the upstream patch that fixes the security problem and step the least significant version number. Run rpmbuild -ba on the spec file. A binary rpm will now be built that can be installed in the normal way. This may sound intimidating at first, but it is really very simple. Also, congratulations on your first step on maintaining a package.
Alternatively, you can also grab the latest version from Rawhide if it has the fix. This will often have the patch and you can lift it straight out and use on the old version. Or you could just build the new version, but there can be hard dependencies on newer libraries which may not be easily available to you.
https://news.ycombinator.com/item?id=25950976
How long it would have taken to fuzz recent buffer overflow in sudo? https://milek7.pl/howlongsudofuzz/
Discussed here https://news.ycombinator.com/item?id=25962057
I sometimes can't decide if I want to use a familiar linux version of a program or a Windows version, but I like how WSL lets you access the windows file system
Sorry to intrude on this unrelated thread but it's the only way to get in touch with you.
Still, its more than offset by the convenience of performing bash operations on Windows; remembering `du -csh ./* | sort -h` (sort directories by size) is easier than whatever Powershell would have me type.
Try a 'git clone' of a reasonably large remote repo to see what it's like. Into both the windows fs and the Linux one.
Should I submit hashes with geth linux on wsl2 or geth windows native
I guess I could just benchmark it, havent gotten around to it.
Getting X11 up and running is a little tricky also, because localhost is not the same as localhost on the Windows box. You have to set DISPLAY to the external IP on the Windows box.
Also for the `sudoedit -s /` check what does it mean if you get a "sorry, user X is not allowed to execute BLAH BLAH"?