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-2025-66478-Exploit-Poc — Exploit de preuve de concept pour Next.js CVE-2025-66478, démontrant une exécution de code à distance (RCE) via une désérialisation non sécurisée et une pollution de prototype dans les Server Actions. Inclut une application vulnérable et un script d'exploit Python pour la recherche en sécurité. | Kitploit
Outils/GitHubGitHub/namest504/cve-2025-66478-exploit-poc
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionApprentissage et ÉducationDéveloppement de Charges Utiles
GitHubnamest504/cve-2025-66478-exploit-poc

CVE-2025-66478-Exploit-Poc

Voir le dépôt
312il y a 9 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 →

À propos

Exploit de preuve de concept pour Next.js CVE-2025-66478, démontrant une exécution de code à distance (RCE) via une désérialisation non sécurisée et une pollution de prototype dans les Server Actions. Inclut une application vulnérable et un script d'exploit Python pour la recherche en sécurité.

Partager

Preuve de concept (PoC) pour Next.js CVE-2025-66478

English | 한국어

Ce dépôt contient une preuve de concept (PoC) pour reproduire et étudier la vulnérabilité CVE-2025-66478 de Next.js. Il se compose d'une application Next.js vulnérable et d'un script d'exploitation Python pour tester la vulnérabilité.

Qu'est-ce que la CVE-2025-66478 ?

Il s'agit d'une vulnérabilité d'exécution de code à distance (RCE) survenant lors du traitement des Server Actions de Next.js.

Points clés :

  • Cause racine : désérialisation non sécurisée dans le protocole Flight du RSC (React Server Components).
  • Vecteur d'attaque : pollution des prototypes via la propriété __proto__.

Résumé de la vulnérabilité

ÉlémentDescription
Identifiant CVECVE-2025-66478
TypeExécution de code à distance (RCE)
Cause racineDésérialisation non sécurisée dans le protocole Flight du RSC
Sévérité (CVSS)10.0 (Critique)
ImpactExécution de commandes système arbitraires sur le serveur

Mécanisme d'attaque (détail technique)

  1. Transmission du payload : l'attaquant conçoit un payload à l'aide du format de sérialisation React Flight, en injectant des propriétés comme __proto__.
  2. Désérialisation non sécurisée et pollution : le serveur désérialise le payload sans validation appropriée, ce qui entraîne la pollution de Object.prototype.
  3. Gadget Thenable : la pollution injecte une propriété then dans tous les objets. La logique de Next.js identifie à tort ces objets comme des Promesses (Thenables).
  4. Exécution de la RCE : lorsque le serveur tente de faire un await sur cette « fausse promesse », le code JavaScript malveillant injecté dans la méthode then est exécuté (par exemple, child_process.execSync).
root@kitploit:~
sequenceDiagram
    participant Attacker
    participant Server as Next.js Server
    
    Attacker->>Server: POST / (JSON with "__proto__": {"then": ...})
    Note right of Server: JSON Parsing Pollutes Object.prototype
    
    Server->>Server: Application Logic encounters an Object
    
    rect rgb(200, 150, 150)
    Note right of Server: "Thenable" Check Gadget
    Server->>Server: Checks: typeof obj.then === 'function'?
    Server-->>Server: YES (due to pollution)
    end
    
    Server->>Server: Await/Execute malicious .then()
    Note right of Server: Malicious JS Code Runs (RCE)
    
    Server-->>Attacker: Response (Action Redirect / Error info)

Par conséquent, lorsque le serveur traite cette promesse manipulée, il exécute le code JavaScript injecté par l'attaquant, ce qui peut conduire à l'exécution de commandes système. Le fichier main.py inclus est un exemple de code qui reproduit ce scénario d'attaque.

Versions concernées

Cette vulnérabilité affecte les applications Next.js utilisant l'App Router.

  • Affectées :
    • Next.js 15.x
    • Next.js 16.x
    • Next.js 14.3.0-canary.77 et versions ultérieures (versions Canary)
  • Non affectées :
    • Next.js 13.x
    • Next.js 14.x (versions stables)
    • Applications utilisant uniquement le Pages Router
    • Edge Runtime

Versions corrigées :

  • 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7
  • 16.0.7
  • 15.6.0-canary.58 (pour les utilisateurs de PPR)

Références

  • Avis de sécurité Next.js
  • NVD - CVE-2025-66478

Structure des fichiers

  • next.js/ : exemple de code d'application web Next.js vulnérable.
  • exploit/ : script d'exploitation écrit en Python (main.py).

Prérequis

  • Node.js : version 18 ou supérieure recommandée.
  • Python : version 3.8 ou supérieure recommandée.

1. Exécution de l'application Next.js

Tout d'abord, vous devez exécuter le serveur Next.js cible.

  1. Accédez au répertoire next.js :

    root@kitploit:~
    cd next.js
    
  2. Installez les dépendances :

    root@kitploit:~
    npm install
    # You can also use yarn or pnpm.
    
  3. Démarrez le serveur de développement :

    root@kitploit:~
    npm run dev
    

    Vérifiez que vous pouvez accéder à http://localhost:3000 via votre navigateur.

2. Exécution de l'exploit Python

Vous pouvez maintenant tester la vulnérabilité à l'aide du script Python.

  1. Accédez au répertoire exploit depuis la racine du projet :

    root@kitploit:~
    cd exploit
    
  2. (Facultatif) L'utilisation d'un environnement virtuel est recommandée :

    root@kitploit:~
    python3 -m venv venv
    source venv/bin/activate  # For Windows: venv\Scripts\activate
    
  3. Installez les bibliothèques nécessaires : Le module requests est requis.

    root@kitploit:~
    pip install requests
    
  4. Exécutez le script :

    root@kitploit:~
    python main.py
    

    Par défaut, il cible l'adresse locale (http://localhost:3000). Pour tester une autre adresse, utilisez l'option --url :

    root@kitploit:~
    python main.py --url http://target-ip:3000
    

Avertissement

Ce code est fourni uniquement à des fins de recherche en sécurité et d'éducation. L'utilisation de cet outil contre des systèmes ou des réseaux sans autorisation préalable est illégale, et l'utilisateur est seul responsable de tout problème découlant d'une telle utilisation.

Télécharger l’outil