Every CVE Search/ Get API key

CVE-2026-62847

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

8.2 HighFix available

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.

Attack profile

How easy it is to exploit

Attack vector
Local
Complexity
Low
Privileges needed
Low
User interaction
Required

What an attacker can affect

Confidentiality
High
Integrity
High
Availability
High

Exploit likelihood

0.15%Unchanged since Oct 31, 2026
90%50%10%1%

What each source reports

CVE List Score used 8.2

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

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.

Record
CVE-2026-62847
CVSS 3.1
8.2 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H
Weakness
CWE-377, CWE-427
Updated
2026-11-02
EUVDEUVD-2026-114452 8.2

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.

Record
EUVD-2026-114452
CVSS 3.1
8.2 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H
Updated
2026-11-02
GitHub AdvisoriesGHSA-m6wq-39m7-9xpp 6.0

Metalama allows local code execution through DLL planting in shared temporary directories

Summary

Metalama loaded and executed compile-time assemblies, auxiliary executable tools, and embedded helper assemblies from predictable temporary directories. On Linux and macOS the default cache location was the world-writable system temporary directory (Path.GetTempPath(), i.e. /tmp), and previously-generated artifacts were trusted based on the presence of a sentinel/.completed marker file rather than on any integrity verification.

A local, unprivileged user on a shared machine or CI/build agent can pre-create the deterministic cache directory structure and plant a malicious DLL together with the matching sentinel file. When a higher-privileged user (or build/service account) subsequently runs a build, Metalama finds the sentinel, skips regeneration, and loads and executes the attacker-supplied assembly inside the compiler / IDE / MSBuild process.

Affected load-and-execute paths:

  • the cache of compile-time assemblies that Metalama generates from your aspects;
  • auxiliary executable tools that Metalama extracts to a local directory and then launches;
  • embedded .NET helper assemblies that Metalama extracts to a local directory and loads into the build / IDE process.

Impact

Arbitrary code execution in the security context of the building user — i.e. a local privilege escalation across user accounts on shared POSIX systems (multi-user developer machines, CI/build agents). The attacker obtains code execution as the victim without holding the victim's privileges, and can read source/secrets, tamper with build output (supply-chain injection), or disrupt builds.

Affected configurations

  • Linux and macOS, default configuration — affected. The shipped default uses the world-writable system temp directory.
  • Windows, default configuration — not affected. The default per-user temporary directory is protected by OS ACLs, so cross-user planting is not possible.
  • The METALAMA_TEMP environment variable is a deployer-controlled override and is out of scope: pointing it at an insecure (e.g. world-writable or attacker-owned) location is a deployment misconfiguration, not a defect in the product.

Severity

CVSS v3.1: AV:L/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H = 8.2 (High) for the affected POSIX default configuration (Scope:Changed reflects the cross-user privilege escalation).

CVSS v4.0 cross-check: CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:P/VC:L/VI:H/VA:L/SC:L/SI:H/SA:H = 6.0 (Medium), which more granularly attributes low impact to the cache itself and high impact to the subsequent build process. The honest range is therefore Medium-High depending on the scoring model and platform.

Fix

Caches and extraction directories were relocated from the world-writable system temp directory to per-user application-data locations ($XDG_CACHE_HOME / ~/.cache/Metalama on POSIX), relying on OS-enforced per-user ownership as the trust boundary. Fixed in 2026.1.19.

Weaknesses

  • CWE-377: Insecure Temporary File
  • CWE-427: Uncontrolled Search Path Element

Affected packages

  • Metalama.Framework < 2026.1.19,
  • Metalama.Tool < 2026.1.19

Internal tracking: metalama/Metalama#1650.

Record
GHSA-m6wq-39m7-9xpp
CVSS 4.0
6.0 MediumCVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:P/VC:L/VI:H/VA:L/SC:L/SI:H/SA:H
CVSS 3.1
8.2 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H
Weakness
CWE-377, CWE-427
Updated
2026-11-02
NVD 8.2

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.

Record
CVE-2026-62847
CVSS 3.1
8.2 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H
Weakness
CWE-377, CWE-427
Updated
2026-11-03
OSV 8.2

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

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.

Record
CVE-2026-62847
CVSS 3.1
8.2 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H
Weakness
CWE-377, CWE-427
Updated
2026-11-07
OSVGHSA-m6wq-39m7-9xpp 6.0

Metalama allows local code execution through DLL planting in shared temporary directories

Summary

Metalama loaded and executed compile-time assemblies, auxiliary executable tools, and embedded helper assemblies from predictable temporary directories. On Linux and macOS the default cache location was the world-writable system temporary directory (Path.GetTempPath(), i.e. /tmp), and previously-generated artifacts were trusted based on the presence of a sentinel/.completed marker file rather than on any integrity verification.

A local, unprivileged user on a shared machine or CI/build agent can pre-create the deterministic cache directory structure and plant a malicious DLL together with the matching sentinel file. When a higher-privileged user (or build/service account) subsequently runs a build, Metalama finds the sentinel, skips regeneration, and loads and executes the attacker-supplied assembly inside the compiler / IDE / MSBuild process.

Affected load-and-execute paths:

  • the cache of compile-time assemblies that Metalama generates from your aspects;
  • auxiliary executable tools that Metalama extracts to a local directory and then launches;
  • embedded .NET helper assemblies that Metalama extracts to a local directory and loads into the build / IDE process.

Impact

Arbitrary code execution in the security context of the building user — i.e. a local privilege escalation across user accounts on shared POSIX systems (multi-user developer machines, CI/build agents). The attacker obtains code execution as the victim without holding the victim's privileges, and can read source/secrets, tamper with build output (supply-chain injection), or disrupt builds.

Affected configurations

  • Linux and macOS, default configuration — affected. The shipped default uses the world-writable system temp directory.
  • Windows, default configuration — not affected. The default per-user temporary directory is protected by OS ACLs, so cross-user planting is not possible.
  • The METALAMA_TEMP environment variable is a deployer-controlled override and is out of scope: pointing it at an insecure (e.g. world-writable or attacker-owned) location is a deployment misconfiguration, not a defect in the product.

Severity

CVSS v3.1: AV:L/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H = 8.2 (High) for the affected POSIX default configuration (Scope:Changed reflects the cross-user privilege escalation).

CVSS v4.0 cross-check: CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:P/VC:L/VI:H/VA:L/SC:L/SI:H/SA:H = 6.0 (Medium), which more granularly attributes low impact to the cache itself and high impact to the subsequent build process. The honest range is therefore Medium-High depending on the scoring model and platform.

Fix

Caches and extraction directories were relocated from the world-writable system temp directory to per-user application-data locations ($XDG_CACHE_HOME / ~/.cache/Metalama on POSIX), relying on OS-enforced per-user ownership as the trust boundary. Fixed in 2026.1.19.

Weaknesses

  • CWE-377: Insecure Temporary File
  • CWE-427: Uncontrolled Search Path Element

Affected packages

  • Metalama.Framework < 2026.1.19,
  • Metalama.Tool < 2026.1.19

Internal tracking: metalama/Metalama#1650.

Record
GHSA-m6wq-39m7-9xpp
CVSS 4.0
6.0 MediumCVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:P/VC:L/VI:H/VA:L/SC:L/SI:H/SA:H
CVSS 3.1
8.2 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H
Weakness
CWE-377, CWE-427
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
Metalama.Framework
NuGet
2026.1.0-preview up to 2026.1.19
2026.1.19
Metalama.Tool
NuGet
2026.1.0-preview up to 2026.1.19
2026.1.19
Metalama.Framework
NuGet
before 2025.1.18
2025.1.18
Metalama.Tool
NuGet
before 2025.1.18
2025.1.18
Metalama.Tool
NuGet
2026.0.0-preview up to 2026.0.25
2026.0.25
Metalama.Framework
NuGet
2026.0.0-preview up to 2026.0.25
2026.0.25
Metalama.Framework
NuGet
2026.1.0-preview up to 2026.1.19, plus listed versions
2026.1.1-preview2026.1.10-preview2026.1.11-preview2026.1.12-preview2026.1.13-preview
Show 13 moreShow less
2026.1.14-rc2026.1.15-rc2026.1.162026.1.172026.1.182026.1.2-preview2026.1.3-preview2026.1.4-preview2026.1.5-preview2026.1.6-preview2026.1.7-preview2026.1.8-preview2026.1.9-preview
2026.1.19
Metalama.Tool
NuGet
2026.1.0-preview up to 2026.1.19, plus listed versions
2026.1.1-preview2026.1.10-preview2026.1.11-preview2026.1.12-preview2026.1.13-preview
Show 13 moreShow less
2026.1.14-rc2026.1.15-rc2026.1.162026.1.172026.1.182026.1.2-preview2026.1.3-preview2026.1.4-preview2026.1.5-preview2026.1.6-preview2026.1.7-preview2026.1.8-preview2026.1.9-preview
2026.1.19
Metalama.Framework
NuGet
before 2025.1.18, plus listed versions
0.5.0-preview0.5.1-preview0.5.10-preview0.5.11-preview0.5.12-preview
Show 45 moreShow less
0.5.13-preview0.5.15-preview0.5.16-preview0.5.17-preview0.5.18-preview0.5.19-preview0.5.2-preview0.5.20-preview0.5.21-preview0.5.22-preview0.5.23-preview0.5.24-preview0.5.25-preview0.5.26-preview0.5.27-preview0.5.28-preview0.5.29-preview0.5.3-preview0.5.30-preview0.5.31-preview0.5.32-preview0.5.33-preview0.5.34-preview0.5.35-preview0.5.36-preview0.5.37-preview0.5.38-preview0.5.39-preview0.5.4-preview0.5.40-preview0.5.41-preview0.5.42-preview0.5.43-preview0.5.44-preview0.5.45-preview0.5.46-preview0.5.47-preview0.5.48-preview0.5.49-preview0.5.5-preview0.5.50-preview0.5.51-preview0.5.52-preview0.5.53-preview0.5.54-preview
2025.1.18
Metalama.Tool
NuGet
before 2025.1.18, plus listed versions
0.5.77-preview0.5.78-preview0.5.79-preview0.5.80-preview0.5.81-preview
Show 45 moreShow less
0.5.82-preview0.5.83-preview2023.0.101-rc2023.0.102-rc2023.0.103-rc2023.0.104-rc2023.0.105-rc2023.0.106-rc2023.0.107-rc2023.0.108-rc2023.0.109-rc2023.0.110-rc2023.0.111-rc2023.0.112-rc2023.0.113-rc2023.0.1142023.0.1152023.0.1162023.0.1172023.0.1182023.0.1192023.0.1202023.0.1212023.1.1-preview2023.1.102023.1.112023.1.122023.1.2-preview2023.1.3-preview2023.1.4-preview2023.1.5-preview2023.1.6-rc2023.1.7-rc2023.1.8-rc2023.1.92023.2.1-preview2023.2.2-rc2023.2.3-rc2023.2.42023.2.52023.3.1-preview2023.3.102023.3.2-preview2023.3.3-preview2023.3.4-preview
2025.1.18
Metalama.Tool
NuGet
2026.0.0-preview up to 2026.0.25, plus listed versions
2026.0.1-preview2026.0.10-rc2026.0.112026.0.122026.0.13
Show 19 moreShow less
2026.0.142026.0.152026.0.162026.0.172026.0.182026.0.192026.0.2-preview2026.0.202026.0.212026.0.222026.0.232026.0.242026.0.3-preview2026.0.4-preview2026.0.5-preview2026.0.6-rc2026.0.7-rc2026.0.8-rc2026.0.9-rc
2026.0.25
Metalama.Framework
NuGet
2026.0.0-preview up to 2026.0.25, plus listed versions
2026.0.1-preview2026.0.10-rc2026.0.112026.0.122026.0.13
Show 19 moreShow less
2026.0.142026.0.152026.0.162026.0.172026.0.182026.0.192026.0.2-preview2026.0.202026.0.212026.0.222026.0.232026.0.242026.0.3-preview2026.0.4-preview2026.0.5-preview2026.0.6-rc2026.0.7-rc2026.0.8-rc2026.0.9-rc
2026.0.25

History

History
RecordedChangedSources
factsNVD, OSV
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-62847 is a high vulnerability (CVSS 8.2) in Metalama, published October 14, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.15%, the 4th percentile. Fixed in Metalama.Framework 2026.1.19.

References

Show 7 moreShow less
This page doesn't list everything

Left out here: 318 versions. The JSON record has them.

MoveEnter Open