fix(hooks): fail closed on crash in the remaining blocking hook rows

Fermée Adaptée aux débutants
#8,799 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
72/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
github, node.js, shell
Domaine
devtools, security

Piste de recherche

Commence par lire les lignes de hooks pour worktree-add-containment, pr-body-linkage, pr-linkage-mcp, test-weaken et run-python-hook, ainsi que l’en-tête de exec-bash.mjs et l’issue #8569. Mets à jour chaque ligne bloquante indiquée afin que les plantages, l’absence de bash, les échecs de démarrage de node, les expirations de délai et les plantages de Git Bash bloquent l’appel ; l’issue laisse le mécanisme à l’examen de durcissement différé. Le travail est terminé lorsque chaque mode d’échec indiqué empêche l’appel de l’outil.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

priority: low status: confirmed

Refs: #8569, #8282

Outcome

Every blocking hook row whose crash should deny the tool call fails closed: a bash crash, missing bash, a node start failure, the 60 s timeout, or a Git Bash crash read as exit 0 blocks the call instead of allowing it.

Current behavior

#8569 (PR #8674) adds an opt-in --fail-closed flag to exec-bash.mjs, passed only by the guardrails guard rows. These blocking rows in other plugins do not pass it, so a crash in any of the cases above allows the call (GitHub Security & Cost review of #8674 at e8309efd4b, 2026-10-21):

  • source-control: worktree-add-containment, pr-body-linkage, pr-linkage-mcp
  • testing: test-weaken
  • disk-hygiene: run-python-hook

Desired behavior

Each row above fails closed on every failure mode listed in Outcome. Claude Code's hook onFailure: "block" setting (v2.1.295+, https://code.claude.com/docs/en/hooks) covers all of them, including the cases --fail-closed cannot see (missing bash, node start failure, timeout).

Out of scope

  • Non-blocking rows (formatters, linters), whose fail-open is deliberate (exec-bash.mjs header).
  • The guardrails rows, covered by #8569.

Notes

Severity low; queued for the #8282 deferred-hardening review (2026-11-18) unless the owner wants it sooner. Which mechanism (onFailure: "block" per row vs --fail-closed) is a design choice for that review.

Langage dominant
Shell
Étoiles
22
Forks
2
Merge moyen
1 h 18 min
PR mergées (30 j)
942

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de melodic-software/claude-code-plugins

Toutes les issues de melodic-software/claude-code-plugins

Issues similaires

Plus d'issues Shell/Bash

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.