Säkerhetsbulletin från Debian
screen -- "Screen"-programmet spiller när gecos-fältet kopieras.
- Rapporterat den:
- 1997-02-20
- Berörda paket:
- screen
- Sårbara:
- Nej
- Referenser i säkerhetsdatabaser:
- För närvarande är inga ytterligare referenser till externa säkerhetsdatabaser tillgängliga.
- Ytterligare information:
-
Buffertspillet finns, men screen överger rootprivilegierna innan koden utförs.
Ursprungligen rapporterat av: Khelbin <khelbin@connix.com>
Screen 3.07.02 är, när det är setuid root (vilket det vanligtvis är), [känsligt] för ett buffertspill åtminstone på vissa plattformar. Jag har inte läst genom hela källkoden, utan bara vid en snabb titt noterat att attacher.c gör följande:
struct passwd ppp; char fullname[100]; strcpy(fullname, ppp->pw_gecos);
Jag lyckades koka ihop ett snabbt utnyttjandeprogram, men det fungerande inte här på BSD 1.1 eftersom chpass/chfn inte tillåter vissa tecken. Därför gav en inläsning av skalkod i fullnamns-fältet ett felmeddelande "Character found in the Full Name field, re-edit [y]?" eller något liknande.
Alla operativsystem eller versioner av chfn/chpass som inte testar mot "ogiltiga tecken" eller längden på informationen innan den läggs in i fältet (BSDI 1.1 testar inte längden, bara ogiltiga tecken) kan vara sårbart (jag testade inte om det hade övergett root-behörighet ännu, jag tänkte göra det genom att spilla det med min skalkod).
Vad jag gjorde var att lägga min skalkod i en ENV-variabel (med NOP:ar och returadressen tillbaka till NOP:arna) och ekade ENV-variabeln till en fil. Läs sedan bara in den filen när du är i chpass/chfn som ny gecos-information.