El lenguaje PERL en su versión 5.6 (la actual) y anteriores tiene un
fallo de seguridad que, en muchos sistemas, puede permitir que un
usuario local alcance privilegios de administrador o «root».
El lenguaje PERL incluye un ejecutable SETUID que permite la ejecución
de cualquier script con los privilegios de su usuario propietario.
Bajo determinadas circunstancias (cuando se detecta un intento de uso
malicioso), ese intérprete envía un mensaje de aviso al administrador
del sistema, utilizando el ejecutable «/bin/mail». Lamentablemente
dicho programa de correo no está diseñado para ser invocado desde una
aplicación «SETUID», por lo que atacante malicioso local puede
introducirle datos especialmente formateados que le permitan ejecutar
código arbitrario como cualquier otro usuario, especialmente como
«root» o administrador.

Aunque la explotación en sí del fallo se produce en «/bin/mail», no
corresponde a este programa la responsabilidad del problema, ya que se
trata de un componente que nunca se diseñó para ser ejecutado por un
proceso SETUID. La responsabilidad recae exclusivamente sobre SPERL, por
ser un programa de seguridad crítica, SETUID, que lanza procesos fuera
de su control directo y no se preocupa de «limpiar» las variables de
entorno y demás datos de entrada recibidos por dichos procesos, que
nunca fueron diseñados para ser utilizados bajo este tipo de
configuraciones.

Dado que SPERL invoca explícitamente a la aplicación «/bin/mail»,
aquellos sistemas que no dispongan de dicha aplicación o ésta se
encuentre en otro path, *NO* serán vulnerables. Entre los sistemas no
vulnerables debido a este hecho tenemos a la distribución Debian de
Linux, o las versiones 2.1.x, 2.2.x, 3.x y 4.0 de FreeBSD.

Los administradores con usuarios locales no confiables deben
actualizar su distribución PERL cuanto antes (la actualización envía
las notificaciones al «syslog», en vez de por email) o, en caso de no
necesitar la funcionalidad SPERL, eliminar la bandera «+s» del
ejecutable.

Jesús Cea Avión
jcea@hispasec.com

Más información:

PERL
http://www.perl.org/

Updated mailx and perl packages are now available
http://www.redhat.com/support/errata/RHSA-2000-048-02.html

Root exploit in sperl
http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=15630

suidperl has a major problem
http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=15641

sperl vulnerability
http://www.calderasystems.com/support/security/advisories/CSSA-2000-026.0.txt

Compártelo: