# FreeBSD parchea una escalada de privilegios en el Linuxulator vía LD_PRELOAD (CVE-2026-49413)

- **Publicado el:** 2026-06-09
- **Categoría:** Seguridad
- **Página original:** https://linuxgratis.com/articulos/freebsd-sa-26-30-linuxulator-ld-preload-privesc

Un usuario local sin privilegios podía inyectar una librería con LD_PRELOAD en un binario setuid de Linux ejecutado bajo el Linuxulator de FreeBSD y heredar sus privilegios. Qué falla, a quién afecta y cómo parchear.

---

FreeBSD publicó el 9 de junio de 2026 el aviso SA-26:30, que corrige una escalada de privilegios local en el Linuxulator, la capa de compatibilidad que permite ejecutar binarios de Linux directamente sobre el kernel de FreeBSD. El fallo tiene asignado CVE-2026-49413 y afecta a cualquier sistema que cargue el módulo de compatibilidad Linux y tenga binarios Linux con el bit setuid o setgid.

El problema está en cómo el Linuxulator decide si un proceso está corriendo con privilegios elevados durante `execve(2)`. Para protegerse de inyecciones, el cargador dinámico de Linux ignora variables como `LD_PRELOAD` cuando el binario es setuid o setgid. Esa decisión depende del valor del flag `AT_SECURE` que el kernel coloca en el vector auxiliar que se pasa al nuevo programa. Si `AT_SECURE` vale 1, el loader entra en modo seguro y descarta `LD_PRELOAD`.

Aquí estaba el error. El Linuxulator comprobaba el flag de proceso `P_SUGID` para decidir el valor de `AT_SECURE`, pero ese flag todavía no se ha establecido en el momento en que se construye el vector auxiliar dentro de la secuencia de `execve`. La comprobación llegaba demasiado pronto, así que `AT_SECURE` acababa puesto a cero incluso para un binario setuid. Con el loader convencido de que el proceso no era privilegiado, `LD_PRELOAD` se respetaba con normalidad.

A partir de ahí el ataque es directo. Un usuario local sin privilegios apunta `LD_PRELOAD` a una librería compartida propia y lanza un binario Linux set-user-ID o set-group-ID. La librería se carga en el espacio del proceso ya con los privilegios del binario, normalmente root, y el atacante ejecuta su código con esos permisos. Es una escalada local clásica: no permite acceso remoto, pero convierte una cuenta de usuario común en control total del sistema.

## A quién afecta

El aviso marca como vulnerables todas las versiones soportadas en las ramas stable/15, releng/15.1, releng/15.0, stable/14, releng/14.4 y releng/14.3. La condición práctica es doble: hace falta tener cargado el módulo del Linuxulator (`linux.ko` o `linux64.ko`) y disponer de al menos un binario Linux con setuid o setgid. Un FreeBSD sin la capa de compatibilidad Linux activa, o sin esos binarios, no está expuesto a este vector concreto.

La gravedad es alta dentro de su categoría. No es remota ni da por sí sola el primer acceso, pero en sistemas multiusuario o que ejecutan software Linux setuid bajo el Linuxulator (por ejemplo ciertos paquetes de compatibilidad) ofrece un camino limpio a root.

## Mitigación y parche

La corrección retrasa la lectura del estado de privilegios hasta que `P_SUGID` ya está fijado, de modo que `AT_SECURE` refleja correctamente que el binario es setuid y el loader descarta `LD_PRELOAD`.

Para aplicar el parche en sistemas con FreeBSD compilado a partir de binarios oficiales:

```sh
freebsd-update fetch
freebsd-update install
```

Después reinicia para que el kernel parcheado entre en uso. Si compilas el kernel desde fuentes, aplica el parche oficial de SA-26:30 y recompila e instala el kernel siguiendo el procedimiento habitual. Como mitigación temporal, descargar el módulo del Linuxulator o retirar el bit setuid/setgid de los binarios Linux elimina la vía de explotación hasta que puedas parchear.

Si gestionas FreeBSD, conviene revisar el conjunto completo de avisos publicados ese mismo 9 de junio, ya que el proyecto liberó varios parches a la vez. Puedes consultar la ficha de [FreeBSD](/freebsd) para ver el resto de información del sistema.

## Fuente

- Aviso oficial: [FreeBSD-SA-26:30.linux](https://www.freebsd.org/security/advisories/FreeBSD-SA-26:30.linux.asc)
- [CVE-2026-49413 en el NVD](https://nvd.nist.gov/vuln/detail/CVE-2026-49413)
