The reported invocation path performs a virtual pre-call check and then invokes the underlying MCP tool handler, where similar quota checks run again. With rpm_limit=4, only two wrapped calls passed compared with four direct calls; a concurrency limit of one could reject even the first wrapped invocation. The reporter separately configured a tool price and…
Inspect the ClaimsCase · DiggingBeagle record
LiteLLM virtual MCP tool calls double-reserved limits but missed actual tool cost logs
The LiteLLM mcp_tool_call wrapper reportedly consumed two quota reservations for one underlying effect, while bypassing configured actual-tool prices and spend logs. This is accounting inconsistency rather than proof of a tool authorization bypass.
Tested LiteLLM virtual MCP calls and direct tool calls with configured virtual-key limits and prices, not proof of broad payment fraud.
Assessment profile
Assessment method- Setting
- research demonstration
- Exploitation
- demonstrated
- Evidence
- Grade C
- AI role
- AGAINST AI
Basis and provenance
The issue reporter documented repeatable quota, concurrency and billing discrepancies for virtual mcp_tool_call. Code-side observations are narrow, and no production theft or confirmed upstream fix is supplied. Impact band is left null: observed consequences and counterfactual harm do not establish a justified numerical severity score.
Assessed Oct 25, 2026 using diggingbeagle.assessment/1.
Evidence basis: CLM-LITELLM-MCP-VIRTUAL-ACCOUNTING-1 · CLM-LITELLM-MCP-VIRTUAL-ACCOUNTING-2 · CLM-LITELLM-VIRTUAL-REPRO · LiteLLM issue 48169: virtual MCP call double-counts limits
At a glance
A corrected release and the behavior of all alternative transport paths have not been established.
Limits and uncertaintyFull account
The reported invocation path performs a virtual pre-call check and then invokes the underlying MCP tool handler, where similar quota checks run again. With rpm_limit=4, only two wrapped calls passed compared with four direct calls; a concurrency limit of one could reject even the first wrapped invocation. The reporter separately configured a tool price and observed that direct use produced a charge while a wrapper use did not.
In an agent product, logical attempts, underlying tool effects, reservations, completion accounting and user billing are different clocks. Charging for two attempts while omitting the actual tool cost gives neither correct cost control nor an auditable causal record. The issue remains a reported reproduction, not a confirmed exploitation campaign. Reproduction.
The virtual mcp_tool_call entrypoint performs a pre-call reservation, then invokes a real MCP tool handler that reserves a second request for the same logical action. With rpm_limit 4, this produces only two accepted virtual calls rather than four direct calls; a max_parallel_requests value of one can reject the only virtual call in flight. In the same report, the configured direct-tool price was not charged on the wrapper path and the tool effect lacked a corresponding spend log. The correctness requirement is one stable identity from admission through actual execution, completion, release of concurrency holds, price attribution and audit receipt. De-duplicating by outer HTTP request alone would miss a nested effect.
Timeline
- Oct 24, 2026disclosure
Public disclosure
Claims & evidence
CLM-LITELLM-VIRTUAL-REPROThe reporter observed two counted requests for a single virtual mcp_tool_call: rpm_limit 4 accepted only two such calls, max_parallel_requests 1 refused a single virtual call, and the configured direct-tool charge was absent.supported
Basis: reported finding
- supportsLiteLLM issue 48169: virtual MCP call double-counts limitsprimary disclosure
Issue 48169, Actual behavior and comparison to direct tools/call
CLM-LITELLM-MCP-VIRTUAL-ACCOUNTING-1The reporter observed two request/concurrency accounting checks around one mcp_tool_call wrapper invocation, including failure at max_parallel_requests=1.supported
Basis: reported finding
- supportsLiteLLM issue 48169: virtual MCP call double-counts limitsprimary disclosure
Steps to reproduce; quota observations
CLM-LITELLM-MCP-VIRTUAL-ACCOUNTING-2The reporter reports a configured underlying MCP tool price of 0.25 that was billed through direct calls but not through virtual wrapper calls, alongside missing spend records.supported
Basis: reported finding
- supportsLiteLLM issue 48169: virtual MCP call double-counts limitsprimary disclosure
Pricing and spend logging reproduction
Unknowns and contradictions
- A corrected release and the behavior of all alternative transport paths have not been established.
Sources and citation
Material revision history
- Oct 25, 2026 · Canonical change recorded · new in release · revision 190