From 59337939820e8dfd8b949cecab7cdf63907037c0 Mon Sep 17 00:00:00 2001 From: "Dylan M. Taylor" Date: Wed, 21 Oct 2026 17:08:18 -0400 Subject: [PATCH] security: prevent script injection in fuzz workflow (SonarCloud S7630) The Fuzz step interpolated the user-controlled workflow_dispatch input ${{ inputs.fuzz_seconds }} directly into a run: shell command, allowing script injection by whoever triggers the workflow. Pass it via an env var (FUZZ_SECONDS) and reference "$FUZZ_SECONDS" so the value is treated as data, not shell. Resolves SonarCloud githubactions:S7630 (BLOCKER). --- .github/workflows/ci.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ba8243353d..238029a860 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -427,7 +427,9 @@ jobs: run: cargo install cargo-fuzz --locked - name: Fuzz working-directory: crates/${{ matrix.target.crate }} - run: cargo fuzz run ${{ matrix.target.name }} ${{ matrix.target.args }} -- -max_total_time=${{ inputs.fuzz_seconds }} + env: + FUZZ_SECONDS: ${{ inputs.fuzz_seconds }} + run: cargo fuzz run ${{ matrix.target.name }} ${{ matrix.target.args }} -- -max_total_time="$FUZZ_SECONDS" - name: Upload crash artifacts if: failure() uses: actions/upload-artifact@v4