Skip to content

Commit 351f2df

Browse files
hyperpolymathclaude
andcommitted
fix(security): complete eval removal for stdin-form runner
Previous commit added the PARSER_CMD array but left the two `if eval "${PARSER}" < "$f"` lines untouched — the awk patcher's regex only matched the argument form, not the stdin form. That left the script referring to a $PARSER binding that no longer existed. Replace them with "${PARSER_CMD[@]}" < "$f". Restore exec bit. Note: verification/conformance/run_conformance.sh is a symlink to ../conformance/run_conformance.sh, so patching the real path here also fixes the verification/ view automatically. Resolves 2 Critical panic-attack CommandInjection findings. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 646b500 commit 351f2df

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

conformance/run_conformance.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ TOTAL=0
2828
for f in "${SCRIPT_DIR}"/valid/*.bet; do
2929
TOTAL=$((TOTAL + 1))
3030
name="$(basename "$f")"
31-
if eval "${PARSER}" < "$f" >/dev/null 2>&1; then
31+
if "${PARSER_CMD[@]}" < "$f" >/dev/null 2>&1; then
3232
echo " PASS valid/${name}"
3333
PASS=$((PASS + 1))
3434
else
@@ -41,7 +41,7 @@ done
4141
for f in "${SCRIPT_DIR}"/invalid/*.bet; do
4242
TOTAL=$((TOTAL + 1))
4343
name="$(basename "$f")"
44-
if eval "${PARSER}" < "$f" >/dev/null 2>&1; then
44+
if "${PARSER_CMD[@]}" < "$f" >/dev/null 2>&1; then
4545
echo " FAIL invalid/${name} (expected failure, got success)"
4646
FAIL=$((FAIL + 1))
4747
else

0 commit comments

Comments
 (0)