Этот отчет не переведен на запрошенный язык. Вместо него показан канонический отчет на английском языке.

Версионная оценка безопасности

ID отчёта: SA-18789A6C

10/13/2026, 2:45:11 PM

spawn оценка безопасности v12

Отчёт о сертификации безопасности навыка

История аудитов
Версия сканера 3.0.0 Модель аудита: codex Последний опубликованный отчёт
Название навыка
spawn
Версия
v12
Сопровождающий
Consiliency
Охват
12 Просканировано файлов · 1,587 Проанализировано строк
Версия политики
skillstore-security-audit-policy-v1

Current license

MIT

Наивысшая серьёзность подтверждённого результата

Высокий

Подтверждённая проблема безопасности (1) требует внимания.

Контекст установки

Проверьте текущую страницу навыка

Эта страница содержит только сводку доказательств отчёта. Страница Навыка содержит каноническое уведомление об установке.

Открыть текущую страницу Навыка

Этот отчёт не блокирует и не разрешает манифест или ZIP.

The 86 findings include real shell quoting and temporary-file risks, alongside false positives from documentation, platform detection, and dictionary operations. Provider instructions also recommend disabling approval safeguards and, for Codex, the sandbox. No evidence found of credential theft, concealed malware, or instructions to manipulate this audit.

Позиция отчета

Последний опубликованный отчёт

«Последний» относится к последовательности отчётов, а не к актуальности артефакта.

Аттестация аудита

Активная аттестация

Для этого точного отчёта доступна публичная аттестация.

Проверка человеком

Не проверено

Для этого отчета не зафиксирована проверка человеком.

Охват

12 Просканировано файлов · 1,587 Проанализировано строк

24 элементов показано для проверки

Ограничения

Этот отчёт не заявляет о выполнении во время работы или в песочнице и не доказывает отсутствие побочных эффектов.

Цепочка доказательств

Проследите доказательства от привязки источника до контракта установки. Доступные доказательства подтверждают возможность проверки; они не являются гарантией безопасности.

  1. Источник

    Коммит и путь привязаны

  2. Артефакт

    Хэши содержимого и дерева привязаны

  3. Аудит

    Завершено

  4. Контракт установки

    Открыть манифест для проверки

    Открыть манифест

Обнаруженные возможности

«Обнаружено» означает, что в этом отчете зафиксированы подтверждающие доказательства. «Не зафиксировано» не доказывает отсутствие возможности.

Содержит скрипты

Может выполнять код, включённый в Skill.

Не зафиксировано этим аудитом

Доступ к сети

Может подключаться к внешним службам.

Не зафиксировано этим аудитом

Доступ к файловой системе

Может читать или записывать локальные файлы.

Обнаружено в 23 местах расположения доказательств

Переменные окружения

Может считывать значения из окружения процесса.

Обнаружено в 3 местах расположения доказательств

Внешние команды

Может вызывать команды или программы вне Навыка.

Обнаружено в 48 местах расположения доказательств

Пункты проверки возможностей (23)
Высокий
Python subprocess.run
subprocess.run(
The AppleScript contains unescaped shell_cmd text, including unquoted cwd. Quotes or metacharacters in directory names can change the executed script.
Высокий
Python subprocess.run
subprocess.run(f"cmd.exe /c 'start cmd /k wsl -- {command}'", shell=True)
The fallback interpolates command into nested Unix and Windows shell text with shell=True. Embedded quotes can cross parser boundaries and execute unintended commands.
Высокий
Python subprocess.Popen
subprocess.Popen(wt_cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
The argument list launches PowerShell with generated script text. POSIX shlex.quote does not safely escape PowerShell cwd values, allowing directory text to become code.
Высокий
Python subprocess.Popen
subprocess.Popen(wrapped_cmd, shell=True, cwd=cwd)
Caller-supplied command text is executed with shell=True and no restricted argument mode. Legitimate shell use is intended, but untrusted interpolated data can execute commands.
Высокий
Python subprocess.Popen
subprocess.Popen(wrapped_cmd, shell=True, cwd=cwd)
The debug path executes arbitrary command text with shell=True. The caller trust boundary is unspecified, so unsafe interpolation remains a risk.
Высокий
Python subprocess.Popen
subprocess.Popen(command, shell=True, cwd=cwd)
The fallback passes caller-supplied command directly to shell=True without validation. Requested shell execution is legitimate, but untrusted command construction is not protected.
Высокий
PowerShell invocation
"wt.exe", "-w", "new", "powershell.exe",
PowerShell receives generated script text using POSIX quoting for cwd. That mismatch can interpret directory-name characters as PowerShell syntax.
Высокий
Windows cmd.exe
subprocess.run(f"cmd.exe /c 'start cmd /k wsl -- {command}'", shell=True)
Command text is embedded in a cmd.exe command passed through another shell. Missing parser-specific escaping permits unintended interpretation of embedded quotes and metacharacters.
Средний
Temp directory access
agent_output_file = f"/tmp/fork-agent-{output_id}.json" if log_agent_output else None
Agent output is written by tee into shared /tmp without private permissions or exclusive creation. Sensitive responses may be readable under common umasks.
Средний
Temp directory access
debug_output_file = f"/tmp/fork-debug-{output_id}.txt" if log_to_file else None
Debug logs collect terminal output in shared /tmp without permission hardening. Logs may expose sensitive output to other local users.
Средний
Temp directory access
done_file = f"/tmp/fork-output-{output_id}.done"
The completion marker is not securely created or checked for ownership. Another local user who discovers the filename can spoof completion.
Средний
Temp directory access
agent_output_file = f"/tmp/fork-agent-{output_id}.json" if log_agent_output else None
The WSL script writes agent output into shared /tmp through tee. No private directory, restrictive permissions, or exclusive creation protects the response.
Средний
Temp directory access
debug_output_file = f"/tmp/fork-debug-{output_id}.txt" if log_to_file else None
The WSL debug log stores full terminal output in shared /tmp. Its creation does not enforce privacy or resist existing symlinks.
Средний
Temp directory access
done_file = f"/tmp/fork-output-{output_id}.done"
The WSL completion marker uses a shared temporary path without exclusive creation or ownership verification. A local attacker can spoof its existence.
Средний
Temp directory access
script_file = f"/tmp/fork-script-{output_id}.sh"
A shell script containing caller commands is placed directly in shared /tmp. Later nonexclusive creation and permissions 0755 expose its contents and permit symlink attacks.
Средний
Temp directory access
agent_output_file = f"/tmp/fork-agent-{output_id}.json" if log_agent_output else None
The tmux branch saves agent output in shared /tmp using tee. It does not ensure private permissions or exclusive file creation.
Средний
Temp directory access
debug_output_file = f"/tmp/fork-debug-{output_id}.txt" if log_to_file else None
The tmux debug path stores terminal output in a shared temporary file. Sensitive output can remain readable under common umasks.
Средний
Temp directory access
done_file = f"/tmp/fork-output-{output_id}.done"
The tmux completion marker has no secure creation or ownership checks. Its existence can be spoofed by another local user.
Средний
Temp directory access
agent_output_file = f"/tmp/fork-agent-{output_id}.json" if log_agent_output else None
Background execution writes responses into shared /tmp without permission hardening. Sensitive agent output can be exposed to other local users.
Средний
Temp directory access
debug_output_file = f"/tmp/fork-debug-{output_id}.txt" if log_to_file else None
The background debug file collects stdout and stderr without private permissions or exclusive creation. This creates disclosure and symlink risks.
Средний
Temp directory access
done_file = f"/tmp/fork-output-{output_id}.done"
The background completion marker is placed in shared /tmp and checked only for existence. Local users can forge completion after discovering its path.
Средний
Python file write/append
with open(script_file, 'w') as f:
open(script_file, 'w') follows existing symlinks and truncates their targets. The script is created in shared /tmp without exclusive or no-follow flags.
Средний
Python os file operations
os.chmod(script_file, 0o755)
chmod sets command-bearing scripts to 0755, exposing prompts to other local users. It also follows a substituted symlink when changing target permissions.

Результаты оценки рисков

Подтверждённые проблемы безопасности отделены от элементов, которые всё ещё требуют проверки.

Подтверждённые проблемы безопасности (1)

RISK-001 Высокий
Approval and sandbox safeguards disabled by default
The Codex cookbook says: "Always run with `--dangerously-bypass-approvals-and-sandbox` for full auto mode". Cursor similarly recommends force-allowing commands, increasing exposure to destructive actions and injected repository instructions.
These are explicit operational instructions to remove approval controls, not merely flag descriptions. Codex examples also disable sandboxing.

Меры по устранению

В ходе этого аудита были зафиксированы рекомендуемые исправления. Их применение является ответственностью сопровождающего.

  1. FIX-001
    Высокий
    Provider cookbooks recommend bypassing approvals and sandbox protections.
    Keep approvals and workspace confinement enabled by default. Require explicit user consent before enabling unrestricted execution.
  2. FIX-002
    Высокий
    The macOS launcher inserts cwd and commands into shell and AppleScript text without correct escaping.
    Quote cwd for the shell and escape AppleScript strings separately. Reject malformed inputs and test quotes, spaces, and shell metacharacters.
  3. FIX-003
    Высокий
    Windows uses POSIX quoting for PowerShell, and the WSL fallback interpolates command text across multiple shell parsers.
    Use platform-specific argument handling and avoid nested shell interpolation. Test directory names and prompts containing quotes and metacharacters.
  4. FIX-004
    Высокий
    Background execution accepts arbitrary shell strings without a restricted execution boundary.
    Offer an argument-list execution mode without shell=True. Require confirmation for shell mode and treat prompts and filenames as data.
  5. FIX-005
    Средний
    Output, completion markers, and executable scripts use shared temporary paths without secure creation or private permissions.
    Create a private temporary directory with exclusive file creation. Use permissions 0600 for logs and 0700 for scripts, then remove artifacts.

Экспертные доказательства

Неизменяемая идентификация субъекта, метаданные сканера, отклонённые совпадения и доказательства на уровне источника.

Субъект артефакта

Коммит Marketplace
18789a6c1a8a9ebc818b76ac8686bbd38eb802a8
Хеш содержимого
6e33576dcdea5824d6a486f854a089549fe3520627d0bae4d0f41a48220d4175
Хеш дерева
a92bcb1c88fe565c8883adb9bf6c07b1bc13ca512914608e5abd34f6470511fd
Путь Skill
skills/consiliency/spawn
Хеш данных аудита
832fac0330b781f0197473c63359bca3

Метаданные анализа

Модель аудита: codex

Состояние анализа: Завершено

Область действия ограничена зафиксированными файлами, строками, методами и доказательствами. Выполнение во время работы или в песочнице не заявляется.

Проверить и экспортировать

Манифест и lockfile привязывают артефакты установки к криптографическим хешам. Это заявление о целостности не связано с оценкой безопасности.

Аттестация аудита: active