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.