Back to skill

Security audit

Agent Harness Engineer

Security checks for vulnerabilities and agentic risk

Overview

This skill is a documentation and template package for building AI agents, but some included scaffold guidance could lead users to create agents with overbroad file, network, hook, credential, and logging behavior.

Review this skill before installing if you may use its bundled project-scaffold templates. Prefer the v3 abstract guidance and safer professional/enterprise skeletons, and do not copy the legacy file/network/hook implementations without adding workspace path enforcement, network allowlists, user approval for writes or mutating requests, secret redaction, and safe credential storage.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • Tool Hijacking and SpoofingModifies or replaces tools so legitimate-looking calls execute attacker logic
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
Findings (3)

T05 · Unauthorized Access and Privilege Escalation

Error
Location
templates/project-scaffold/python/src/tools/file_tools.py:55
Finding

LLM-Invocable File Tools Allow Unrestricted Host Filesystem Access

Content
View full analysis

Vulnerability Details

File Location: templates/project-scaffold/python/src/tools/file_tools.py:55-76
Additional Locations:

  • templates/project-scaffold/python/src/agent/core.py:55-63
  • templates/project-scaffold/python/src/agent/core.py:96-101
  • templates/project-scaffold/nodejs/src/tools/file_tools.js:43-69
  • templates/project-scaffold/nodejs/src/agent/core.js:31-38
  • templates/project-scaffold/nodejs/src/agent/core.js:54-59

Vulnerability Type: Unrestricted filesystem access and missing least-privilege enforcement
Risk Level: High

Vulnerable Code

python
def read_file(self, input_data: Dict[str, Any]) -> str:
    path = input_data["path"]
    offset = input_data.get("offset", 1)
    limit = input_data.get("limit", 2000)

    try:
        with open(path, 'r', encoding='utf-8') as f:
            lines = f.readlines()
            start = max(0, offset - 1)
            end = min(start + limit, len(lines))
            return ''.join(lines[start:end])
    except Exception as e:
        return f"Error: {str(e)}"

def write_file(self, input_data: Dict[str, Any]) -> str:
    path = input_data["path"]
    content = input_data["content"]

    try:
        os.makedirs(os.path.dirname(path), exist_ok=True)
        with open(path, 'w', encoding='utf-8') as f:
            f.write(content)
        return f"Successfully wrote to {path}"
    except Exception as e:
        return f"Error: {str(e)}"

The tools are registered by default and invoked directly from model-generated tool calls:

python
self.tools.register("read_file", "Read file contents",
                    file_tools.read_file_schema, file_tools.read_file)
self.tools.register("write_file", "Write file contents",
                    file_tools.write_file_schema, file_tools.write_file)
self.tools.register("list_files", "List files",
                    file_tools.list_files_schema, file_too
...[truncated 3582 chars]
Remediation
View remediation

Remediation Suggestions

  1. Configure a fixed, canonical workspace root outside model control.

  2. Resolve every requested path before access and verify that it remains beneath that root:

    python
    workspace = Path(config.workspace_root).resolve()
    candidate = (workspace / requested_path).resolve(strict=False)
    
    try:
        candidate.relative_to(workspace)
    except ValueError:
        raise PermissionError("Path is outside the workspace")
    
  3. Reject absolute paths and explicit traversal components before resolution.

  4. Protect against symbolic-link races by using descriptor-relative operations where supported and refusing symlinks for sensitive operations.

  5. Maintain separate allowlists for readable and writable paths.

  6. Deny access to .env, .git, SSH directories, credential stores, session secrets, and security configuration even when they appear beneath the workspace.

  7. Require explicit user approval for writes, especially overwrites and writes to configuration or executable files.

  8. Route every file operation through the permission model and sandbox rather than calling ToolRegistry.execute() directly.

  9. Run the Agent as a dedicated low-privilege operating-system user inside an isolated container or equivalent sandbox.

  10. Add tests for absolute paths, ../ traversal, nested symlinks, broken symlinks, and race-condition attempts.

T09 · Insecure Skill Coding Practices

Error
Location
templates/project-scaffold/python/src/tools/network_tools.py:41
Finding

Default Network Tools Permit SSRF and Arbitrary Outbound Data Transmission

Content
View full analysis

Vulnerability Details

File Location: templates/project-scaffold/python/src/tools/network_tools.py:41-91
Additional Locations:

  • templates/project-scaffold/python/src/agent/core.py:62-63
  • templates/project-scaffold/nodejs/src/tools/network_tools.js:34-93
  • templates/project-scaffold/nodejs/src/agent/core.js:37-38

Vulnerability Type: Server-side request forgery and unrestricted egress
Risk Level: High

Vulnerable Code

python
def web_fetch(self, input_data: Dict[str, Any]) -> str:
    import requests

    url = input_data["url"]
    selector = input_data.get("selector")

    try:
        headers = {
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
        }
        response = requests.get(url, headers=headers, timeout=10)
        response.raise_for_status()

        if selector:
            from bs4 import BeautifulSoup
            soup = BeautifulSoup(response.text, 'html.parser')
            elements = soup.select(selector)
            return "\n".join([e.get_text() for e in elements])

        return response.text
    except Exception as e:
        return f"Error: {str(e)}"

def http_request(self, input_data: Dict[str, Any]) -> Dict[str, Any]:
    import requests

    url = input_data["url"]
    method = input_data.get("method", "GET")
    headers = input_data.get("headers", {})
    body = input_data.get("body")

    try:
        if method == "GET":
            response = requests.get(url, headers=headers, timeout=10)
        elif method == "POST":
            response = requests.post(url, headers=headers, data=body, timeout=10)
        elif method == "PUT":
            response = requests.put(url, headers=headers, data=body, timeout=10)
        elif method == "DELETE":
            response = requests.delete(url, headers=headers, timeout=10)
        else:
            return {"error": f"Unsupported me
...[truncated 3553 chars]
Remediation
View remediation

Remediation Suggestions

  1. Do not register general-purpose network tools by default. Enable them only when required for the declared use case.
  2. Use an explicit destination allowlist based on normalized hostnames and permitted ports.
  3. Permit only HTTPS unless a specific trusted HTTP endpoint is required.
  4. Resolve the hostname before connecting and reject loopback, private, link-local, multicast, unspecified, and reserved addresses for both IPv4 and IPv6.
  5. Revalidate the resolved destination at connection time to mitigate DNS rebinding.
  6. Disable redirects, or repeat the complete destination validation for every redirect hop.
  7. Explicitly block cloud metadata destinations and host aliases.
  8. Restrict methods to GET by default. Require user approval and per-destination policy for POST, PUT, or DELETE.
  9. Remove or allowlist sensitive headers such as Authorization, Cookie, Proxy-Authorization, and forwarded identity headers.
  10. Stream responses with a strict byte limit and reject unexpected content types.
  11. Apply network-layer egress restrictions in the container, firewall, or service mesh so application validation is not the only defense.
  12. Keep network-fetched content marked as untrusted and prevent it from directly authorizing subsequent tool calls.
  13. Add tests covering redirects to private addresses, IPv6 loopback, decimal or encoded IP forms, DNS rebinding, metadata endpoints, and oversized responses.

T07 · Tool Hijacking and Spoofing

Warning
Location
templates/project-scaffold/python/src/permissions/hooks.py:29
Finding

Hook Loader Executes Every Python File in a Relative Configuration Directory

Content
View full analysis

Vulnerability Details

File Location: templates/project-scaffold/python/src/permissions/hooks.py:29-47
Related Location: templates/project-scaffold/python/src/tools/file_tools.py:68-76

Vulnerability Type: Unsandboxed dynamic module execution and tool-hook hijacking
Risk Level: Medium

Vulnerable Code

python
def _load_hooks(self):
    if not self.hooks_dir.exists():
        return

    for hook_file in self.hooks_dir.glob("*.py"):
        try:
            import importlib.util
            spec = importlib.util.spec_from_file_location(
                hook_file.stem, hook_file
            )
            module = importlib.util.module_from_spec(spec)
            spec.loader.exec_module(module)

            if hasattr(module, "pre_tool_use"):
                self.pre_hooks.append(module.pre_tool_use)
            if hasattr(module, "post_tool_use"):
                self.post_hooks.append(module.post_tool_use)

            logger.info(f"Loaded hook: {hook_file.name}")
        except Exception as e:
            logger.error(f"Failed to load hook {hook_file}: {e}")

The default directory is relative to the process working directory:

python
def __init__(self, hooks_dir: str = "config/hooks"):
    self.hooks_dir = Path(hooks_dir)
    self.pre_hooks: List[Callable] = []
    self.post_hooks: List[Callable] = []
    self._load_hooks()

Technical Analysis

exec_module() executes top-level Python code immediately. Every *.py file discovered under the configured directory is treated as trusted executable code.

The loader does not:

  • Resolve the hook directory against a fixed trusted root.
  • Verify file ownership or permissions.
  • Reject symbolic links.
  • Verify signatures or integrity hashes.
  • Maintain an explicit hook allowlist.
  • Isolate hook execution.
  • Restrict imports or operating-system access.
  • Prevent Agent file tools from writin ...[truncated 2243 chars]
Remediation
View remediation

Remediation Suggestions

  1. Store executable hooks outside all Agent-writable workspaces.
  2. Resolve the hook directory from a fixed application installation root rather than the current working directory.
  3. Reject hook files and parent directories that are symbolic links.
  4. Verify expected ownership and deny group- or world-writable hook files and directories.
  5. Load only hooks listed in an administrator-controlled allowlist.
  6. Verify hook integrity using deployment-managed hashes or digital signatures.
  7. Prefer declarative hook configuration over arbitrary Python modules.
  8. If executable hooks are required, run them in isolated subprocesses with:
    • A dedicated low-privilege user.
    • A minimal environment.
    • Filesystem restrictions.
    • Network denial by default.
    • CPU, memory, and execution-time limits.
    • Structured input and output validation.
  9. Ensure file tools categorically deny writes to hook, plugin, startup, and application-code directories.
  10. Treat hook failures as fail-closed for security decisions instead of logging the exception and continuing.
  11. Add audit events for hook discovery, integrity validation, loading, input modification, and output modification.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (248)

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

声明描述的是一个高层次的Agent系统构建/指导类技能,重点应在架构设计、工程脚手架、生产级Agent模式与生成策略。给出的代码片段则是一个具体的文件操作工具实现,主要能力是readFile、writeFile和listFiles,包含对本地文件系统的直接访问与修改。这种能力在声明中未被明确说明,且该代码的主要用途并不是‘指导构建Agent系统’,而是提供通用文件I/O工具。虽然文件工具可能作为Agent脚手架的支持组件存在,但就该代码块本身而言,其实际行为与声明的主要目的存在明显偏离,因此应判定为不匹配。

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
93% confidence
Finding

声明描述的是一个高层次的 Agent 系统构建指导型技能,核心用途应是帮助生成生产级 Agent 项目结构与设计方案;而给出的代码块是一个具体的运行时网络请求工具实现。其主要行为是访问外部 URL、抓取网页、解析 HTML,并执行多种 HTTP 方法请求。这些能力属于实际执行的网络操作,而不是单纯的 Agent 构建指导。虽然“工具系统”在声明中被提及,可能弱相关,但当前代码的主功能是网络访问工具本身,且声明中没有明确说明该技能会直接提供或暴露外部网络抓取/HTTP 调用能力,也没有相应权限声明。因此应判定为描述与实际行为存在实质性不匹配。

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
90% confidence
Finding

声明描述的是一个高层次、面向生产的 Agent 系统构建技能,其核心价值应体现在 Agent 架构/脚手架生成、系统设计引导或与 Agent 相关的关键模块上。当前代码片段只是 tests/test_tools.js,内容限于对文件工具和网络工具的单元测试,属于通用基础设施测试代码。虽然“工具系统”可被视为 Agent 项目的配套组成部分,但该片段本身没有展示与 Agent 构建目标直接相关的行为,主用途与声明明显不一致,因此应判定为描述与实际行为不匹配。

Content

No source excerpt is available for this finding.

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 81)May include surrounding context.

md
- **[SKILL.md](SKILL.md)** (本文件): 核心原则、构建规模分级、代码生成策略

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 89)May include surrounding context.

md
- **[references/08-core-concepts.md](references/08-core-concepts.md)**: 核心概念速查(三大支柱、三组件虚拟化、13条防护规则)

Missing User Warnings

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

Recommending a hardcoded API key without any warning about credential-handling risks directly encourages insecure secret management. Because this skill is intended to help build production-grade agent systems, insecure examples can be copied into real deployments, leading to credential leakage through repositories, logs, screenshots, or downstream AI-generated code artifacts.

Content

No source excerpt is available for this finding.

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
85% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · references/08-core-concepts.md (reported line 223)May include surrounding context.

md
| 5 | 系统提示不可被 Agent 修改 | 自我提权 | 提示模板在 Harness 内部管理 |
| 6 | MCP 工具默认 `always_ask` | 第三方工具被自动信任 | 注册时强制 `level: ask` |
| 7 | 凭证不可进入沙箱 | API Key 泄露 | 凭证外置 + 环境变量注入 |
| 8 | `rm -rf /` 等效命令拦截 | 破坏宿主机 | 命令解析 + 危险模式匹配 |
| 9 | 管道 / 重定向受限 | 绕过命令拦截 | 命令解析阶段限制 `\|`、`>`、`<` |
| 10 | 网络出站默认阻断 | 数据外泄 | 白名单域名显式声明 |
| 11 | 符号链接逃逸拦截 | 访问沙箱外文件 | `realpath` 解析后再判定 |

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
85% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · references/08-core-concepts.md (reported line 343)May include surrounding context.

md
### 约束的三个层次

- **硬约束**: 绝对不能违反的规则("永远不要执行 rm -rf /")—— 由 Hardcoded Deny 强制执行
- **软约束**: 默认遵守但可被用户显式覆盖("默认创建新 commit 而不是 amend")—— 由 Settings 管理
- **条件约束**: 在特定场景下触发的规则("如果检测到敏感信息,立即停止")—— 由 Hook 系统 + YOLO 联合实现

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
90% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · references/08-core-concepts.md (reported line 343)May include surrounding context.

md
### 约束的三个层次

- **硬约束**: 绝对不能违反的规则("永远不要执行 rm -rf /")—— 由 Hardcoded Deny 强制执行
- **软约束**: 默认遵守但可被用户显式覆盖("默认创建新 commit 而不是 amend")—— 由 Settings 管理
- **条件约束**: 在特定场景下触发的规则("如果检测到敏感信息,立即停止")—— 由 Hook 系统 + YOLO 联合实现

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
85% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · references/08-core-concepts.md (reported line 343)May include surrounding context.

md
### 约束的三个层次

- **硬约束**: 绝对不能违反的规则("永远不要执行 rm -rf /")—— 由 Hardcoded Deny 强制执行
- **软约束**: 默认遵守但可被用户显式覆盖("默认创建新 commit 而不是 amend")—— 由 Settings 管理
- **条件约束**: 在特定场景下触发的规则("如果检测到敏感信息,立即停止")—— 由 Hook 系统 + YOLO 联合实现

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
90% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · references/08-core-concepts.md (reported line 343)May include surrounding context.

md
### 约束的三个层次

- **硬约束**: 绝对不能违反的规则("永远不要执行 rm -rf /")—— 由 Hardcoded Deny 强制执行
- **软约束**: 默认遵守但可被用户显式覆盖("默认创建新 commit 而不是 amend")—— 由 Settings 管理
- **条件约束**: 在特定场景下触发的规则("如果检测到敏感信息,立即停止")—— 由 Hook 系统 + YOLO 联合实现

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · references/12-sandbox-advanced.md (reported line 216)May include surrounding context.

md
| 攻击向量 | 缓解措施 |
|---|---|
| 路径遍历 (`../../etc/passwd`) | 路径规范化后白名单匹配,拒绝 `..` |
| 符号链接逃逸 | 解析所有 symlink 后再做白名单校验 |
| 时间侧信道 | 禁用高精度计时器 (seccomp: `clock_gettime` only) |
| /proc 信息泄露 | 挂载独立的 procfs,隐藏宿主机进程 |

Missing User Warnings

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

Recommending DEBUG logging of full LLM prompts is dangerous because prompts frequently contain user inputs, secrets, internal file contents, credentials, or regulated data. In an agent harness, prompts often aggregate the full working context, so logging them can create a centralized sensitive-data leak that persists beyond the original request lifecycle.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The audit guidance says session event logs can record user IDs and tool arguments, including data access and modification details, without warning about secret, PII, or credential retention. In an agent system, tool arguments may include file paths, API keys, SQL queries, document contents, and user-provided data, so treating the append-only session log as a blanket audit trail can create a durable sensitive-data repository.

Content

No source excerpt is available for this finding.

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · SKILL.md (reported line 49)May include surrounding context.

md
import os

# TODO: 加载 .env 文件中的环境变量
# from dotenv import load_dotenv
# load_dotenv()

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · templates/minimal/python/src/main.py (reported line 18)May include surrounding context.

python
import os

# TODO: 加载 .env 文件中的环境变量
# from dotenv import load_dotenv
# load_dotenv()

Possible Typosquatting: 'eslint' resembles popular package 'pylint'

High
Category
Supply Chain
Confidence
70% confidence
Finding

Package name closely resembles a popular package, suggesting possible typosquatting. Attackers publish malicious packages with similar names to trick developers into installing them.

Content

No source excerpt is available for this finding.

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
100% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · references/08-core-concepts.md (reported line 223)May include surrounding context.

md
});
  
  test('should deny dangerous commands', () => {
    const result = manager.checkPermission('Bash(rm -rf /)', {});
    expect(result).toBe(false);
  });

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
100% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · references/08-core-concepts.md (reported line 343)May include surrounding context.

md
});
  
  test('should deny dangerous commands', () => {
    const result = manager.checkPermission('Bash(rm -rf /)', {});
    expect(result).toBe(false);
  });

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
100% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · templates/project-scaffold/nodejs/tests/test_permissions.js (reported line 21)May include surrounding context.

js
});
  
  test('should deny dangerous commands', () => {
    const result = manager.checkPermission('Bash(rm -rf /)', {});
    expect(result).toBe(false);
  });

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
100% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · templates/project-scaffold/nodejs/tests/test_permissions.js (reported line 58)May include surrounding context.

js
});
  
  test('should deny dangerous commands', () => {
    const result = manager.checkPermission('Bash(rm -rf /)', {});
    expect(result).toBe(false);
  });

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
100% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · templates/project-scaffold/python/tests/test_permissions.py (reported line 33)May include surrounding context.

python
});
  
  test('should deny dangerous commands', () => {
    const result = manager.checkPermission('Bash(rm -rf /)', {});
    expect(result).toBe(false);
  });

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
100% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · templates/project-scaffold/python/tests/test_permissions.py (reported line 79)May include surrounding context.

python
});
  
  test('should deny dangerous commands', () => {
    const result = manager.checkPermission('Bash(rm -rf /)', {});
    expect(result).toBe(false);
  });

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
95% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · templates/project-scaffold/nodejs/tests/test_permissions.js (reported line 21)May include surrounding context.

js
});
  
  test('should deny dangerous commands', () => {
    const result = manager.checkPermission('Bash(rm -rf /)', {});
    expect(result).toBe(false);
  });

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · templates/project-scaffold/nodejs/tests/test_permissions.js (reported line 38)May include surrounding context.

js
manager = new SandboxManager({
      enabled: true,
      allowedDirectories: ['workspace/'],
      deniedPatterns: ['.env']
    });
  });

Static analysis

Detected: suspicious.dynamic_code_execution

Dynamic code execution detected.

Critical
Code
suspicious.dynamic_code_execution
Location
templates/project-scaffold/python/src/permissions/hooks.py:42