CVE-2026-121967: Coder AI Gateway encoded path traversal

CVE-2026-121967 · Severity: medium · CVSS 4.9 · Published 2026-11-04

Coder's AI Gateway is a routing service that forwards requests to upstream AI model providers on behalf of authenticated users. The gateway failed to properly validate percent-encoded path segments, allowing authenticated users to access unintended endpoints outside the allowlisted routes—reaching provider endpoints with the deployment's central credential attached. An attacker could potentially read or modify resources owned by the organization's provider account.

Technologies: Coder. Vendors: Coder.

Quick answers

Is CVE-2026-121967 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-121967 being exploited in the wild.
How severe is CVE-2026-121967?
Medium severity, with a CVSS score of 4.9, published 4 November 2026.
Which products and versions are affected?
Coder 2.28.0 before 2.29.22; 2.30.0 before 2.34.13; 2.35.0 before 2.35.10; 2.36.0 before 2.36.8; 2.37.0 before 2.37.5; 2.38.0 before 2.38.1.
Is there a fix for CVE-2026-121967?
Yes: fixed in 2.29.22, 2.34.13, 2.35.10, 2.36.8, 2.37.5, 2.38.1. Until then: Configure a reverse proxy or Web Application Firewall (WAF) in front of Coder to reject requests under /api/v2/aibridge/ and /api/v2/ai-gateway/ whose raw path contains %2e, %25, %5c, .%2f, or %2f (but do not block %2f in model IDs like org%2Fmodel). Alternatively, disable AI Gateway until you can upgrade.</anigation> <parameter name="timeline">[{"kind":"disclosed","at":"2026-10-21"},{"kind":"patched","at":"2026-10-05","note":"Fix merged to main branch"}] Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-121967 attacked?
It is attacked over the network.
Am I affected by CVE-2026-121967?
Check whether you run Coder at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • Fixed in: 2.29.22, 2.34.13, 2.35.10, 2.36.8, 2.37.5, 2.38.1

Configure a reverse proxy or Web Application Firewall (WAF) in front of Coder to reject requests under /api/v2/aibridge/ and /api/v2/ai-gateway/ whose raw path contains %2e, %25, %5c, .%2f, or %2f (but do not block %2f in model IDs like org%2Fmodel). Alternatively, disable AI Gateway until you can upgrade.</anigation> <parameter name="timeline">[{"kind":"disclosed","at":"2026-10-21"},{"kind":"patched","at":"2026-10-05","note":"Fix merged to main branch"}]

Technical details

The AI Gateway passthrough router forwards client request paths to upstream providers without rejecting percent-encoded dot segments (e.g., %2e%2e); the built-in path cleaner only handles literal dots. An authenticated user sends a crafted path such as /openai/v1/models/%2e%2e/files matching an allowlisted prefix, which the upstream decodes and normalizes to reach unintended endpoints, authenticated with the deployment's provider key. The fix validates paths at the gateway entrypoint by decoding once and rejecting any segment containing . or .., leftover %, or control characters.

Affected products

  • Coder Coder 2.28.0 before 2.29.22; 2.30.0 before 2.34.13; 2.35.0 before 2.35.10; 2.36.0 before 2.36.8; 2.37.0 before 2.37.5; 2.38.0 before 2.38.1

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.