이 보고서는 요청한 언어로 번역되지 않았습니다. 대신 정규 영어 보고서를 표시합니다.

버전별 보안 평가

보고서 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

확인된 발견 사항 중 가장 높은 심각도

높음

확인된 보안 발견 사항 1건에 주의가 필요합니다.

설치 컨텍스트

현재 Skill 페이지 확인

이 페이지는 보고서 증거만 요약합니다. Skill 페이지에서 표준 설치 권고를 제공합니다.

현재 Skill 페이지 열기

이 보고서는 매니페스트 또는 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개의 증거 위치에서 관찰됨

외부 명령어

Skill 외부의 명령 또는 프로그램을 호출할 수 있습니다.

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.

전문가 증거

변경 불가능한 대상 ID, 스캐너 메타데이터, 제외된 일치 항목 및 소스 수준 증거.

아티팩트 주체

Marketplace 커밋
18789a6c1a8a9ebc818b76ac8686bbd38eb802a8
콘텐츠 해시
6e33576dcdea5824d6a486f854a089549fe3520627d0bae4d0f41a48220d4175
트리 해시
a92bcb1c88fe565c8883adb9bf6c07b1bc13ca512914608e5abd34f6470511fd
Skill 경로
skills/consiliency/spawn
감사 페이로드 해시
832fac0330b781f0197473c63359bca3

분석 메타데이터

감사 모델: codex

분석 상태: 완료

범위는 기록된 파일, 줄, 메서드 및 증거로 제한됩니다. 런타임 또는 샌드박스 실행은 주장하지 않습니다.

검증 및 내보내기

매니페스트와 잠금 파일은 설치 아티팩트를 암호화 해시에 바인딩합니다. 이 무결성 주장은 보안 평가와는 별개입니다.

감사 증명: active