Register for the AI for Security Summit: Join Figma, Perplexity & Wiz

CVE-2026-22680
Python vulnerability analysis and mitigation

Overview

CVE-2026-22680 is a missing authorization vulnerability in OpenViking (a Volcengine open-source AI memory/knowledge platform) affecting all versions prior to 0.3.3. The flaw allows unauthenticated attackers to enumerate and retrieve background task metadata created by other users via the /api/v1/tasks and /api/v1/tasks/{task_id} API endpoints. It was disclosed on April 7, 2026, with a patch released the same day. The vulnerability carries a CVSS v3.1 base score of 5.3 (Medium) and a CVSS v4.0 base score of 6.9 (Medium) (Github Advisory, Feedly).

Technical details

The root cause is CWE-862 (Missing Authorization): the /api/v1/tasks and /api/v1/tasks/{task_id} router endpoints were mounted without the get_request_context dependency, meaning no authentication or ownership check was enforced before serving task data. Additionally, the TaskTracker stored all tasks in a single global namespace with no owner metadata, allowing any network-reachable caller to enumerate or retrieve task records belonging to any user. A secondary weakness (CWE-200) applies, as the exposed metadata includes task type, status, resource identifiers, archive URIs, result payloads, and sanitized error strings. The fix (PR #1182, commit 8c1c3f3) added get_request_context as a FastAPI dependency on both task endpoints and introduced per-task owner_account_id/owner_user_id fields to scope all reads and deduplication to the authenticated caller (Github PR, Github Commit).

Impact

Successful exploitation allows any unauthenticated network attacker to enumerate all recent background tasks and retrieve per-task metadata from other users, including task type, status, resource identifiers, archive URIs, result payloads, and error strings. In multi-tenant deployments, this constitutes cross-tenant data exposure and can also cause low-grade cross-tenant interference via async reindex deduplication keyed only on raw resource URIs. There is no integrity or availability impact; the vulnerability is limited to confidentiality loss of task metadata (Github Advisory, Github PR).

Exploitability

A public proof-of-concept is available in the GitHub pull request for the fix (PR #1182), consisting of concrete curl commands that reproduce the unauthorized information disclosure without authentication. The PoC demonstrates creating a task as an authenticated user, then retrieving it unauthenticated via GET /api/v1/tasks and GET /api/v1/tasks/$TASK_ID. There is no evidence of in-the-wild exploitation at this time, and the vulnerability is not listed in the CISA KEV catalog. The EPSS score is approximately 0.05% (low probability of near-term exploitation) (Github PR, Github Advisory).

Exploitation steps

  1. Reconnaissance: Identify internet-facing or network-accessible OpenViking instances running versions prior to 0.3.3 (default port 1933). No credentials are required.
  2. Trigger a background task (optional): If no tasks exist yet, an attacker with any valid API key can create one by initiating a session commit. However, exploitation of other users' tasks requires no attacker-controlled task creation.
  3. Enumerate all tasks unauthenticated: Send an unauthenticated HTTP GET request to the task listing endpoint:
    curl -s "http://<TARGET>:1933/api/v1/tasks" | jq
    Before the patch, this returns all background task records from all users instead of a 401 response.
  4. Retrieve a specific task by ID: Using a task ID obtained from enumeration, retrieve full task metadata:
    TASK_ID="<task_id_from_step_3>"
    curl -s "http://<TARGET>:1933/api/v1/tasks/$TASK_ID" | jq
    This exposes task type, status, resource identifiers, archive URIs, result payloads, and error strings belonging to other users.
  5. Leverage exposed data: Use harvested resource identifiers, archive URIs, or result payloads for further reconnaissance, targeted attacks, or cross-tenant interference in multi-tenant deployments (Github PR).

Indicators of compromise

  • Network: Unauthenticated HTTP GET requests to /api/v1/tasks or /api/v1/tasks/<task_id> from external or unexpected IP addresses (no X-API-Key header present); high-frequency polling of task endpoints from a single source IP.
  • Logs: OpenViking access logs showing 200 OK responses to /api/v1/tasks or /api/v1/tasks/{task_id} requests lacking authentication headers; repeated task enumeration requests in short time windows.
  • Behavioral: Unusual volume of task listing requests, especially from IPs not associated with known users or services; task IDs being queried that belong to different user accounts than the requester.

Mitigation and workarounds

Upgrade OpenViking to version 0.3.3 or later, which enforces authentication and per-user ownership scoping on all task API endpoints (PR #1182, commit 8c1c3f3). For deployments that cannot be immediately patched, restrict network access to the /api/v1/tasks and /api/v1/tasks/{task_id} endpoints to authenticated users only through network controls, reverse proxy authentication enforcement, or API gateway policies. Avoid exposing the OpenViking API port (default 1933) directly to untrusted networks (Github Advisory, OpenViking Release).

Additional resources


SourceThis report was generated using AI

Related Python vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2025-66455CRITICAL9.8
  • Python logoPython
  • lmdeploy
NoYesSep 18, 2026
CVE-2026-63374CRITICAL9.3
  • Python logoPython
  • python-anyio
NoYesSep 18, 2026
CVE-2026-59163CRITICAL9.1
  • Python logoPython
  • mnemosyne-memory
NoYesSep 18, 2026
CVE-2026-33625HIGH8.8
  • Python logoPython
  • lmdeploy
NoYesSep 18, 2026
CVE-2026-64847MEDIUM6.8
  • Python logoPython
  • litellm-1.90
NoYesSep 18, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management