[ CVE-2026-62847 · Published 30 Oct 2026 ]
Metalama allows local code execution through DLL planting in shared temporary directories
[ Description ]Official 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.
[ Fixes ]Fixes and patches
- Metalama.Framework 2026.1.19Fixed version · GitHub Advisories · nuget package Metalama.Framework: upgrade to 2026.1.19 or later (affected >= 2026.1.0-preview, < 2026.1.19)
- Metalama.Tool 2026.1.19Fixed version · GitHub Advisories · nuget package Metalama.Tool: upgrade to 2026.1.19 or later (affected >= 2026.1.0-preview, < 2026.1.19)
- Metalama.Framework 2025.1.18Fixed version · GitHub Advisories · nuget package Metalama.Framework: upgrade to 2025.1.18 or later (affected < 2025.1.18)
- Metalama.Tool 2025.1.18Fixed version · GitHub Advisories · nuget package Metalama.Tool: upgrade to 2025.1.18 or later (affected < 2025.1.18)
- Metalama.Tool 2026.0.25Fixed version · GitHub Advisories · nuget package Metalama.Tool: upgrade to 2026.0.25 or later (affected >= 2026.0.0-preview, < 2026.0.25)
- Metalama.Framework 2026.0.25Fixed version · GitHub Advisories · nuget package Metalama.Framework: upgrade to 2026.0.25 or later (affected >= 2026.0.0-preview, < 2026.0.25)
[ Packages ]Affected open-source packages
- Metalama.Framework nugetAffected >= 2026.1.0-preview, < 2026.1.19 · fixed in 2026.1.19 · GHSA-m6wq-39m7-9xpp
- Metalama.Tool nugetAffected >= 2026.1.0-preview, < 2026.1.19 · fixed in 2026.1.19 · GHSA-m6wq-39m7-9xpp
- Metalama.Framework nugetAffected < 2025.1.18 · fixed in 2025.1.18 · GHSA-m6wq-39m7-9xpp
- Metalama.Tool nugetAffected < 2025.1.18 · fixed in 2025.1.18 · GHSA-m6wq-39m7-9xpp
- Metalama.Tool nugetAffected >= 2026.0.0-preview, < 2026.0.25 · fixed in 2026.0.25 · GHSA-m6wq-39m7-9xpp
- Metalama.Framework nugetAffected >= 2026.0.0-preview, < 2026.0.25 · fixed in 2026.0.25 · GHSA-m6wq-39m7-9xpp
[ References ]References
- github.com/metalama/Metalama/commit/09911349a916e82194b1cfaa6d0a38acad928fc9
- github.com/metalama/Metalama/commit/92c4feecfce86d18fcb007ab6d3a1b4383326a2e
- github.com/metalama/Metalama/pull/1650
- github.com/metalama/Metalama/releases/tag/release/2025.1.18
- github.com/metalama/Metalama/releases/tag/release/2026.0.25
- github.com/metalama/Metalama/releases/tag/release/2026.1.19
- github.com/metalama/Metalama/security/advisories/GHSA-m6wq-39m7-9xpp