fix(interactive-bash-blocker): prevent false positives on partial word matches (CRITICAL) #55
+11
−11
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
The
interactive-bash-blockerhook was producing false positives by blocking commands containing common words like:This happened because
STDIN_REQUIRING_COMMANDSused.includes("su")which matched any string containing "su" as a substring.Example of False Positive
Root Cause
Solution
Changed from string array with
.includes()to regex patterns with word boundaries (\b):Pattern Details
\bsu\b(?!\s*[&|;]|\s+-c)su,su -,su rootsupport,startup,su -c "cmd"\bssh-keygen\b(?!\s+.*-[fNPqy])ssh-keygenssh-keygen -f key -N ""Testing
Files Changed
constants.tsSTDIN_REQUIRING_COMMANDS→STDIN_REQUIRING_PATTERNSwith regexindex.ts.test()instead of.includes()