Vulnerabilidad en ld.so OpenBSD

Cargador dinámico ld.so, que forma parte de OpenBSD, puede bajo ciertas condiciones dejar la variable de entorno LD_LIBRARY_PATH y así permitir cargar código de terceros en el contexto de un proceso que se ejecuta con privilegios elevados. SUID/SGIDParches que corrigen la vulnerabilidad están disponibles para las versiones 6.5 y 6.6. Parche binario (syspatch) para las plataformas amd64, i386 y arm64 ya han entrado en producción y deberían estar disponibles para descarga al momento de la publicación de esta noticia.

La esencia del problema: durante su funcionamiento, ld.so primero extrae del entorno el valor de la variable LD_LIBRARY_PATH, utilizando la función _dl_split_path() lo convierte en un arreglo de cadenas — rutas a directorios. Si más tarde se determina que el proceso actual se ejecuta como una aplicación SUID/SGID, entonces el arreglo creado y, de hecho, la variable LD_LIBRARY_PATH se borran. Sin embargo, si durante la ejecución de _dl_split_path() se encuentra una falta de memoria (lo cual es difícil debido a la restricción explícita en el tamaño de las variables de entorno de 256 kilobytes, pero teóricamente posible), entonces la variable _dl_libpath obtendrá el valor NULL, y la verificación posterior del valor de esta variable hará que se omita la llamada a _dl_unsetenv(«LD_LIBRARY_PATH»).

La vulnerabilidad fue descubierta por especialistas Qualys, así como varias problemáticas que fueron reveladas anteriormente. Los investigadores de seguridad que descubrieron la vulnerabilidad señalaron la rapidez de la solución: se preparó un parche y se lanzaron actualizaciones dentro de las tres horas posteriores a la notificación por parte del proyecto OpenBSD.

Adición: Se le asignó el número de problema CVE-2019-19726. Se ha hecho un anuncio oficialen la lista de distribución oss-security, que incluye un prototipo de exploit que funciona en OpenBSD 6.6, 6.5, 6.2 y 6.1 en arquitecturas
amd64 e i386 (el exploit puede adaptarse también para otras arquitecturas).
El problema es explotable en la instalación por defecto y permite a un usuario local no privilegiado ejecutar código con derechos de root mediante la sustitución de bibliotecas al ejecutar utilidades SUID como chpass o passwd. Para crear las condiciones necesarias para la explotación, se utiliza la limitación de memoria RLIMIT_DATA a través de setrlimit.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster