Description
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`.
Problem types
CWE-347: Improper Verification of Cryptographic Signature
Product status
>= 2.32.0-rc.0, < 2.32.2
>= 2.31.0, < 2.31.12
>= 2.30.0, < 2.30.8
>= 2.29.0, < 2.29.13
< 2.24.5
References
github.com/.../coder/security/advisories/GHSA-6x44-w3xg-hqqf
github.com/coder/coder/pull/25286
github.com/coder/coder/releases/tag/v2.24.5
github.com/coder/coder/releases/tag/v2.29.13
github.com/coder/coder/releases/tag/v2.30.8
github.com/coder/coder/releases/tag/v2.31.12
github.com/coder/coder/releases/tag/v2.32.2
github.com/coder/coder/releases/tag/v2.33.3