Coder: PKCS#7 signature bypass in Azure instance identity allows unauthenticated agent token theft
Coder: PKCS#7 signature bypass in Azure instance identity allows unauthenticated agent token theft
Prioriteit & onderbouwing
Prioriteit: Verhoogd
Deze week beoordelen
Verhoogd (55/100): deze week beoordelen. Zwaarst wegend: technische ernst en gemeentelijke relevantie.
hoog
- Technische ernst (severity): Genormaliseerde ernst 'critical'; geen CVSS-score beschikbaar.
laag
- Geen exploit bekend: Er is geen exploit of actief misbruik bekend.
verhoogd
- Gemeentelijke relevantie: Relevantiescore 55/100 uit de relevantie-engine (module 5).
verhoogd
- Technische ernst: Threat Score 85/100 x gewicht 25%.
- Exploitatie: Exploit Score 10/100 x gewicht 25%.
- Gemeentelijke relevantie: Relevantiescore 55/100 x gewicht 22%.
- Betrouwbaarheid van het signaal: Confidence 'likely' x gewicht 12%.
- Blootstellingskans: Geschatte blootstelling 47% x gewicht 10%.
- Betrouwbaarheid van de bron: Bronbetrouwbaarheid 88% x gewicht 6%.
De priority_score is de Action Urgency Score: een gewogen combinatie van de technische ernst, de exploitatie en de gemeentelijke relevantie.
Toelichting
## Summary `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":" "}` 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 ## Root Cause In unpatched Coder releases the signature over the PKCS#7 content is not validated - only the signing certificate is checked. ## Impact An attacker on any Azure VM or with access to a publicly available Azure IMDS certificate from CT logs can: 1. **Steal an agent session token** by sending a forged PKCS#7 envelope to `POST /api/v2/workspaceagents/azure-instance-identity` which is unauthenticated. 2. **With the stolen token** access: - **Git SSH private key** via `GET /workspaceagents/me/gitsshkey`: push to repositories and impersonate the workspace owner. - **OAuth access tokens** via `GET /workspaceagents/me/external-auth`: GitHub, GitLab, and Bitbucket tokens in plaintext. - **Workspace secrets** via the agent manifest: environment variables, file paths, and API keys. ## Attack Path Diagram ## Affected Versions All versions of Coder v2 are affected. ## Patches Fixed in [#25286 ](https://github.com/coder/coder/pull/25286) The fix was backported to all supported release lines: | Patched Versions | | --- | | [**v2.33.3**](https://github.com/coder/coder/releases/tag/v2.33.3) | | [**v2.32.2**](https://github.com/coder/coder/releases/tag/v2.32.2) | | [**v2.31.12**](https://github.com/coder/coder/releases/tag/v2.31.12) | | [**v2.30.8**](https://github.com/coder/coder/releases/tag/v2.30.8) | | [**v2.29.13**](https://github.com/coder/coder/releases/tag/v2.29.13) | | [**v2.24.5**](https://github.com/coder/coder/releases/tag/v2.24.5) | ## Workarounds If unable to patch we recommend immediately reconfiguring any Azure templates to use token authentication rather than `azure-instance-identity` until the patch is released and you are fully upgraded. 1. Modify the [`coder_agent.auth`](https://registry.terraform.io/providers/coder/coder/latest/docs/resources/agent#auth-1) value to be `token`. 2. Add `CODER_AGENT_TOKEN=${coder_agent.main.token}` to the set of environment variables for the Coder Workspace Agent initialization script. ## Recognition We'd like to thank [Ben Tran](https://github.com/bencalif) of [calif.io](http://calif.io) and Anthropic’s Security Team (`ANT-2026-22445`) for independently disclosing this issue!
Onderbouwing van de classificatie
Categorie 'supplier_incident' overgenomen van de bron; geen specifieker incidenttype gedetecteerd. Severity 'critical' bepaald op basis van: bronlabel 'critical', trefwoord 'unauthenticated'. Confidence 'likely': gerenommeerd securityonderzoek (GitHub Security Advisories). Herkende leveranciers/producten: Atlassian.
Kwetsbaarheden
- CVSS
- —
- EPSS
- —
- KEV
- Nee
Gemeentelijke relevantie
Deze dreiging scoort 55/100 voor de gemeentelijke relevantie. Meegewogen: een hoge ernstinschaling, impact op identity of Microsoft 365 en een leveranciers- of ketenrisico. Geraakte processen: Microsoft 365 en identity, Leveranciersketen.
Bestuurlijke duiding
Deze dreiging is relevant voor de gemeente. Omdat het een leverancier betreft, is de gemeente afhankelijk van diens herstel en is regie op de keten nodig. De impact is beheersbaar mits de geadviseerde maatregelen tijdig worden opgevolgd. Laat de CISO de voortgang bewaken en escaleer richting directie zodra nieuwe signalen daartoe aanleiding geven.
Geraakte processen
Geraakte technologie
Betrokken rollen
CISO · ISO · SOC · ICT beheer · Leveranciersmanager
Operationele acties
- Inventariseer welke koppelingen en gegevensstromen met de leverancier lopen.
- Schakel waar nodig de koppeling met de leverancier tijdelijk uit.
- Vraag bewijs van herstel op voordat de dienstverlening wordt hervat.
Concrete stappen voor ICT-beheer en het securityteam.
Aanbevolen acties
- Breng in kaart welke leveranciers en koppelingen zijn geraakt.
- Vraag de leverancier om een statusupdate en een herstelplan.
- Beoordeel de impact op de eigen dienstverlening.
Dit zijn algemene handelingsperspectieven. Stem de opvolging af op de eigen omgeving en het ISMS van uw gemeente.
Kenmerken
- Ernst
- Kritiek
- Categorie
- Leveranciersincident
- Zekerheid
- Waarschijnlijk
- Status
- Verrijkt
- CVE's
- CVE-2026-46354
- Prioriteitsscore
- 55 / 100 · Verhoogd
- Bron
- GitHub Security Advisories
- Gepubliceerd
- 19 mei 2026