Tous les skills

security-review (everything-claude-code)

Vérifie authentification, entrées utilisateur, secrets, points d'API et paiements à l'aide d'une checklist sécurité.

ECC security-review : guère meilleur que Codex seul pour trouver des vulnérabilités plantées, pour environ les mêmes tokens

Selon les casSûr

Codex CLI · gpt-6-astra

24.9 / 30

Gain par rapport à sans skill : -0.16 · Selon les cas · 18 exécutions

Selon les cas : le gain -0.16 est inférieur à +1.0. Pour être recommandé, il faut un total de 22/30, une qualité de sortie de 3.5 et un gain de +1.0.

SOTA

Réussi

Testé avec Codex.

Couvre Codex, Claude Code

Codex CLI 0.166 (palier SOTA) : 18 exécutions notées. Une réussite ici couvre aussi Claude Code selon notre règle de palier ; elle ne dit rien du second palier.

Scores

Chaque dimension va de 0 à 5 et les six forment le total sur 30. 5 est la meilleure note dans chaque dimension. Coût 5 signifie bon marché et rapide. Installation 5 signifie facile.

Fiabilité du déclenchement
5.0
Gain par rapport à sans skill
1.8
Qualité de sortie
4.1
Coût en tokens et en temps
5.0
Installation et portabilité
4.0
Sécurité
5.0

Revue de sécurité

Sûr

Scan statique : 5 CRITIQUE / 6 ÉLEVÉ / 4 MOYEN. Revue manuelle : sûr à exécuter dans un bac à sable sans réseau (résultats du scanner expliqués). Un scan propre ne prouve pas qu'un skill est sûr.

Installer

npx skills@latest add affaan-m/everything-claude-code --skill security-review

Source

Commit épinglé: b38be6a7f6350964d59328b52f0624e1d1d552d1

Testé: 2026-11-02

Ce que nous avons testé

  • Revoir un petit module de service — Faites une revue de sécurité de orders_service.py avant que je fusionne. Listez les problèmes trouvés, du plus grave au moins grave. Ne modifiez aucun fichier.
  • Revoir un helper d'authentification — Faites une revue de sécurité de auth_handlers.py : je viens de l'écrire pour notre flux de connexion. Listez les problèmes, du plus grave au moins grave. Ne modifiez aucun fichier.
  • Revoir des endpoints d'upload — Faites une revue de sécurité de upload_api.py. Listez les vulnérabilités, du plus grave au moins grave. Ne modifiez aucun fichier.

Points forts

  • Le skill a été détecté sans être nommé : son fichier a été lu dans 6/6 exécutions avec skill.
  • Aucune surcharge de tokens : 1.03 fois le volume de tokens sans skill.

Points faibles

  • Aucun gain mesurable par rapport à sans skill (-0.16, dans le bruit).
  • Un prompt d'une phrase obtient 4.29, contre 4.06 avec le skill (-0.23).
  • Réserve de test : la tâche t1 contient trois éléments plantés qui ne sont pas des problèmes de sécurité, ce qui plafonne le rappel maximal autour de 3.1.
  • n=2 par tâche et par bras ; les écarts inférieurs à environ 1 point sont du bruit.

Avis

Codex CLI 0.166 (gpt-6-astra, low reasoning) sur un Mac de test, un projet temporaire neuf et des HOME/TMPDIR/caches temporaires à chaque exécution, skill installé (traitement) ou absent (contrôle) ou absent avec l'exigence centrale du skill compressée en une phrase ajoutée au prompt (groupe « prompt d'une phrase »), 2 exécutions par groupe et par tâche, réseau coupé, écritures dans /tmp bloquées. Les prompts ne mentionnent jamais le skill (sauf la formulation indiquée ci-dessous). Trois petits fichiers avec 8 problèmes plantés chacun (un module de service, un helper d'authentification, des endpoints d'upload) et une demande en lecture seule « liste les problèmes, du plus grave au moins grave ». Le service de commandes inclut trois problèmes qui ne sont pas des failles de sécurité (une erreur de borne off-by-one, une fuite de ressource, des montants en float), qu'une revue de sécurité est censée ignorer ; sur cette tâche, un relecteur sécurité peut donc trouver au plus 5 problèmes sur 8 et le score plafonne autour de 3.1.

Comparaison à trois bras

BrasScore moyen (0-5)Tokens par exécution
Sans le skill4.2260k
Prompt d'une phrase4.2944k
Avec le skill4.0662k

Mesuré avec Codex CLI sur 18 exécutions, noté par des contrôles basés sur des règles, sans juge LLM. Total 24.9 / 30, verdict Selon les cas.

Divulgation : la tâche t1 contient trois éléments plantés qui ne sont pas des problèmes de sécurité, ce qui plafonne le rappel maximal autour de 3.1.

Verdict : situationnel (24.9 / 30). Source : affaan-m/everything-claude-code, skills/security-review, épinglé au commit b38be6a. Installation : npx skills@latest add affaan-m/everything-claude-code --skill security-review. Licence : MIT (LICENSE du dépôt).

Ce que c'est

La compétence security-review de affaan-m/everything-claude-code (ECC) : une checklist de sécurité pour les moments où vous ajoutez de l'authentification, traitez des entrées utilisateur, manipulez des secrets, créez des endpoints d'API ou implémentez des paiements. Environ 1,800 mots de Markdown dans SKILL.md (gestion des secrets, validation des entrées, injection SQL, authentification et autorisation, XSS, CSRF, limitation de débit, exposition de données sensibles, sécurité des dépendances, avec de courts exemples de code bon/mauvais et une checklist de pré-déploiement) et un fichier Markdown supplémentaire sur la sécurité des infrastructures cloud. Aucun script.

Comment nous avons testé

Codex CLI 0.166 (gpt-6-astra, raisonnement faible) sur une machine de test Mac, un projet temporaire neuf et des HOME/TMPDIR/caches temporaires à chaque exécution, compétence installée (avec compétence), absente (témoin) ou absente avec l'exigence essentielle de la compétence condensée en une phrase ajoutée au prompt (groupe prompt d'une phrase), 2 exécutions par groupe et par tâche, réseau désactivé, écritures dans /tmp bloquées. Les prompts ne mentionnent jamais la compétence (sauf la formulation indiquée ci-dessous).

Trois petits fichiers avec 8 problèmes implantés chacun (un module de service, un helper d'authentification, des endpoints d'upload) et une demande en lecture seule « liste les problèmes, du plus grave au moins grave ». Le service de commandes contient trois problèmes qui ne sont pas des failles de sécurité (une erreur de borne off-by-one, une fuite de ressource, des montants en float), qu'une revue de sécurité est censée ignorer : sur cette tâche, un relecteur sécurité peut donc trouver au plus 5 problèmes sur 8 et le score plafonne autour de 3.1.

  1. Revoir un petit module de service — Fais une revue de sécurité de orders_service.py avant que je le fusionne. Liste les problèmes trouvés, du plus grave au moins grave. Ne modifie aucun fichier.
  2. Revoir un helper d'authentification — Fais une revue de sécurité de auth_handlers.py : je viens de l'écrire pour notre flux de connexion. Liste les problèmes, du plus grave au moins grave. Ne modifie aucun fichier.
  3. Revoir des endpoints d'upload — Fais une revue de sécurité de upload_api.py. Liste les vulnérabilités, du plus grave au moins grave. Ne modifie aucun fichier.

Le score est calculé de manière programmatique (tests masqués / détection des problèmes implantés / vérifications de contraintes / rendu + OCR le cas échéant), avec une note de 0–5 par exécution. Aucun juge LLM n'a attribué de score.

Résultats

Le prompt d'une phrase fourni au troisième groupe : « Vérifie le code par rapport à une checklist de sécurité : secrets codés en dur, entrées non validées, injection SQL/commande, authentification et autorisation défaillantes, uploads de fichiers non sécurisés, données sensibles dans les erreurs ou les logs, et limitation de débit absente, en citant la ligne exacte pour chaque constat. »

TâcheScore témoinPrompt d'une phraseAvec compétenceTokens témoinTokens du prompt d'une phraseTokens avec compétenceCompétence lue
t1-orders2.893.122.4260k44k72k2/2
t2-auth4.775.04.7759k44k61k2/2
t3-upload5.04.775.059k44k51k2/2

Score moyen : 4.22 sans contre 4.06 avec la compétence (écart -0.16). Tokens par exécution : 60k contre 62k (1.03x) ; temps 38s contre 44s. Groupe prompt d'une phrase : 4.29 (gain de la compétence par rapport au prompt d'une phrase : -0.23 ; gain propre du prompt d'une phrase par rapport à l'absence de compétence : +0.08) ; tokens du prompt d'une phrase : 44k par exécution, la compétence coûte donc 1.40x le prompt d'une phrase.

Ce qui s'est passé

  • Aucun gain. Score moyen 4.22 sans la compétence, 4.29 avec une checklist de sécurité en une phrase, 4.06 avec la compétence. Détection des problèmes implantés : 4.8 sur 8 par exécution sans, 4.9 avec le prompt d'une phrase, 4.5 avec la compétence.
  • La compétence a fait un peu moins bien sur la tâche du service de commandes : 2.4 en moyenne, contre 2.9 pour le témoin et 3.1 pour le prompt d'une phrase (2 à 3 problèmes implantés trouvés par exécution, contre 3 à 4 pour les autres). C'est dans le bruit à n=2.
  • Sur le helper d'authentification et les endpoints d'upload, chaque groupe a trouvé 7 ou 8 problèmes implantés sur 8 ; ce sont des failles de manuel classiques (md5, path traversal, pickle, injection de commande) que Codex seul connaît déjà.
  • La compétence est lue dans 6/6 exécutions. Elle coûte 62k tokens par exécution contre 60k (1.03x) et 44k avec le prompt d'une phrase (1.41x) : les exécutions du prompt d'une phrase étaient les moins chères, car elles lisaient moins avant de répondre.
  • Une réserve sur le score : les éléments sont détectés par expression régulière, un constat formulé différemment peut donc être compté comme manqué.

Scores par dimension

DimensionScorePourquoi
1_output_quality4.06

Score moyen de 4.06/5 avec la compétence (contrôles programmatiques, voir le tableau par tâche).

2_lift_vs_no_skill1.84

-0.16 point par rapport à 4.22 sans la compétence (n=2 par tâche ; moins d'environ 1 point relève du bruit).

3_trigger5.0Fichier de compétence lu dans 6/6 exécutions avec compétence.
4_instructions_portability4

Checklist en Markdown simple, avec des exemples surtout JS/TS et orientés Supabase ; ne s'applique aux autres stacks que par analogie.

5_efficiency51.03x de tokens (62k contre 60k par exécution) et 1.17x de temps (44s contre 38s).
6_safety_hygiene5

Markdown uniquement ; les détections du scanner sont des exemples de code (process.env, fetch, template strings) dans la checklist.

Limites de ce test

  • Trois petites revues d'un seul fichier avec des failles de manuel ; des problèmes plus subtils (autorisation liée à la logique métier, conditions de course, chaîne d'approvisionnement) n'ont pas été implantés.
  • La checklist cloud/infrastructure et la liste de pré-déploiement de la compétence n'ont pas été exercées : aucun fichier d'infrastructure dans le test.
  • Détection uniquement ; les faux positifs et la qualité des conseils de correction n'ont pas été notés.
  • n = 2 par groupe et par tâche : les écarts inférieurs à environ 1 point relèvent du bruit.
  • Le score basé sur des règles mesure ce que les contrôles peuvent voir ; il ne peut juger du goût ni du caractère optimal d'un résultat.

Sécurité

Voir security.md. Analyse : 5 CRITICAL / 6 HIGH / 4 MEDIUM. Verdict : sûr à exécuter (sandbox sans réseau). Une analyse propre ne prouve pas qu'une compétence est sûre.

En bref

Une checklist raisonnable, mais Codex seul trouve déjà les mêmes vulnérabilités de manuel, et une phrase listant les mêmes catégories a fait aussi bien pour environ 70 % des tokens. La compétence n'apporte rien de mesurable sur ce type de revue de code ; elle peut servir de prompt à une équipe qui veut une checklist cohérente.

Transcription

Journal d'exécution : security-review (Codex CLI, network off, per-run temp HOME/TMPDIR, one row per graded run.)
Colonnes : tâche, groupe-exécution, score (0-5), tokens, secondes, vérifications réussies, fichiers de la skill ouverts par l'agent.

t1-orders control-1: score 3.12, tokens 60493, s 36.1, vérifications 1/2, rien ouvert
t1-orders control-2: score 2.66, tokens 60831, s 41.9, vérifications 1/2, rien ouvert
t1-orders oneliner-1: score 3.12, tokens 44382, s 32.3, vérifications 1/2, rien ouvert
t1-orders oneliner-2: score 3.12, tokens 44393, s 35.0, vérifications 1/2, rien ouvert
t1-orders treatment-1: score 2.19, tokens 73335, s 69.3, vérifications 1/2, ouvert security-review
t1-orders treatment-2: score 2.66, tokens 72383, s 54.7, vérifications 1/2, ouvert security-review
t2-auth control-1: score 4.53, tokens 59839, s 37.6, vérifications 2/2, rien ouvert
t2-auth control-2: score 5.0, tokens 59894, s 37.4, vérifications 2/2, rien ouvert
t2-auth oneliner-1: score 5.0, tokens 44259, s 36.9, vérifications 2/2, rien ouvert

18 exécutions, 3 artefacts

Exemple de sortie

SOTA · With the skill: final message (t1-orders, run 1, Codex)

Found six security issues, ordered by severity. Exposure depends on how callers expose these functions; no caller code was provided. 1. **High — SQL injection** — [orders_service.py:9](/var/folders/ln/t0z8fmzd0kz08d3fkz6tskn40000gn/T/asv-security-r-cagonwka/work/orders_service.py:9) `order_id` is interpolated directly into SQL. An input such as `0 OR 1=1` bypasses the intended lookup condition; crafted `UNION` queries could extract other database data. Bind `order_id` as a parameter. 2. **High — Missing cancellation authorization** — [orders_service.py:13](/var/folders/ln/t0z8fmzd0kz08d3fkz6tskn40000gn/T/asv-security-r-cagonwka/work/orders_service.py:13) `current_user` is never used. Anyone able to invoke this function can cancel another user’s order by supplying its ID. Enforce ownership or an authorized administrative role before updating it. 3. **High — Arbitrary file overwrite through exports** — [orders_service.py:39](/var/folders/ln/t0z8fmzd0kz08d3fkz6tskn40000gn/T/asv-security-r-cagonwka/work/orders_service.py:39) `open(path, "w")` immediately truncates any accessible target and follows symlinks. If callers control `path`, they can overwrite files with the service’s permissions—even before the query succeeds. Use server-generated filenames within a controlled export directory and prevent traversal and symlink escapes. 4. **High — Cross-user order export** — [orders_service.py:40](/var/folders/ln/t0z8fmzd0kz08d3fkz6tskn40000gn/T/asv-security-r-cagonwka/work/orders_service.py:40) The export accepts any `user_id` without checking the requester’s identity or permissions. A caller can export another customer’s records. Derive the user ID from authenticated context and explicitly authorize administrative exports. 5. **High if valid — Embedded payment credential and credential logging** — [orders_service.py:4](/var/folders/ln/t0z8fmzd0kz08d3fkz6tskn40000gn/T/asv-security-r-cagonwka/work/orders_service.py:4), [orders_service.py:48](/var/folders/ln/t0z8fmzd0kz08d3fkz6tskn40000gn/T/asv-security-r-cagonwka/work/orders_service.py:48) A live-looking API key is embedded in source and would be printed after successful gateway calls. Its validity is unverified; the current gateway stub always raises. If real, rotate it, load its replacement from secret storage, and remove credential logging. 6. **Medium — Untrusted payment values lack validation** — [orders_service.py:31](/var/folders/ln/t0z8fmzd0kz08d3fkz6tskn40000gn/T/asv-security-r-cagonwka/work/orders_service.py:31), [orders_service.py:45](/var/folders/ln/t0z8fmzd0kz08d3fkz6tskn40000gn/T/asv-security-r-cagonwka/work/orders_service.py:45) Totals trust supplied prices and quantities, while `charge` accepts an amount without matching it to the stored order. If client-controlled, these permit manipulated totals or underpayment. Retrieve authoritative prices, validate quantities and amounts, and compute the charge server-side. No files were changed. This was a static review; the sandbox blocked the attempted in-memory verification.

Voir Pro