Ce rapport n’est pas traduit dans la langue demandée. Le rapport anglais canonique est affiché à la place.

Évaluation de sécurité versionnée

ID du rapport: SA-18789A6C

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

spawn évaluation de sécurité v12

Rapport de certification de sécurité de la compétence

Historique des audits
Version du scanner 3.0.0 Modèle d’audit: codex Dernier rapport publié
Nom de la compétence
spawn
Version
v12
Mainteneur
Consiliency
Couverture
12 Fichiers analysés · 1,587 Lignes analysées
Version de la politique
skillstore-security-audit-policy-v1

Gravité la plus élevée des résultats confirmés

Élevé

1 constat de sécurité confirmé nécessite une attention.

Contexte d’installation

Consultez la page Skill actuelle

Cette page résume uniquement les éléments de preuve du rapport. La page de la Skill fournit l’avis d’installation canonique.

Ouvrir la page Skill actuelle

Ce rapport ne bloque ni n’autorise le manifeste ou le 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.

Position du rapport

Dernier rapport publié

Dernier fait référence à la séquence des rapports, et non à l’actualité de l’artefact.

Attestation d’audit

Attestation active

Une attestation publique est disponible pour ce rapport exact.

Vérification humaine

Non vérifié

Aucune vérification humaine n’est enregistrée pour ce rapport.

Couverture

12 Fichiers analysés · 1,587 Lignes analysées

24 éléments affichés pour révision

Limitations

Ce rapport ne prétend pas à une exécution en environnement d’exécution ou en bac à sable et ne prouve pas l’absence d’effets secondaires.

Chaîne de preuves

Suivez les preuves depuis la liaison à la source jusqu’au contrat d’installation. Les preuves disponibles permettent la vérification ; elles ne constituent pas une garantie de sécurité.

  1. Source

    Commit et chemin liés

  2. Artefact

    Hachages du contenu et de l’arborescence liés

  3. Audit

    Terminé

  4. Contrat d’installation

    Ouvrir le manifeste pour vérifier

    Ouvrir le manifeste

Fonctionnalités observées

Observé signifie que ce rapport a consigné des éléments de preuve à l’appui. Non enregistré ne prouve pas qu’une capacité est absente.

Contient des scripts

Peut exécuter du code inclus avec la Skill.

Non enregistré par cet audit

Accès réseau

Peut se connecter à des services externes.

Non enregistré par cet audit

Accès au système de fichiers

Peut lire ou écrire des fichiers locaux.

Observé dans 23 emplacements de preuve

Variables d’environnement

Peut lire des valeurs depuis l’environnement du processus.

Observé dans 3 emplacements de preuve

Commandes externes

Peut appeler des commandes ou des programmes en dehors de la Skill.

Observé dans 48 emplacements de preuve

Éléments d’évaluation des capacités (23)
Élevé
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.
Élevé
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.
Élevé
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.
Élevé
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.
Élevé
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.
Élevé
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.
Élevé
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.
Élevé
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.
Moyen
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.
Moyen
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.
Moyen
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.
Moyen
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.
Moyen
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.
Moyen
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.
Moyen
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.
Moyen
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.
Moyen
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.
Moyen
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.
Moyen
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.
Moyen
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.
Moyen
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.
Moyen
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.
Moyen
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.

Résultats des risques

Les problèmes de sécurité confirmés sont séparés des éléments qui nécessitent encore une vérification.

Préoccupations de sécurité confirmées (1)

RISK-001 Élevé
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.

Mesures correctives

Les correctifs suggérés par cet audit sont consignés. Leur application relève de la responsabilité du responsable de la maintenance.

  1. FIX-001
    Élevé
    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
    Élevé
    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
    Élevé
    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
    Élevé
    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
    Moyen
    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.

Preuves d’experts

Identité immuable du sujet, métadonnées du scanner, correspondances ignorées et éléments de preuve au niveau de la source.

Sujet de l’artefact

Commit Marketplace
18789a6c1a8a9ebc818b76ac8686bbd38eb802a8
Empreinte du contenu
6e33576dcdea5824d6a486f854a089549fe3520627d0bae4d0f41a48220d4175
Empreinte de l’arborescence
a92bcb1c88fe565c8883adb9bf6c07b1bc13ca512914608e5abd34f6470511fd
Chemin du Skill
skills/consiliency/spawn
Empreinte de la charge d’audit
832fac0330b781f0197473c63359bca3

Métadonnées d’analyse

Modèle d’audit: codex

État de l’analyse: Terminé

Le périmètre est limité aux fichiers, lignes, méthodes et éléments de preuve enregistrés. Aucune exécution en environnement d’exécution ou en bac à sable n’est déclarée.

Vérifier et exporter

Le manifeste et le fichier de verrouillage lient les artefacts d’installation à des hachages cryptographiques. Cette affirmation d’intégrité est distincte de l’évaluation de sécurité.

Attestation d’audit: active