Skip to main content

grok2api CVE-2026-123788

| EUVDEUVD-2026-118509 MEDIUM
Improper Enforcement of Behavioral Workflow (CWE-841)
2026-11-06 VulDB GHSA-279p-xx78-79p3
5.3
CVSS 4.0 · Vendor: VulDB
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate with valid client key
  2. Delivery
    Open STT voice WebSocket
  3. Exploit
    Receive transcript.done with confirmed duration
  4. Execution
    Disconnect before clean close
  5. Impact
    Confirmed STT usage goes unbilled

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Workflow enforcement
Exploitation Conditions

Requires a valid authenticated client key with STT/voice capability enabled (PR:L) and a deployment actively using the voice WebSocket STT billing path. The specific trigger per the PR diff: the attacker lets the upstream emit a transcript.done with a positive AudioDurationSeconds, then disconnects so the session outcome is 'client_stream_interrupted' (successfulfalse); pre-3.1.7 code only billed when successfultrue AND operation==STT, so confirmed usage was dropped. Limiting factors: exploitation only matters on metered/multi-tenant hosted instances where billing is enforced, needs an existing authenticated key, and is confined to STT voice sessions - it does not affect other endpoints and has no confidentiality or availability impact.

Impact

This is a medium-severity integrity/billing-evasion flaw, not a confidentiality issue despite the 'Information Disclosure' tag. The supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N) is internally consistent with the source evidence: network-reachable, low complexity, requires a valid authenticated client key (PR:L), and produces only a limited integrity impact (VI:L) with no confidentiality or availability impact - matching the PR diff, which shows STT usage not being recorded when a client disconnects after a confirmed transcript duration. No EPSS score, SSVC automatable/technical-impact values, or CISA KEV status were provided, and no public exploit reference is present (only the vendor issue, PR, commit, and release). The vuln.today decision label is 'this_month', which aligns with a real-but-non-urgent fix priority rather than act_now/emergency. Net: a genuine abuse-of-service / revenue-leakage bug that authenticated users of a hosted grok2api instance can trigger, but it is self-serving billing evasion rather than a broadly dangerous RCE or data-exposure issue. The only notable metadata conflict is the 'Information Disclosure' tag, which is contradicted by VC:N in the vendor-supplied vector and by the billing-logic nature of the patch.

Exploit ScenarioDerived

An authenticated client of a hosted grok2api deployment (PR:L) opens an STT voice WebSocket, sends audio, and waits for the upstream transcript.done event that confirms a billable AudioDurationSeconds. The client then abruptly interrupts the connection before a clean close so the session outcome is marked unsuccessful (client_stream_interrupted); in versions up to 3.1.6 the billing branch required successful==true, so the already-incurred STT cost was never charged, letting the user consume transcription service for free. No public exploit identified at time of analysis, but the PR includes regression tests that demonstrate the exact billing-skip behavior.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Nov 06, 2026

Billing evasion in chenyme grok2api through 3.1.6 lets an authenticated client key with STT/voice capability avoid charges for audio the upstream provider has already transcribed, because the voice WebSocket handler only recorded billable usage when the session ended successfully. Exploitation is limited to deployments that actually meter and enforce billing on the voice STT path, requires a valid client key, and has no confidentiality or availability impact - the assessed impact is a low-integrity change to billed usage records. No public exploit code has been identified at time of analysis; the vendor-released patch is version 3.1.7 (commit 7ad0f791f0a9eb5a0ddfe38ac4dfcef01e19a6d4).

RemediationAI

Vendor-released patch: upgrade to grok2api 3.1.7 (release https://github.com/chenyme/grok2api/releases/tag/v3.1.7, commit 7ad0f791f0a9eb5a0ddfe38ac4dfcef01e19a6d4, PR https://github.com/chenyme/grok2api/pull/1073), which bills STT sessions whenever a confirmed AudioDurationSeconds greater than zero was received and adds context-driven teardown of quiet WebSocket sessions; the upstream project states that upgrading the affected component resolves the issue. If an immediate upgrade is not possible, restrict the voice/STT WebSocket path to trusted client keys or disable STT routing for metered keys, at the cost of losing speech-to-text service for those clients, and cross-check client key usage records against upstream provider invoices for sessions whose audit outcome is client_stream_interrupted with zero billed ticks, since those are the sessions this workflow flaw leaves unbilled. Note that the upstream guidance treats the version upgrade as the complete fix, so any interim measures should be considered temporary.

Affected VersionsENISA

grok2api 3.1.3
grok2api 3.1.4
grok2api 3.1.6
grok2api 3.1.0
grok2api 3.1.1
grok2api 3.1.2
grok2api 3.1.5

Affected Packages

euvd grok2api no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

grok2api is a Go service that proxies upstream AI provider APIs, including a WebSocket-based speech-to-text (STT) surface implemented in backend/internal/transport/http/inference/voice_ws_handler.go and backend/internal/application/gateway/voice_ws.go. The flaw is CWE-841 (Enforcement of Behavioral Workflow): the billing decision depended on the wrong condition - the session's downstream transport outcome (successful true) - rather than on whether the upstream had already confirmed usage. The pre-3.1.7 code only billed when 'successful && operation audit.OperationSTT', so a client that received a transcript.done event carrying a positive AudioDurationSeconds and then dropped the connection produced a 'client_stream_interrupted' outcome with successful false and was never charged, even though the cost had already been incurred upstream. The upstream fix bills whenever operation audit.OperationSTT and outcome.AudioDurationSeconds > 0, independent of how the client connection later ended, and additionally adds a server.requestTimeout context watcher so that quiet, established WebSocket sessions are torn down and their account leases released instead of lingering when no read or write is in flight to surface the cancellation. The trigger path is confined to the STT voice WebSocket; no other endpoint or data store is implicated.

Know when Grok2Api gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (VulDB) PRIMARY 5.3 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
vuln.today AI 4.3 MEDIUM

Remote and low-complexity but needs a valid authenticated client key (PR:L); only integrity of billing/usage records is affected (I:L), with no confidentiality or availability impact.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (VulDB).

CVSS VectorVendor: VulDB

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
Low
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

A security vulnerability has been detected in chenyme grok2api up to 3.1.6. The impacted element is an unknown function of the file backend/internal/transport/http/inference/voice_ws_handler.go of the component STT Billing. The manipulation leads to enforcement of behavioral workflow. The attack may be initiated remotely. Upgrading to version 3.1.7 is sufficient to resolve this issue. The identifier of the patch is 7ad0f791f0a9eb5a0ddfe38ac4dfcef01e19a6d4. Upgrading the affected component is recommended.

Threat Intelligence Overview

EPSS Score
0.3%
Top 81% exploitable
Prevalence
Low
niche open-source Grok API proxy, no enterprise footprint
Social Media
1
Sightings
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

26
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +26
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy