☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ VENDOR STATS ]
CVSS: 6.3 🐛 CWE-345
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2025-15598

CVE-2025-15598 Supply Chain Attack in Dataease
📅 PUBLISHED: 2026-03-03 09:32 UTC 🔄 UPDATED: 2026-09-23 20:27 UTC
[ ZERO-DAY / UNPATCHED ] [ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.18%
👁️
0.18% probability
4.6× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1574
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
VULNERABLE: UNKNOWN / CHECK VENDOR
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
6.3
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-15598 is a vulnerability in Dataease SQLBot up to version 1.5.1, specifically in the JWT Token Handler component. The flaw resides in the validateEmbedded function within backend/apps/system/middleware/auth.py, where improper verification of cryptographic signatures allows an attacker to bypass JWT authentication. The attack is remotely exploitable but considered difficult due to high complexity. The exploit has been publicly disclosed, and a source code comment warns users about using this feature. The vendor was contacted but no patch has been confirmed.

⚡ 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

This vulnerability affects the Dataease SQLBot application, which is a Python-based backend service. The JWT token handling is implemented in the application code, not in a third-party package. However, the use of JWT libraries (e.g., PyJWT) could be involved. Users should verify the integrity of their Dataease installation and ensure no malicious modifications have been made to the auth.py file.

CVSS Breakdown & Threat Level

  • CVSS Score: 3.7 (Low)
  • Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N
  • Attack Vector: Network (AV:N)
  • Attack Complexity: High (AC:H) – Exploitation requires specific conditions or knowledge.
  • Privileges Required: None (PR:N)
  • User Interaction: None (UI:N)
  • Scope: Unchanged (S:U)
  • Confidentiality Impact: Low (C:L) – Potential for limited information disclosure.
  • Integrity Impact: None (I:N)
  • Availability Impact: None (A:N)

Threat Level: Low. The high complexity and low impact reduce immediate risk, but public exploit availability increases the need for monitoring.

Deep Dive & Mechanics

The vulnerability is in the validateEmbedded function of auth.py. This function is responsible for verifying JWT tokens used for authentication. The improper verification of cryptographic signatures means that the application does not correctly validate the signature of incoming JWT tokens. This could allow an attacker to forge a valid JWT token by manipulating the signature verification process, potentially bypassing authentication.

The source code comment warning users about using this feature suggests that the validateEmbedded function may be intended for internal or testing purposes and should not be exposed in production. The attack complexity is high, likely due to the need to understand the specific implementation details and craft a token that passes the flawed verification.

Vulnerable vs. Patched Code

Since no patch is available, the vulnerable code is the current implementation. The following is a hypothetical example of the vulnerable code and a potential fix.

Vulnerable Code (auth.py):

def validateEmbedded(token):
    # WARNING: This function is not secure for production use.
    try:
        payload = jwt.decode(token, options={"verify_signature": False})
        return payload
    except:
        return None

Patched Code (hypothetical):

def validateEmbedded(token):
    try:
        payload = jwt.decode(token, SECRET_KEY, algorithms=["HS256"])
        return payload
    except jwt.InvalidSignatureError:
        return None

The vulnerable code disables signature verification entirely, while the patched code uses a secret key and proper algorithm verification.

Exploitation & Lab Setup

Red Team

Prerequisites:

  • Access to the Dataease SQLBot instance (network reachable).
  • Knowledge of the JWT token structure used by the application.
  • Ability to craft a JWT token with arbitrary payload.

Exploitation Steps:

  1. Identify the JWT token format used by the application (e.g., via login response or API documentation).
  2. Craft a JWT token with a payload that grants elevated privileges (e.g., {"user": "admin", "role": "admin"}).
  3. Set the algorithm to none or use an empty signature.
  4. Send the crafted token to the vulnerable endpoint (e.g., /api/validate).
  5. If successful, the application will accept the token and grant access.

Example Exploit (Python):

import jwt
import requests

# Craft a token with no signature
payload = {"user": "admin", "role": "admin"}
token = jwt.encode(payload, key="", algorithm="none")

# Send to vulnerable endpoint
url = "http://target/api/validate"
headers = {"Authorization": f"Bearer {token}"}
response = requests.get(url, headers=headers)
print(response.text)

Blue Team

Detection Steps:

  1. Monitor for JWT tokens with algorithm none or empty signatures.
  2. Check logs for failed authentication attempts that suddenly succeed.
  3. Review source code for any instances of verify_signature=False or similar.
  4. Implement network segmentation to limit exposure of the vulnerable endpoint.

Mitigation:

  • Disable the validateEmbedded function if not needed.
  • Apply input validation to reject tokens with algorithm none.
  • Use a strong secret key and enforce signature verification.

Indicators of Compromise (IOCs)

  • Network IOCs:
    • HTTP requests with Authorization: Bearer header containing JWT tokens with algorithm none.
    • Unusual API calls to endpoints that use validateEmbedded.
  • File IOCs:
    • Modified auth.py file with signature verification disabled.
    • Presence of JWT tokens with empty signature in logs.
  • Behavioral IOCs:
    • Successful authentication without valid credentials.
    • Access to restricted resources without proper authorization.

Detection Engineering

YARA Rule

rule CVE_2025_15598_JWT_Signature_Bypass {
    meta:
        description = "Detects JWT tokens with algorithm 'none' or empty signature"
        author = "Valters IT"
        date = "2025-04-01"
        cve = "CVE-2025-15598"
    strings:
        $alg_none = /"alg"\s*:\s*"none"/ nocase
        $empty_sig = /\.\s*$/  // Token ending with dot and no signature
    condition:
        $alg_none or $empty_sig
}

Sigma Rule

title: CVE-2025-15598 JWT Signature Bypass Detection
id: 12345678-1234-1234-1234-123456789abc
status: experimental
description: Detects JWT tokens with algorithm 'none' in HTTP requests
author: Valters IT
date: 2025/04/01
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-uri-query|contains: "Bearer"
        cs-uri-query|re: "alg.*none"
    condition: selection
falsepositives:
    - Legitimate use of algorithm 'none' in development environments
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2025-15598 JWT Signature Bypass"; flow:to_server; content:"Authorization"; nocase; content:"Bearer"; distance:0; pcre:"/alg\s*:\s*none/i"; sid:1000001; rev:1;)

Remediation & Mitigation

  1. Immediate Actions:

    • Disable the validateEmbedded function if not required.
    • Restrict network access to the vulnerable endpoint.
    • Monitor logs for suspicious JWT tokens.
  2. Long-term Fix:

    • Apply a patch from the vendor when available.
    • Implement proper JWT signature verification using a strong secret key.
    • Conduct a security audit of the authentication mechanism.
  3. Workarounds:

    • Use a Web Application Firewall (WAF) to block requests with algorithm none.
    • Implement additional authentication checks (e.g., IP whitelisting).
  4. Detection:

    • Deploy the provided YARA, Sigma, and Suricata rules.
    • Enable logging of all authentication attempts.

Valters IT
Senior DevSecOps & Cyber Threat Intelligence Expert

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-15598/ · 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.