Entradas Mensuales

Síguenos en:

Canal Oficial Telegram de elhacker.NET Grupo Facebook elhacker.NET Twitter elhacker.NET Canal Youtube elhacker.NET Comunidad Steam: Grupo elhacker.NET Mastodon

Entradas populares

  • La comunidad ha logrado que la PlayStation 5 pueda leer discos de PS2 , permitiendo aprovechar colecciones físicas que Sony no había habilit...
  • Un programador ha lanzado un mod gratuito para GTA 2 que moderniza el juego de 1999 integrando gráficos avanzados, Path Tracing y 60 FPS ....
  • Las ventas mundiales de PCs cayeron un 20% en el tercer trimestre de 2026 debido al MEMOpocalipsis que afecta a la industria tecnológica. ...

PostHeaderIcon Fallo de 37 años en kernel de OpenBSD permite acceso root: sale PoC


Se ha publicado una prueba de concepto de un exploit que permite obtener acceso de root en OpenBSD mediante la combinación de dos fallos del kernel. El error principal tiene aproximadamente 37 años y proviene del código fuente original de BSD; persistió debido al uso de un valor de 16 bits con signo en un contador de memoria compartida (shm_nattch). OpenBSD ya ha corregido ambos problemas.





Un exploit de prueba de concepto que obtiene acceso de root en OpenBSD encadenando dos fallos del kernel. El error principal se remonta a hace unos 37 años, al código fuente original de BSD.

Según los investigadores de seguridad de Calif, el fallo sobrevivió porque un contador de adjuntos de memoria compartida llamado shm_nattch utilizaba un valor de 16 bits con signo.

OpenBSD corrigió ambos problemas antes de que Calif publicara el exploit el 16 de octubre de 2026. La investigación publicada cubre un exploit de escalada de privilegios locales y no informa sobre un uso activo en ataques del mundo real.

Fallo de OpenBSD de 37 años

El primer fallo afecta al manejo de la memoria compartida de System V. Al crear repetidamente procesos con registros de memoria compartida, un usuario local puede empujar el contador más allá de su valor máximo de 32.767.

Entonces, el número pasa a un valor negativo. Este desbordamiento de enteros puede causar una condición de carrera que conduce a un use-after-free del kernel. Un segundo fallo proporciona una escritura condicional fuera de límites, otorgando a los investigadores suficiente control para convertir la corrupción de memoria en acceso de root.

El exploit de Calif mapea 127 segmentos de memoria compartida, elimina sus mapeos y crea 259 procesos para forzar el reinicio del contador. Luego, moldea la memoria heap del kernel y observa los datos del asignador a través de sysctl(KERN_MALLOCSTATS).

Un proceso marca un objeto de memoria compartida para su eliminación con IPC_RMID, mientras que un proceso auxiliar intenta adjuntar un nuevo segmento en el momento justo. Ganar esta carrera crea una asignación de kernel con confusión de tamaño.

A continuación, los investigadores colocan objetos de socket IP cerca de la memoria liberada y usan IP_MULTICAST_TTL para crear un objeto struct ip_moptions duradero. La escritura fuera de límites cambia dos contadores de membresía en esta estructura.

Cerrar el socket inicia cambios atómicos en el contador que alteran el mapeo de la tabla de páginas de autorreferencia de OpenBSD. Esto hace que el mapeo del espacio de usuario esté disponible para el modo supervisor y permite que el exploit sobrescriba un puntero del kernel predecible.

El exploit entonces ejecuta código en el kernel, repara el puntero modificado y abre una shell de root. La cadena funcionó con las protecciones de OpenBSD activadas, como KARL, SMAP y SMEP, sin necesidad de una filtración de información separada. KARL cambia las direcciones de datos y código del kernel al arrancar. Sin embargo, Calif descubrió que partes del asignador de memoria del kernel siguen siendo predecibles en el mismo hardware. Los objetos de arranque temprano pueden quedar en ubicaciones estables, permitiendo que el exploit apunte a los punteros del manejador ioctl de lo0 y enc0.

OpenBSD abordó el desbordamiento de enteros en la Errata 018 y el use-after-free del conteo de referencias en la Errata 026. La página de erratas de OpenBSD 7.9 enumera ambas correcciones para todas las arquitecturas. Las actualizaciones binarias están disponibles a través de syspatch para sistemas amd64, i386 y arm64. Debes aplicar cada parche disponible y reiniciar para que el kernel corregido se active.

Calif también propuso una protección más amplia, incluyendo comprobaciones de desvinculación segura para listas enlazadas, ubicación aleatoria del mapa de la tabla de páginas y asignaciones de kernel menos predecibles. Las funciones del compilador, como las comprobaciones de límites de arrays y el aislamiento de asignaciones, podrían hacer que errores de memoria similares sean más difíciles de explotar.

El código fuente del PoC está disponible públicamente. El repositorio de Calif identifica el trabajo como parte de su proyecto de investigación de seguridad MAD Bugs.

El caso muestra cómo las decisiones de diseño antiguas pueden permanecer ocultas en el código de sistemas operativos confiables durante décadas. Recientemente, cubrimos un fallo de autenticación de OpenBSD de 27 años y una vulnerabilidad anterior de double-free en OpenBSD NFS.



Fuentes:
https://cybersecuritynews.com/37-year-old-kernel-openbsd-flaw/

0 comments :

Publicar un comentario

Los comentarios pueden ser revisados en cualquier momento por los moderadores.

Serán publicados aquellos que cumplan las siguientes condiciones:
- Comentario acorde al contenido del post.
- Prohibido mensajes de tipo SPAM.
- Evite incluir links innecesarios en su comentario.
- Contenidos ofensivos, amenazas e insultos no serán permitidos.

Debe saber que los comentarios de los lectores no reflejan necesariamente la opinión del STAFF.