Vulnerabilities in pkg:nuget/Metalama.Framework

PACKAGE
Advisory Identifier: GHSA-m6wq-39m7-9xpp
Advisory Summary

CVE-2026-62847 is a MODERATE (CVSS 8.2) metalama allows local code execution vulnerability (CWE-377: Insecure Temporary File) affecting Metalama.Framework libraries in the NuGet ecosystem. The issue involves metalama allows local code execution through dll planting in shared temporary directories. Remediation is available by upgrading affected packages to version 2026.1.19, 2025.1.18, 2026.0.25.

1 Known Advisory Record(s)
Package Vulnerability Intelligence

pkg:nuget/Metalama.Framework

1 Known Advisory Record(s)

Vulnerability advisories affecting package pkg:nuget/Metalama.Framework. Select an advisory below to view technical details or fixes.

Advisory ID CVE / NVD Severity Summary
GHSA-m6wq-39m7-9xpp CVE-2026-62847 MODERATE Metalama allows local code execution through DLL planting in shared temporary directories

CVE-2026-62847 at a Glance

CVE Identifier CVE-2026-62847
GHSA Identifier GHSA-m6wq-39m7-9xpp
Severity MODERATE
CVSS v3.1 Base Score 8.2
CWE Classification CWE-377: Insecure Temporary File
Affected Product Metalama.Framework
Package Ecosystem NuGet
Published Date
Last Updated

Security Impact

CVSS: 8.2

The security impact metrics below are parsed directly from the CVSS v3.1 vector string (CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H).

Attack Vector Local (AV:L)
Attack Complexity Low (AC:L)
Privileges Required Low (PR:L)
User Interaction Required (UI:R)
Scope Changed (S:C)
Confidentiality High (C:H)
Integrity High (I:H)
Availability High (A:H)

How to Fix CVE-2026-62847

To remediate this vulnerability, upgrade all affected Metalama.Framework dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.

Metalama.Framework fixed: 2026.1.19
Upgrade Metalama.Framework to 2026.1.19
Metalama.Tool fixed: 2026.1.19
Upgrade Metalama.Tool to 2026.1.19
Metalama.Framework fixed: 2025.1.18
Upgrade Metalama.Framework to 2025.1.18
Metalama.Tool fixed: 2025.1.18
Upgrade Metalama.Tool to 2025.1.18
Metalama.Tool fixed: 2026.0.25
Upgrade Metalama.Tool to 2026.0.25
Metalama.Framework fixed: 2026.0.25
Upgrade Metalama.Framework to 2026.0.25
Verify Direct and Transitive Dependencies

Run the following command in your project directory to verify that all resolved dependencies use the patched release:

inspect dependencies for Metalama.Framework

How to Check if You Are Affected

To determine whether your application is affected by CVE-2026-62847, inspect your project dependencies for Metalama.Framework:

inspect dependencies for Metalama.Framework

Analyze the terminal output to locate any version of Metalama.Framework in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 2026.1.19), your application is affected.

Note: Verify declared build manifests and deployed runtime container environments.

Technical Details

Vulnerability Mechanism & Technical Analysis

This vulnerability is classified under CWE-377: Insecure Temporary File, where creating and using insecure temporary files can leave application and system data vulnerable to attack. In Metalama.Framework, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.

Source Advisory Statement

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

CVE-2026-62847 Affected Metalama.Framework Versions

6 component(s)
Fixed Versions:
2026.1.192025.1.182026.0.25
Product / Package Ecosystem Affected Versions Fixed Version
Metalama.Framework
NuGet
≥ 2026.1.0-preview
< 2026.1.19
2026.1.19
Metalama.Tool
NuGet
≥ 2026.1.0-preview
< 2026.1.19
2026.1.19
Metalama.Framework
NuGet
< 2025.1.18
2025.1.18
Metalama.Tool
NuGet
< 2025.1.18
2025.1.18
Metalama.Tool
NuGet
≥ 2026.0.0-preview
< 2026.0.25
2026.0.25
Metalama.Framework
NuGet
≥ 2026.0.0-preview
< 2026.0.25
2026.0.25

References

Frequently Asked Questions

What is CVE-2026-62847?
CVE-2026-62847 is a security vulnerability in Metalama.Framework involving Metalama allows local code execution through DLL planting in shared temporary directories under CWE-377: Insecure Temporary File.
Which Metalama.Framework versions are affected?
Affected versions include releases prior to 2026.1.19, 2025.1.18, 2026.0.25 across affected packages: Metalama.Framework, Metalama.Tool.
What version fixes CVE-2026-62847?
Upgrading to 2026.1.19, 2025.1.18, 2026.0.25 (or the latest patched release for your respective branch) resolves the vulnerability.
Is Metalama.Framework affected?
Yes, Metalama.Framework is affected in releases prior to 2026.1.19, 2025.1.18, 2026.0.25. Upgrade your dependency to 2026.1.19, 2025.1.18, 2026.0.25 or later.
Is Metalama.Tool affected?
Yes, Metalama.Tool is affected in releases prior to 2026.1.19, 2025.1.18, 2026.0.25. Upgrade your dependency to 2026.1.19, 2025.1.18, 2026.0.25 or later.
What is the CVSS score of CVE-2026-62847?
CVE-2026-62847 has a CVSS v3.1 base score of 8.2 (MODERATE) with vector string CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H.
What CWE is associated with CVE-2026-62847?
CVE-2026-62847 is classified under CWE-377: Insecure Temporary File (Creating and using insecure temporary files can leave application and system data vulnerable to attack.).
How can I check NuGet dependencies for CVE-2026-62847?
Run the dependency tree command: 'inspect dependencies for Metalama.Framework'. This command lists direct and transitive dependencies in your build configuration so you can verify if a vulnerable version is resolved.
Machine-readable OSV JSON OSV v1.5 Schema
Normalized schema output
{
  "schema_version" : "1.4.0",
  "id" : "GHSA-m6wq-39m7-9xpp",
  "modified" : "2026-10-14T19:24:53Z",
  "published" : "2026-10-14T19:24:53Z",
  "aliases" : [ "CVE-2026-62847" ],
  "summary" : "Metalama allows local code execution through DLL planting in shared temporary directories",
  "details" : "## Summary\n\nMetalama 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.\n\nA 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.\n\nAffected load-and-execute paths:\n- the cache of compile-time assemblies that Metalama generates from your aspects;\n- auxiliary executable tools that Metalama extracts to a local directory and then launches;\n- embedded .NET helper assemblies that Metalama extracts to a local directory and loads into the build / IDE process.\n\n## Impact\n\nArbitrary 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.\n\n## Affected configurations\n\n- **Linux and macOS, default configuration — affected.** The shipped default uses the world-writable system temp directory.\n- **Windows, default configuration — not affected.** The default per-user temporary directory is protected by OS ACLs, so cross-user planting is not possible.\n- 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.\n\n## Severity\n\nCVSS 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).\n\nCVSS 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.\n\n## Fix\n\nCaches 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**.\n\n## Weaknesses\n\n- CWE-377: Insecure Temporary File\n- CWE-427: Uncontrolled Search Path Element\n\n## Affected packages\n\n- Metalama.Framework < 2026.1.19, \n- Metalama.Tool < 2026.1.19\n\nInternal tracking: metalama/Metalama#1650.",
  "severity" : [ {
    "type" : "CVSS_V3",
    "score" : "CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H"
  }, {
    "type" : "CVSS_V4",
    "score" : "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"
  } ],
  "affected" : [ {
    "package" : {
      "ecosystem" : "NuGet",
      "name" : "Metalama.Framework"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "2026.1.0-preview"
      }, {
        "fixed" : "2026.1.19"
      } ]
    } ]
  }, {
    "package" : {
      "ecosystem" : "NuGet",
      "name" : "Metalama.Tool"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "2026.1.0-preview"
      }, {
        "fixed" : "2026.1.19"
      } ]
    } ]
  }, {
    "package" : {
      "ecosystem" : "NuGet",
      "name" : "Metalama.Framework"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "0"
      }, {
        "fixed" : "2025.1.18"
      } ]
    } ]
  }, {
    "package" : {
      "ecosystem" : "NuGet",
      "name" : "Metalama.Tool"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "0"
      }, {
        "fixed" : "2025.1.18"
      } ]
    } ]
  }, {
    "package" : {
      "ecosystem" : "NuGet",
      "name" : "Metalama.Tool"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "2026.0.0-preview"
      }, {
        "fixed" : "2026.0.25"
      } ]
    } ]
  }, {
    "package" : {
      "ecosystem" : "NuGet",
      "name" : "Metalama.Framework"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "2026.0.0-preview"
      }, {
        "fixed" : "2026.0.25"
      } ]
    } ]
  } ],
  "references" : [ {
    "type" : "WEB",
    "url" : "https://github.com/metalama/Metalama/security/advisories/GHSA-m6wq-39m7-9xpp"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/metalama/Metalama/pull/1719"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/metalama/Metalama/commit/09911349a916e82194b1cfaa6d0a38acad928fc9"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/metalama/Metalama/commit/92c4feecfce86d18fcb007ab6d3a1b4383326a2e"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/metalama/Metalama/commit/ab9407263203c66d7c5680a34c28dba31f9951c9"
  }, {
    "type" : "PACKAGE",
    "url" : "https://github.com/metalama/Metalama"
  } ],
  "database_specific" : {
    "cwe_ids" : [ "CWE-377", "CWE-427" ],
    "severity" : "MODERATE",
    "github_reviewed" : true,
    "github_reviewed_at" : "2026-10-14T19:24:53Z",
    "nvd_published_at" : null
  }
}