Description
Metalama is a Roslyn-based open-source patterns and architecture toolkit for C#. Prior to 2025.1.18, 2026.0.25 and 2026.1.19, Metalama.Framework and Metalama.Tool load and execute compile-time assemblies, auxiliary executable tools and embedded helper assemblies from predictable temporary directories. On `Linux` and `macOS`, the default `Path.GetTempPath()` location is world-writable, and existing artifacts are trusted based on sentinel or `.completed` marker files rather than integrity verification. A local unprivileged user on a shared machine or CI/build agent can pre-create the deterministic directory structure and plant a malicious DLL with the matching sentinel. When a higher-privileged developer or build account subsequently builds, Metalama skips regeneration and executes the planted artifact in the compiler, IDE or MSBuild process as the building user. This permits cross-user privilege escalation, reading source and secrets, supply-chain tampering with build output, or disrupting builds. Default Windows per-user temporary directories are protected by ACLs and are not affected. Deployer-selected insecure cache locations are outside the vulnerability's scope. This issue is fixed in versions 2025.1.18, 2026.0.25 and 2026.1.19.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| metalama | Metalama | < 2025.1.18, >= 2025.2.0-preview, <= 2025.2.5-rc, >= 2026.0.0-preview, < 2026.0.25, >= 2026.1.0-preview, < 2026.1.19 | — |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| NuGet | Metalama.Framework | >= 2026.1.0-preview, < 2026.1.19 | 2026.1.19 | GHSA-m6wq-39m7-9xpp |
| NuGet | Metalama.Framework | < 2025.1.18 | 2025.1.18 | GHSA-m6wq-39m7-9xpp |
| NuGet | Metalama.Framework | >= 2026.0.0-preview, < 2026.0.25 | 2026.0.25 | GHSA-m6wq-39m7-9xpp |
| NuGet | Metalama.Tool | >= 2026.1.0-preview, < 2026.1.19 | 2026.1.19 | GHSA-m6wq-39m7-9xpp |
| NuGet | Metalama.Tool | < 2025.1.18 | 2025.1.18 | GHSA-m6wq-39m7-9xpp |
| NuGet | Metalama.Tool | >= 2026.0.0-preview, < 2026.0.25 | 2026.0.25 | GHSA-m6wq-39m7-9xpp |
References
- https://github.com/metalama/Metalama/security/advisories/GHSA-m6wq-39m7-9xpp
- https://github.com/metalama/Metalama/pull/1650
- https://github.com/metalama/Metalama/commit/09911349a916e82194b1cfaa6d0a38acad928fc9
- https://github.com/metalama/Metalama/commit/92c4feecfce86d18fcb007ab6d3a1b4383326a2e
- https://github.com/metalama/Metalama/releases/tag/release/2025.1.18
- https://github.com/metalama/Metalama/releases/tag/release/2026.0.25
- https://github.com/metalama/Metalama/releases/tag/release/2026.1.19