Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-74939-escape-the-mac-n-cheese-box — Escalada de privilegios IPDL de contenido a padre en Firefox (N-day, bug 2054416): PDocumentChannel falsificado con RemoteTypeOverride -> ubicación de proceso privilegedabout, mediante inyección de la ruta de envío de mojo-port desde un proceso de contenido comprometido | Kitploit
Herramientas/GitHubGitHub/sneakynachos/cve-2026-74939-escape-the-mac-n-cheese-box
Escalada de PrivilegiosFrameworks de ExploitsAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebExplotación de Binarios
GitHubsneakynachos/cve-2026-74939-escape-the-mac-n-cheese-box

CVE-2026-74939-escape-the-mac-n-cheese-box

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Escalada de privilegios IPDL de contenido a padre en Firefox (N-day, bug 2054416): PDocumentChannel falsificado con RemoteTypeOverride -> ubicación de proceso privilegedabout, mediante inyección de la ruta de envío de mojo-port desde un proceso de contenido comprometido

Ver Repositorio
1hace 21h 23mAún no revisado

CVE-2026-74939 — escalada de privilegios content→parent en Firefox

Prueba de concepto para una evasión del sandbox en Firefox 149.0a1 nightly (2fbc0748c4, anterior al parche). Un proceso de contenido comprometido falsifica un mensaje IPDL que hace que el parent cargue una página en un proceso privilegiado (privilegedabout).

Esta es la evasión del sandbox de etapa 2, diseñada para encadenarse después de una RCE en el proceso de contenido (p. ej., CVE-2026-2796).

El bug (Mozilla bug 2054416)

El proceso padre deserializa un nsDocShellLoadState de los mensajes IPDL content→parent. La versión vulnerable no rechaza un campo RemoteTypeOverride establecido por content, por lo que content puede elegir en qué tipo de proceso termina una navegación.

El parche (commit 3ec5c71b41bb, "Validate RemoteTypeOverride") hace que el constructor de nsDocShellLoadState rechace cualquier override en una carga iniciada por content.

Cuando se respeta el override — carga de documento de about:blank, contexto de nivel superior — IsolationOptionsForNavigation establece el tipo remoto de la carga al valor del override, y la página se coloca en un proceso privilegiado. Se viola el límite del sandbox.

Resumen del exploit

El override viaja en PNecko::PDocumentChannel, un mensaje que todo proceso de contenido envía en cada carga de documento (DocumentChannelCreationArgs.loadState es un nsDocShellLoadState).

La entrega es la parte interesante: las escrituras directas al socket de IPC se descartan silenciosamente, porque los mensajes IPDL viajan ahora sobre puertos mojo. En su lugar, el PoC impulsa la ruta de envío real desde JavaScript mediante llamadas nativas (usando la primitiva funcref de CVE-2026-2796):

  1. operator new — asigna un bloque de heap para el IPC::Message
  2. IPC::Message::Message(routing, type, capacity, flags) — ctor de placement
  3. Pickle::WriteBytes — añade el payload falsificado
  4. MessageChannel::Send en el canal PContent — el frame mojo, el enrutamiento de puertos y los números de secuencia se manejan de forma nativa

El payload (construido por forge.py) lleva RemoteTypeOverride = "privilegedabout", URI about:blank, un principal nulo y valores filtrados en tiempo de ejecución (BrowsingContext id, TriggeringRemoteType).

Archivos

Ejecución

root@kitploit:~
./irun

Verificación

Los logs del lado del padre (MOZ_LOG=ProcessIsolation:5,DocumentChannel:5) muestran el cambio de proceso al proceso privilegiado:

root@kitploit:~
V/ProcessIsolation using remote type override (privilegedabout) for load
I/ProcessIsolation Process Switch: Changing Remoteness from 'webIsolated=http://127.0.0.1' to 'privilegedabout'

Referencias

  • Mozilla bug 2054416 — commit de arreglo 3ec5c71b41bb "Validate RemoteTypeOverride"
  • RCE en el proceso de contenido de etapa 1: CVE-2026-2796
Descargar herramienta
ArchivoPropósito
privesc.htmlPágina PoC, se ejecuta dentro del proceso de contenido comprometido
forge.py / forge.jsonconstruye el mensaje IPDL falsificado (autoverificable)
wasm-bytes.jsprimitivas de etapa 1: lectura/escritura arbitraria, llamadas funcref
mdrive.py / mdrive2.pyharness de marionette para lanzar y controlar Nightly
irunejecución instrumentada: lldb adjunto al padre + evidencia MOZ_LOG
profile.user.jspreferencias del perfil de Firefox (fission activado, dump habilitado)
parse_dc.pyanalizador byte-exacto de mensajes DocumentChannel capturados
scan_sentinels.py / extract_fields.pyescáneres de mapas de campos para capturas