Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-74939-escape-the-mac-n-cheese-box — Escalade de privilèges IPDL de Firefox du contenu vers le parent (N-day, bug 2054416) : PDocumentChannel forgé avec RemoteTypeOverride -> placement dans le processus privilegedabout, via injection du chemin d'envoi mojo-port depuis un processus de contenu compromis. | Kitploit
Outils/GitHubGitHub/sneakynachos/cve-2026-74939-escape-the-mac-n-cheese-box
Escalade de PrivilègesFrameworks d'ExploitationAnalyse des VulnérabilitésExploitationExploitation d'Applications WebExploitation de Binaires
GitHubsneakynachos/cve-2026-74939-escape-the-mac-n-cheese-box

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

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Escalade de privilèges IPDL de Firefox du contenu vers le parent (N-day, bug 2054416) : PDocumentChannel forgé avec RemoteTypeOverride -> placement dans le processus privilegedabout, via injection du chemin d'envoi mojo-port depuis un processus de contenu compromis.

Voir le dépôt
1il y a 21h 23mPas encore vérifié

CVE-2026-74939 — Élévation de privilèges de content vers parent dans Firefox

Preuve de concept pour une évasion de la sandbox dans Firefox 149.0a1 nightly (2fbc0748c4, avant le correctif). Un processus de contenu compromis forge un message IPDL qui fait charger par le processus parent une page dans un processus privilégié (privilegedabout).

C'est l'évasion de sandbox de stade 2, conçue pour être chaînée après une exécution de code dans le processus de contenu (RCE) (par exemple CVE-2026-2796).

Le bug (bug 2054416 de Mozilla)

Le processus parent désérialise un nsDocShellLoadState à partir de messages IPDL content→parent. La version vulnérable ne rejette pas un champ RemoteTypeOverride défini par le contenu, ce qui permet au contenu de choisir le type de processus dans lequel une navigation atterrit.

Le correctif (commit 3ec5c71b41bb, « Validate RemoteTypeOverride ») fait en sorte que le constructeur de nsDocShellLoadState rejette toute surcharge sur un chargement déclenché par le contenu.

Lorsque la surcharge est honorée — chargement du document about:blank, contexte de haut niveau — IsolationOptionsForNavigation définit le type remote du chargement sur la valeur de la surcharge, et la page est placée dans un processus privilégié. La frontière de la sandbox est franchie.

Aperçu de l'exploit

La surcharge voyage sur PNecko::PDocumentChannel, un message que chaque processus de contenu envoie pour chaque chargement de document (DocumentChannelCreationArgs.loadState est un nsDocShellLoadState).

La livraison est la partie intéressante : les écritures brutes sur le socket IPC sont silencieusement ignorées, car les messages IPDL voyagent désormais sur des ports mojo. Le PoC pilote donc le vrai chemin d'envoi depuis JavaScript via des appels natifs (en utilisant la primitive funcref de CVE-2026-2796) :

  1. operator new — alloue un bloc de tas pour le IPC::Message
  2. IPC::Message::Message(routing, type, capacity, flags) — constructeur de placement
  3. Pickle::WriteBytes — ajoute le payload forgé
  4. MessageChannel::Send sur le canal PContent — l'encadrement mojo, le routage des ports et les numéros de séquence sont tous pris en charge nativement

Le payload (construit par forge.py) transporte RemoteTypeOverride = "privilegedabout", l'URI about:blank, un principal null, et des valeurs divulguées à l'exécution (id BrowsingContext, TriggeringRemoteType).

Fichiers

Exécution

root@kitploit:~
./irun

Vérification

Les journaux côté parent (MOZ_LOG=ProcessIsolation:5,DocumentChannel:5) montrent le changement de processus vers le processus privilégié :

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'

Références

  • Bug 2054416 de Mozilla — commit de correctif 3ec5c71b41bb « Validate RemoteTypeOverride »
  • RCE de stade 1 dans le processus de contenu : CVE-2026-2796
Télécharger l’outil
FichierObjectif
privesc.htmlPage PoC, exécutée dans le processus de contenu compromis
forge.py / forge.jsonconstruit le message IPDL forgé (auto-vérifiant)
wasm-bytes.jsprimitives de stade 1 : lectures/écritures arbitraires, appels funcref
mdrive.py / mdrive2.pyharnais Marionette pour lancer et piloter Nightly
irunexécution instrumentée : lldb attaché au parent + preuves MOZ_LOG
profile.user.jspréférences du profil Firefox (fission activé, dump activé)
parse_dc.pyanalyseur octet-exact pour les messages DocumentChannel capturés
scan_sentinels.py / extract_fields.pyscanners de cartographie des champs pour les captures