Se ha corregido una vulnerabilidad en FreeBSD (CVE-2026-4747) que permite ejecutar código a nivel de núcleo al enviar paquetes de red a un servidor NFS. El problema se manifiesta al usar el módulo kgssapi.ko, que implementa la API RPCSEC_GSS en el lado del núcleo. Además del núcleo, la vulnerabilidad afecta a las aplicaciones en el espacio de usuario que utilizan la biblioteca librpcgss_sec y llevan a cabo funciones de servidor RPC. Aplicaciones similares que no forman parte del sistema base de FreeBSD también pueden ser atacadas mediante el envío de paquetes de red.
El problema está presente en la implementación de la API GSS (Generic Security Services), que permite establecer canales de comunicación autenticados y seguros con el servidor. RPCSEC_GSS se utiliza en servidores NFS para proteger el acceso a Sun RPC mediante autenticación basada en Kerberos y cifrado del tráfico entre el servidor y el cliente. El problema se debe a que al verificar la firma, los datos del paquete se copian en un búfer fijo sin la debida verificación del tamaño. El error se manifiesta antes de pasar la autenticación, pero requiere la capacidad de enviar paquetes de red al servidor NFS. Existe un exploit que permite ejecutar remotamente /bin/sh con privilegios de root.
La vulnerabilidad fue identificada por un empleado de la empresa Anthropic con la ayuda del asistente de IA Claude. Notablemente, investigadores externos del equipo Calif utilizaron Claude para escribir un exploit funcional, transmitiendo como información únicamente el informe general sobre la vulnerabilidad publicado por el proyecto FreeBSD. Además de explotar directamente la vulnerabilidad, el modelo de IA desplegó una máquina virtual con una configuración vulnerable, configuró la depuración remota y la lectura de volcados de núcleo, y organizó en el exploit la ejecución de /bin/sh después de haber conseguido la ejecución de código a nivel de núcleo. Se dedicaron 4 horas al desarrollo del exploit por parte del modelo Claude.
Los investigadores que crearon el exploit no se detuvieron allí y continuaron experimentando, usando Claude para identificar vulnerabilidades en Vim y Emacs, permitiendo la ejecución de su código al abrir archivos especialmente diseñados en los editores. Es notable que los prompts para el modelo se redujeron a una formulación primitiva del problema, como "encuentra una vulnerabilidad 0-day en Vim que se produce al abrir un archivo". Como resultado, el modelo Claude encontró vulnerabilidades anteriormente desconocidas.
La vulnerabilidad en Vim (CVE-2026-34714) se debe a un error al procesar la opción tabpanel en el modo modeline activado por defecto (":set modeline"), que permite definir opciones de edición en el archivo procesado. Según los desarrolladores de Vim, a través de modeline únicamente se permite establecer un número limitado de opciones, cuyos expresiones se ejecutan en un modo sandbox, permitiendo solo las operaciones más simples y seguras.
La opción tabpanel no tenía el flag P_MLE establecido, lo que permitía usar en ella la expresión %{expr}, ejecutándose sin activar el modo modelineexpr. Para eludir la aislamiento del sandbox se utilizó un defecto en la función autocmd_add(), en la que faltaban las debidas verificaciones de seguridad al vincular la acción al evento SafeStateAgain, lo que permitía organizar la ejecución de un comando después de salir del aislamiento del sandbox. La vulnerabilidad fue corregida en la versión Vim v9.2.0272. Ejemplo de una línea que provoca la ejecución de la utilidad "id" y redirige la salida al archivo "\/tmp\/calif-vim-rce-poc": /* vim: set showtabpanel=2 tabpanel=%{%autocmd_add([{‘event’\:’SafeStateAgain’,’pattern’\:’*’,’cmd’\:’!id>\/tmp\/calif-vim-rce-poc’,’once’\:1}])%}: *\/
La vulnerabilidad en Emacs es causada por el procesamiento automático del contenido del directorio .git\/ cuando se encuentra en el mismo directorio que el archivo que se está abriendo. En este caso, Emacs al abrir el archivo ejecuta los comandos "git ls-files" y "git status", que se llevan a cabo en el contexto del contenido de " .git\/". Para hacer que el código se ejecute, solo es necesario abrir en Emacs un archivo que esté en un directorio con una subcarpeta .git\/ que contenga un archivo de configuración "config" que incluya la opción "core.fsmonitor" con el comando del atacante para ser ejecutado. Los mantenedores de GNU Emacs se han negado a corregir la vulnerabilidad, señalando que el problema está en Git.
Además, se pueden señalar dos vulnerabilidades más:
- CVE-2026-33150 — acceso a la memoria después de su liberación en el manejador io_uring de la biblioteca libfuse, lo que permite potencialmente la ejecución de código al agotar los recursos disponibles durante la interacción con sistemas de archivos implementados a través de FUSE (Filesystem in Userspace).
- CVE-2026-34743 — desbordamiento de búfer en la implementación de la función lzma_index_append() de la biblioteca liblzma. El problema surge al usar la función lzma_index_decoder() para decodificar un índice que no contiene registros, lo que resulta en la asignación de un búfer más pequeño de lo necesario. Cabe destacar que la API de bajo nivel lzma_index* es extremadamente rara en aplicaciones, y es poco probable que existan aplicaciones donde se cumplan las condiciones necesarias para explotar esta vulnerabilidad. La vulnerabilidad se ha solucionado en la actualización de XZ Utils 5.8.3.
Fuente: opennet.ru
