T05 · Unauthorized Access and Privilege Escalation
- Location
src/sandbox.js:246- Finding
Submitted Code Executes with Unrestricted Host Access
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is a code runner marketed as a secure sandbox, but it executes submitted code directly on the host with insufficient containment.
Review before installing. Use this only for code you already trust or inside a separate disposable container or VM with no secrets in the environment and restricted filesystem and network access. Do not expose it to strangers or agent-generated code until real containment, resource limits, and cleanup controls are implemented.
src/sandbox.js:246Submitted Code Executes with Unrestricted Host Access
src/sandbox.js:222Timeout Handling Does Not Reliably Terminate Descendants and Skips Cleanup
The file advertises a secure, isolated sandbox with Docker, Job Objects, and vm2, but the implementation actually writes attacker-controlled code to disk and executes it directly on the host using Node, Python, Go, and Rust toolchains. This is dangerous because callers may trust the safety claims and run untrusted code that can access the host filesystem, network, processes, and other local resources with the privileges of the service.
The Node executor passes the full parent environment into untrusted code via env: { ...process.env, NODE_ENV: 'sandbox' }, which can leak API keys, tokens, cloud credentials, internal URLs, and other secrets directly to attacker-controlled code. Because the code is not actually sandboxed, the executed program can immediately exfiltrate those secrets or use them to pivot into external systems.
The skill is marketed as a 'Secure code execution sandbox' while the same document later admits it lacks critical protections such as network isolation, strong containment, and enforced memory controls. This can cause operators or downstream agents to trust it for untrusted-code execution, creating a dangerous mismatch between perceived and actual security boundaries.
The documentation claims resource limits and security features including CPU/memory constraints, but later states memory limit enforcement is not implemented and stronger isolation is only planned. This inconsistency may lead users to run hostile workloads under false assumptions, enabling denial-of-service, data access, or network abuse from insufficiently isolated code.
This markdown file presents the skill-related testing report in Chinese only, beginning with the title and continuing throughout the document. The policy requires flagging language or locale constraints when the skill forces a specific language without user opt-in, and this file does not indicate any optional language selection or region-specific justification.
The report documents a code-execution sandbox that records execution history while also explicitly noting missing protections such as no containerization, no memory enforcement, no network isolation, and no read-only filesystem mode. Because it says the prototype can be used and does not prominently warn against untrusted code at the point where execution and history features are described, users may deploy or use it unsafely, leading to code execution abuse, data exposure, or host compromise.
The implementation persists supplied source code to temporary files on disk before execution, but there is no disclosure to users that their code may be stored locally. This can expose sensitive source content through forensic recovery, backups, endpoint monitoring, race/access by other local users if permissions are weak, or incomplete cleanup after crashes/timeouts.
The skill executes arbitrary user-supplied code locally through interpreters and compilers, yet presents itself as a sandbox service and even includes a demo path that runs code immediately. In an agent-skill context, this is especially dangerous because users or downstream components may invoke it expecting containment, resulting in silent local code execution on the host.
Detected: suspicious.dangerous_exec