One Api
Monthly
Channel-pinning authorization bypass in one-api through v0.6.10 allows any holder of a valid API token to route requests through arbitrary operator-configured upstream provider channels they were never granted access to. The flaw exists because middleware/auth.go implements two channel-selection paths - a key-suffix path correctly gated by an admin role check, and a URL path parameter path (channelid) carrying no role check at all - so a low-privilege account can enumerate integer channel IDs and cause the server to forward requests bearing provider API keys (e.g., OpenAI, Anthropic) configured by the operator. The bypass defeats both per-group channel restrictions and per-channel model allowlists. No public exploit has been identified at time of analysis, but the integer-enumeration primitive is trivially reproducible from the description alone.
Race condition in songquanpeng one-api's redemption code feature allows authenticated users to redeem a single-use code multiple times by sending concurrent requests before the transaction completes. The root cause is confirmed by PR diff: the codebase uses deprecated GORM v1 syntax (`tx.Set("gorm:query_option", "FOR UPDATE")`) that does not reliably apply a database row lock in GORM v2, leaving the transaction window unprotected. All versions up to 0.6.11-preview.7 are affected; a fix exists as an unmerged pull request, and publicly available exploit code is referenced in GitHub issue #2397 - no public exploit has been identified at time of analysis.
Channel-pinning authorization bypass in one-api through v0.6.10 allows any holder of a valid API token to route requests through arbitrary operator-configured upstream provider channels they were never granted access to. The flaw exists because middleware/auth.go implements two channel-selection paths - a key-suffix path correctly gated by an admin role check, and a URL path parameter path (channelid) carrying no role check at all - so a low-privilege account can enumerate integer channel IDs and cause the server to forward requests bearing provider API keys (e.g., OpenAI, Anthropic) configured by the operator. The bypass defeats both per-group channel restrictions and per-channel model allowlists. No public exploit has been identified at time of analysis, but the integer-enumeration primitive is trivially reproducible from the description alone.
Race condition in songquanpeng one-api's redemption code feature allows authenticated users to redeem a single-use code multiple times by sending concurrent requests before the transaction completes. The root cause is confirmed by PR diff: the codebase uses deprecated GORM v1 syntax (`tx.Set("gorm:query_option", "FOR UPDATE")`) that does not reliably apply a database row lock in GORM v2, leaving the transaction window unprotected. All versions up to 0.6.11-preview.7 are affected; a fix exists as an unmerged pull request, and publicly available exploit code is referenced in GitHub issue #2397 - no public exploit has been identified at time of analysis.