LiteLLM is a proxy server (AI Gateway) to call LLM APIs in OpenAI (or native) format. From 1.87.0 until 1.100.4, 1.101.3, 1.102.2, 1.103.1, and 1.104.0-rc.2, the proxy reuses one cryptographic context for at-rest secrets and session tokens, allowing an authenticated internal user to have crafted metadata containing a forged administrator credential encrypted and returned by the API-key flow. Replaying that ciphertext as a bearer token causes the proxy to trust the forged proxy administrator identity, permitting administrative access and arbitrary commands through the MCP stdio endpoint. Versions 1.87.0 through 1.90.x require EXPERIMENTAL_UI_LOGIN to be enabled, while versions after 1.91.0 are exploitable in the default configuration. This issue was fixed in LiteLLM 1.100.4, 1.101.3, 1.102.2, 1.103.1, and 1.104.0-rc.2.
{
"cna_assigner": "GitHub_M",
"cwe_ids": [
"CWE-269",
"CWE-345",
"CWE-441"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/114xxx/CVE-2026-114612.json"
}{
"extracted_events": [
{
"range": [
{
"introduced": "1.87.0"
},
{
"fixed": "1.100.4"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"introduced": "1.101.0"
},
{
"fixed": "1.101.3"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"introduced": "1.102.0"
},
{
"fixed": "1.102.2"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"introduced": "1.103.0"
},
{
"fixed": "1.103.1"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"introduced": "1.104.0-rc.1"
},
{
"fixed": "1.104.0-rc.2"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"fixed": "1d5fdc87fed66b49e1df8cf7d708ad93249eb7d0"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "9161d7f9d6073603ba61ee4aa5e2c0ef5b37a81b"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "9fa1a641119dd0d4fe43e93622eae5f482ceb63f"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "a80eacacee118fbed54e3d98f239d17a63fac818"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "f7cd90f09e9716652b38daec9f0640cdf49d582b"
}
],
"source": "REFERENCES_COMMIT"
},
{
"original_tag": "v1.100.4",
"range": [
{
"fixed": "883282fb72f31ab90a0ba828a10bbfe7d2680805"
}
],
"source": "REFERENCES_TAG"
},
{
"original_tag": "v1.101.3",
"range": [
{
"fixed": "1b6ee737c96c346430b04f36827fbe64935328df"
}
],
"source": "REFERENCES_TAG"
},
{
"original_tag": "v1.102.2",
"range": [
{
"fixed": "a0c4a3347afe19decf500ecf436f21d7fb471c34"
}
],
"source": "REFERENCES_TAG"
},
{
"original_tag": "v1.103.1",
"range": [
{
"fixed": "580bde9a2d148714889ec1c04a9872819e78a778"
}
],
"source": "REFERENCES_TAG"
},
{
"original_tag": "v1.104.0-rc.2",
"range": [
{
"fixed": "e926084212ab2eb234c58840d741b3c62c35911b"
}
],
"source": "REFERENCES_TAG"
}
]
}