CRITICAL🇬🇧 English

CVE-2026-46354

Coder: brak weryfikacji podpisu PKCS#7 w Azure Instance Identity

CVSS 9.1v3.1pub. 2026-07-07upd. 2026-07-08

Podatność w platformie Coder umożliwia atakującemu sfałszowanie tożsamości instancji Azure (VM) bez jakiejkolwiek autoryzacji poprzez ominięcie weryfikacji podpisu PKCS#7. W rezultacie atakujący może przejąć token sesji agenta roboczego (workspace agent) ofiary.

Pokaż oryginał (EN)

Coder allows organizations to provision remote development environments via Terraform. In versions prior tp 2.24.5, 2.29.13, 2.30.8, 2.31.12, 2.32.2, and 2.33.3, `azureidentity.Validate()` verifies that the PKCS#7 signer certificate chains to a trusted Azure CA but never verifies the PKCS#7 signature itself. An attacker can embed a legitimate Azure certificate alongside arbitrary content e.g. `{"vmId":"<target>"}` and the forged `vmId` will be accepted returning the victim workspace agent's session token. No authentication is required. The attacker only needs to know a target VM's `vmId` which is a `UUIDv4`. That's a practical limitation which would typically require prior access to be exploited. Versions 2.24.5, 2.29.13, 2.30.8, 2.31.12, 2.32.2, and 2.33.3 patch the issue. As a workaround, reconfigure any Azure templates to use token authentication rather than `azure-instance-identity`.

🤖 Analiza AI
Jak działa

Funkcja `azureidentity.Validate()` sprawdza jedynie, czy certyfikat sygnatariusza PKCS#7 pochodzi z zaufanego Azure CA, ale nigdy nie weryfikuje samego podpisu PKCS#7. Atakujący może osadzić legalny certyfikat Azure obok dowolnej treści, np. `{"vmId":"<target>"}`, spreparowując w ten sposób fałszywy `vmId`. Ponieważ podpis nie jest weryfikowany, serwer akceptuje sfałszowany dokument i zwraca token sesji agenta przypisanego do wskazanej maszyny wirtualnej. Praktycznym ograniczeniem ataku jest konieczność znajomości `vmId` docelowej maszyny (wartość UUIDv4), co zazwyczaj wymaga wcześniejszego dostępu do środowiska.

Skutki

Atakujący bez uwierzytelnienia może uzyskać token sesji agenta workspace'u ofiary, co prowadzi do przejęcia kontroli nad zdalnym środowiskiem deweloperskim i potencjalnego dostępu do przechowywanych w nim danych oraz zasobów (wysoki wpływ na poufność i integralność).

Mitygacja

Należy zaktualizować Coder do wersji 2.24.5, 2.29.13, 2.30.8, 2.31.12, 2.32.2 lub 2.33.3 (w zależności od używanej gałęzi). Jako obejście (workaround) przed wdrożeniem patcha należy zmienić konfigurację szablonów Azure tak, aby korzystały z uwierzytelniania tokenowego (token authentication) zamiast `azure-instance-identity`.

Kogo dotyczy

Coder we wszystkich wersjach poprzedzających 2.24.5, 2.29.13, 2.30.8, 2.31.12, 2.32.2 oraz 2.33.3, gdy szablony Azure skonfigurowane są z metodą uwierzytelniania `azure-instance-identity`

Uwagi

Praktyczne wykorzystanie podatności jest ograniczone koniecznością wcześniejszej znajomości wartości `vmId` (UUIDv4) docelowej maszyny wirtualnej, co zazwyczaj wymaga uprzedniego dostępu do środowiska — jak wskazano wprost w opisie oryginalnym.

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
  • Coder

    APP
    Coder
    < 2.24.52.29.0 – 2.29.13 (bez)2.30.0 – 2.30.8 (bez)2.31.0 – 2.31.12 (bez)2.32.0 – 2.32.2 (bez)2.33.0 – 2.33.3 (bez)
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
CWE
Referencje

Powiązane podatności

CVE-2026-55429HIGH8.7PL ✓ten sam produkt

Coder: nieautoryzowane przepisanie agenta między workspace'ami (IDOR)

CVE-2026-55431HIGH7.7PL ✓ten sam produkt

Coder CLI: wyciek tokenu sesji przez niezwalidowany URL zewnętrznej aplikacji

CVE-2026-55427HIGH8.3PL ✓ten sam produkt

Coder: command injection przez niesanityzowane ustawienia SSH w ~/.ssh/config

CVE-2026-55428HIGH8.2PL ✓ten sam produkt

Coder: brak weryfikacji AllowedIPs w koordynatorze tailnet — eskalacja dostępu przez WireGuard

CVE-2026-55436HIGH7.4PL ✓ten sam produkt

Coder AI Bridge Proxy pomija weryfikację certyfikatu TLS (CWE-295)