Debian sigurnosni naputak

screen -- Program "screen" prelazi granicu pri kopiranju gecos polja.

Datum prijave:
20. 02. 1997.
Zahvaćeni paketi:
screen
Ranjiv:
Ne
Reference na baze podataka o sigurnosti:
Druge reference na vanjske baze podataka o sigurnosti trenutno nisu dostupne.
Više informacija:

Prekoračenje postoji, ali screen predaje root privilegije prije nego što se kod izvrši.

Originalni pošiljatelj ovog izvješća: Khelbin <khelbin@connix.com>

Screen 3.07.02, kada je setuid root (a obično jest), je osjetljiv na prekoračenje buffera, makar na nekim platformama. Nisam pročitao cijeli izvorni kod, ali nakon kratkog pregleda sam primijetio da attacher.c radi sljedeće:

      struct passwd ppp;
      char fullname[100];

      strcpy(fullname, ppp->pw_gecos);

Mogao sam nabrzinu napisati exploit, ali nije radio ovdje na BSDI 1.1 zato što chpass/chfn ne prihvaća neke znakove. Zbog toga je učitavanje koda za dobivanje ljuske u "Full Name" polje uzrokovalo poruku o grešci "Illegal Character found in the Full Name field, re-edit [y]?" ili nešto slično.

Svaki OS ili verzija chfna/chpassa koja ne provjerava 'ilegalne znakove' ili dužinu informacija koje se stavljaju u polje (BSDI 1.1 nije provjeravao dužinu, samo ilegalne znakove) bi mogao biti ranjiv (nisam provjerio je li već odustao od suid root privilegija, to sam mislio učiniti prekoračujući buffer mojim shellcode stringom).

Ono što jesam radio je puko stavljanje mog shellcode stringa u ENV varijablu (s NOPovima i povratnom adresom natrag na NOPove) i echoanje ENV varijable u datoteku. Tada samo učitavate tu datoteku kada ste u chpass/chfn kao nove gecos informacije.