Aviso de seguridad de Debian
screen -- El programa "screen" se desborda al copiar el campo geos.
- Fecha del informe:
- 20 de feb de 1997
- Paquetes afectados:
- screen
- Vulnerable:
- No
- Referencias a bases de datos de seguridad:
- No se dispone, de momento, de referencias a otras bases de datos de seguridad externas.
- Información adicional:
-
El desbordamiento existe, pero libera los privilegios de root antes de que se ejecute el código.
Rremitente original del informe: Khelbin <khelbin@connix.com>
Screen 3.07.02, cuando está con setuid root (como suele ser normalmente), es [susceptible] a un desbordamiento de búfer al menos en ciertas plataformas. No he leído todo el código fuente, sino sólo le he echado un vistazo y he visto que en attacher.c ocurre lo siguiente:
struct passwd ppp; char fullname[100]; strcpy(fullname, ppp->pw_gecos);
He desarrollado una explotación rápida pero falló al intentar hacerlo funcionar aquí en BSDI 1.1 porque chpass/chfn no exceptuará algunos caracteres. Por tanto, leer en el shell del código el nombre completo del campo producía un mensaje de error de "Carácter ilegal encontrado en el campo nombre completo, ¿reeditar [s]?" o algo similar.
Cualquier sistema operativo o versión de chfn/chpass que no compruebe 'caracteres ilegales' o la longitud de la información puesta en el campo (BSDI 1.1 no comprobaba la longiud, sólo los caracteres ilegales) pueden ser vulnerables (no comprobé si había dejado los privilegios de root ya, iba a verificar el desbordamiento con mi cadena de código de shell).
Lo que estaba haciendo sólo era poner la cadena de mi código de shell en una variable de entorno ENV (con NOPs y dirección de retorno puesta a NOPS) y mostrando la variable de entorno ENV a un archivo. Luego simplemente lea en ese archivo cuando esté en chpass/chfn como el nuevo campo de información gecos.