Repository navigation
Description
Caution
Protected files were modified in this change.
This pull request is in request-review mode and requires explicit human scrutiny before merge.
Protected files: .github/workflows/daily-work-queue-formal-verification.md
Allow intentional protected-file changes
If this workflow is intended to modify these files, add specific filenames or folder prefixes to safe-outputs.create-pull-request.protected-files.exclude in the workflow Markdown frontmatter. For example, to allow .changeset/*, exclude the folder using .changeset/:
safe-outputs:
create-pull-request:
protected-files:
policy: request-review
exclude:
- .changeset/Keep your existing policy and exclusions. Folder exclusions use path prefixes, not glob patterns, and allow all files beneath that folder, including subfolders. Other protected files still require review. If allowed-files is configured, these paths must also match it. Run gh aw compile after updating the workflow.
Warning
Changes to workflow YAML files were excluded from this changeset to avoid GitHub token workflow-write restrictions. Run gh aw compile again on this branch and commit the regenerated .lock.yml files using credentials permitted to update GitHub Actions workflows before merging.
🚨 Runner-Guard Security Finding
Rule: RGS-018 — Suspicious Payload Execution Pattern
Severity: High
File: .github/workflows/daily-work-queue-formal-verification.lock.yml (source: .github/workflows/daily-work-queue-formal-verification.md)
Line: 2480 ("Download pinned TLC" step)
Evidence
The 2026-11-05 scan flagged the Download pinned TLC step. The step downloads the version-pinned tla2tools.jar (v1.7.4) to disk with curl --output and runs sha256sum --check against a pinned digest. Nothing is piped to a shell and nothing is eval-decoded, so the finding is a false positive. The same finding was assessed as a false positive in the 2026-11-04 scan.
Change
Adds # runner-guard:ignore RGS-018 -- <reason> in the step script, following the existing convention in credentials-check.yml, daily-byok-ollama-test.md and shared/tla-plus.md. The inline-ignore filter (pkg/cli/runner_guard_inline_ignore.go) matches this marker within its look-ahead window of the reported line. The download and checksum verification are unchanged.
Validation
- Recompiled the edited workflow with
gh aw compile(viamake recompile). The lock file regenerated; the diff is the new comment plus the frontmatter/admission hash refresh. - The full
make recompilerun exited non-zero on a package-availability validation failure in another workflow, unrelated to this change. I reverted its unrelated rewrite ofagentic_commands.yml. - runner-guard is not installed in this sandbox, so I did not re-run the scanner. The next scheduled scan should confirm the finding clears.
- No Go code changed, so I ran neither
make fmtnormake test-unit.
Not addressed
Two other RGS-018 findings (smoke-test-tools and super-linter, the "Execute Pi CLI" step) come from compiler-generated code in pkg/workflow/pi_engine.go. Other Pi workflows with the same step are not flagged, so I could not identify the trigger without the scanner and left them out rather than add an unverified suppression.
Maintainer note: the lock file may be stripped on delivery; run gh aw compile and commit the regenerated lock before merging.
Detected by runner-guard v2.6.0 — CI/CD source-to-sink vulnerability scanner
Workflow run: https://github.com/github/gh-aw/actions/runs/41969157669
🤖 Generated with [Claude Code]((claude.com/redacted)
Note
This was originally intended as a pull request, but the git push operation failed.
Original error: ERR_SYSTEM: git push failed (exit code 1): To https://github.com/github/gh-aw.git ! [remote rejected] static-analysis/rgs-018-tlc-ignore-2da5465e4dfa13d3 -> static-analysis/rgs-018-tlc-ignore-2da5465e4dfa13d3 (refusing to allow a GitHub App to create or update workflow `.github/workflows/daily-work-queue-formal-verification.md` without `workflows` permission) error: failed to push some refs to 'https://github.com/github/gh-aw.git'
Workflow Run: View run details and download bundle artifact
The bundle file is available in the agent artifact in the workflow run linked above.
Create the pull request manually
# Download the artifact from the workflow run
gh run download '41969157669' -n agent -D '/tmp/agent-41969157669'
# Resolve the bundle source ref, fetch it into a temporary ref, then create the local branch
bundle_path='/tmp/agent-41969157669/aw-github-gh-aw-static-analysis-rgs-018-tlc-ignore.bundle'
temp_ref='refs/bundles/create-pr-static-analysis-rgs-018-tlc-ignore-2da5465e4dfa13d3-b94439da'
target_ref='refs/heads/static-analysis/rgs-018-tlc-ignore-2da5465e4dfa13d3'
bundle_source_ref=$(git bundle list-heads "$bundle_path" | awk '$2 ~ /^refs\/heads\// { print $2 }')
if [ -z "$bundle_source_ref" ]; then
bundle_source_ref=$(git bundle list-heads "$bundle_path" | awk '$2 == "HEAD" { print $2 }')
fi
if [ "$(printf '%s\n' "$bundle_source_ref" | sed '/^$/d' | wc -l | tr -d ' ')" != "1" ]; then
echo "Expected exactly one bundle source ref, found: $bundle_source_ref" >&2
exit 1
fi
git fetch "$bundle_path" "${bundle_source_ref}:${temp_ref}"
git update-ref "$target_ref" "$temp_ref"
git checkout 'static-analysis/rgs-018-tlc-ignore-2da5465e4dfa13d3'
# Ensure the working tree matches the updated branch
git reset --hard
# Remove the temporary bundle ref
git update-ref -d "$temp_ref"
# Push the branch to the target remote
git push 'origin' 'static-analysis/rgs-018-tlc-ignore-2da5465e4dfa13d3'
# Create the pull request
gh pr create --title '[static-analysis] RGS-018: Suspicious Payload Execution Pattern in daily-work-queue-formal-verification.lock.yml' --base 'main' --head 'static-analysis/rgs-018-tlc-ignore-2da5465e4dfa13d3' --repo 'github/gh-aw'Generated by 📊 Static Analysis Report · claude · routed: sonnet55 high · ~100 AIC · ⌖ ~2 AIC · ⊞ 9.6K · ◷
- expires on Nov 11, 2026, 9:34 PM UTC-08:00
Activity
github-actions commentedon Nov 6, 2026
🍪 Issue Monster selected this for Copilot
I've identified this issue as a good candidate for automated resolution and requested assignment to the Copilot coding agent.
If assignment succeeds, Copilot will analyze the issue and create a pull request with the fix.
Om nom nom! 🍪