<Vulnerability name="CVE-2026-92958">
    <DocumentDistribution xml:lang="en">Copyright © 2012 Red Hat, Inc. All rights reserved.</DocumentDistribution>
    <ThreatSeverity>Important</ThreatSeverity>
    <PublicDate>2026-09-17T13:46:15</PublicDate>
    <Bugzilla id="2536039" url="https://bugzilla.redhat.com/show_bug.cgi?id=2536039" xml:lang="en:us">
vm2: vm2: Sandbox escape via denylist bypass in NodeVM
    </Bugzilla>
    <CVSS3 status="draft">
        <CVSS3BaseScore>8.5</CVSS3BaseScore>
        <CVSS3ScoringVector>CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:N/I:H/A:L</CVSS3ScoringVector>
    </CVSS3>
    <CWE>CWE-1220</CWE>
    <Details xml:lang="en:us" source="Mitre">
vm2 through 3.11.6 contains a builtin-module denylist bypass in NodeVM. When the embedder uses the builtin wildcard together with negative entries (e.g. require: { builtin: ['*', '-fs', '-child_process'] }), negative entries are matched by exact module name in lib/builtin.js, so -fs removes only the builtin named fs and does not remove builtin subpaths such as fs/promises. Sandboxed code can therefore call require('fs/promises') or require('node:fs/promises') and reach the promise-based filesystem API despite fs being denied; node: prefix handling is likewise inconsistent (a -node:fs/promises entry does not block require('fs/promises')). Host file creation and writing were confirmed via fsp.writeFile(), and other fs/promises operations (cp, mkdir, rename, rm, rmdir, truncate, read operations, etc.) are also reachable. This issue is fixed in vm2 3.11.7.
    </Details>
    <Details xml:lang="en:us" source="Red Hat">
A flaw was found in vm2, a sandbox for Node.js. When the NodeVM embedder uses a builtin wildcard with negative entries to deny specific modules, such as 'fs' for file system access, the denylist mechanism fails to block subpaths like 'fs/promises'. This allows sandboxed code to bypass the intended restrictions and access the promise-based file system API. An attacker can exploit this to perform arbitrary file system operations, including creating and writing files, which may lead to a sandbox escape and arbitrary code execution.
    </Details>
    <Statement xml:lang="en:us">
Important: Red Hat products utilizing vm2, such as Red Hat Ansible Automation Platform and Red Hat Developer Hub, are affected by a sandbox escape vulnerability. This flaw allows sandboxed code to bypass denylist restrictions and access the host filesystem, enabling unauthorized file creation, writing, and other operations from within the isolated environment.
    </Statement>
    <Mitigation xml:lang="en:us">
Mitigation for this issue is either not available or the currently available options do not meet the Red Hat Product Security criteria comprising ease of use and deployment, applicability to widespread installation base, or stability.
    </Mitigation>
    <PackageState cpe="cpe:/a:redhat:rhdh:1">
        <ProductName>Red Hat Developer Hub</ProductName>
        <FixState>Affected</FixState>
        <PackageName>rhdh/red-hat-developer-hub-backstage-plugin-lightspeed-backend</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/a:redhat:rhdh:1">
        <ProductName>Red Hat Developer Hub</ProductName>
        <FixState>Affected</FixState>
        <PackageName>rhdh/red-hat-developer-hub-backstage-plugin-orchestrator-backend</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/a:redhat:rhdh:1">
        <ProductName>Red Hat Developer Hub</ProductName>
        <FixState>Affected</FixState>
        <PackageName>rhdh/rhdh-hub-rhel9</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/a:redhat:ansible_portal:2">
        <ProductName>Self-service automation portal 2</ProductName>
        <FixState>Affected</FixState>
        <PackageName>ansible-automation-platform/automation-portal</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/a:redhat:ansible_portal:2">
        <ProductName>Self-service automation portal 2</ProductName>
        <FixState>Affected</FixState>
        <PackageName>ansible-automation-platform/bootc-automation-portal-rhel9</PackageName>
    </PackageState>
    <References xml:lang="en:us">
https://www.cve.org/CVERecord?id=CVE-2026-92958
https://nvd.nist.gov/vuln/detail/CVE-2026-92958
https://github.com/patriksimek/vm2/security/advisories/GHSA-6rh5-qq4q-97xh
https://www.vulncheck.com/advisories/vm2-before-3.11.7-denylist-bypass-via-fs-promises
    </References>
</Vulnerability>