The idea was to find buffer overflows in privileged programs in Debian that potentially allow for privilege escalation by a local user.
I did this by building a list of all suid/sgid programs in Debian packages. I then tried using http://sharefuzz.sourceforge.net/ against those privleged executables. This tool attempts to test all the environment variables in a program by replacing the variables used with suitably long strings (eg, an 8K long string). If the program in question crashes when using these environment variables, then this might indicate a buffer overflow and may be potentially exploitable leading to privelege escalation. The way an attacker would use this would be to gain code execution by crafting the environment variable before executing the suid program. The malicious code execution would from an attackers point of view run with the privileges of the suid/sgid binary. I did this testing on most of the suid/sgid (ie privileged) programs in Debian and found 3 programs exited with a SIGSEGV indicating that at a minimum it was an abnormal exit and quite possibly a buffer overflow. I reported these crashes to the package maintainers but left it to them to determine the consequences and exploitability. 2 of the crashes were sgid games which is quite a low level of increased privilege, but one of the crashes was suid root. These packages are all non default, so again the impact of any vulnerability is reduced. This kind of testing is good for Debian security and provides some comfort to me at least knowing this class of vulnerability has been tested for against the privleged programs in the Debian repository. I also started doing this kind of testing against regular packages in Debian, but I do not think it is relevant to the security list and has much lesser value in general, even though it would be nice to say that programs don't crash when we arbitrarily change the environment. -- Silvio Cesare On Tue, Jan 18, 2011 at 9:50 PM, Kees de Jong <[email protected]> wrote: > Sorry Silvio, > > > I don't quite follow your endeavor. Could you enlighten me (us) a bit more? > Why are you doing this? And what benefit does this information serve us? > > > > -- > Kind regards, > Kees de Jong > > * > * > *De informatie opgenomen in dit bericht kan vertrouwelijk zijn en is > uitsluitend bestemd voor de geadresseerde(n). > Indien u dit bericht onterecht ontvangt, wordt u verzocht de inhoud niet te > gebruiken en de afzender direct te informeren door het bericht te > retourneren. > -- > The information contained in this message may be confidential and is > intended to be exclusively for the addressee(s). > Should you receive this message unintentionally, please do not use the > contents herein and notify the sender immediately by return e-mail. > > > > > > * > > > On Tue, Jan 18, 2011 at 03:49, Silvio Cesare <[email protected]>wrote: > >> I environment variable fuzzed the Debian 5.05 repository consisting of the >> following binaries: >> >> >> https://github.com/silviocesare/Automated-Audits/blob/master/Debian5.05/EnvironmentVariableFuzzing/05-01-2011/PrivilegedProgramList >> >> This is roughly most but not quite all SUID/SGID programs in Debian. There >> were some package conflicts which meant I didn't get complete automated >> coverage of the repository. >> >> I used the public sharefuzz tool which tries using long environment >> variables to trigger buffer overflows. I had three crashes and reported bugs >> for each: >> >> toppler http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=608979 >> lbreakout2 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=608980 >> zhcon http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=608981 >> >> Any followup comments should CC me. >> >> -- >> Silvio Cesare >> > > > >

