Skip to content

ci: add Bright Agent fuzzing-mode workflow - #1114

Merged
alexkutsan merged 4 commits into
stablefrom
add-star-fuzzing-workflow
Oct 26, 2026
Merged

alexkutsan merged 4 commits into
stablefrom
add-star-fuzzing-workflow

Conversation

@alexkutsan

Copy link
Copy Markdown
Contributor

Summary

Adds a third STAR / Bright Agent CI workflow — .github/workflows/bright-agent-fuzzing.yml — running STAR in RUN_MODE=fuzzing.

Fuzzing mode is a separate, self-contained STAR mode: a coverage-guided, structure-aware evolutionary fuzzer that targets the bugs the DAST modes can't see — crashes, hangs, native memory-safety faults, unrecoverable managed-runtime faults, and resource-amplification DoS. It deliberately ships no SQLi/XSS/SSRF oracle (those stay with the DAST workflow). It does not start the app, open a Repeater, run a cloud scan, or detect auth; it resolves a standalone fuzzer binary, has an LLM write per-function Docker harnesses, fuzzes them, triages the faults, and optionally fixes + re-validates — all local except a BRIGHT_TOKEN license check.

This complements the existing workflows:

  • bright-agent.yml — DAST scan + fix loop (RUN_MODE=full)
  • bright-agent-sast-validation.yml — CodeQL SAST → STAR validation (RUN_MODE=validation)

Runs alongside the DAST workflow as an orthogonal robustness pass, not instead of it.

Details

Modeled on the two existing STAR workflows for consistency:

  • Triggers: /bright-fuzz comment (OWNER/MEMBER/COLLABORATOR, non-fork) on a PR, or manual workflow_dispatch — same fork-refusal guard and gating.
  • Mode: RUN_MODE=fuzzing with the full FUZZER_* config reference documented inline (commented at defaults: FUZZER_MAX_TARGETS=12, FUZZER_MAX_PER_FILE=3, FUZZER_TIMEOUT=5, FUZZER_DEPTH=1, FUZZER_FIX on).
  • Drops the DAST-only bits that don't apply (no DIFF_BASE, no SARIF_PATH); fuzzing fuzzes the whole repo and needs Docker for harness builds.
  • Same secrets/vars (BRIGHT_TOKEN, INFERENCE_TOKEN, INFERENCE_URL), artifact uploads namespaced bright-agent-fuzzing-*.

Notes

  • Like the other comment-triggered workflows, this must be merged to the default branch (stable) before /bright-fuzz replies will fire.

Testing

  • YAML validated; RUN_MODE: fuzzing confirmed on the run step.

Add .github/workflows/bright-agent-fuzzing.yml running STAR in
RUN_MODE=fuzzing — a coverage-guided, structure-aware fuzzing pass that
targets crashes, hangs, memory-safety and resource-DoS bugs DAST can't
see. Modeled on the existing bright-agent.yml / sast-validation workflows:
same fork-refusal guard and triggers (/bright-fuzz comment or manual
dispatch), namespaced artifact uploads, and an inline FUZZER_* config
reference. Runs alongside the DAST workflow, not instead of it.
Drop the issue_comment (/bright-fuzz) trigger and its comment-steering
machinery — the fork-refusal step, BRIGHT_STEERING_* env vars, and the
comment-conditional checkout/concurrency expressions. The workflow now
runs only via workflow_dispatch on a chosen branch.
Per review: the repo moved NeuraLegion -> BrightSec; point the binary
download at the canonical BrightSec release URL.
@alexkutsan

Copy link
Copy Markdown
Contributor Author

Addressed review feedback:

  • NeuraLegion → BrightSec download URL (@ilya-olchikov): fixed in 3f63136.
  • CodeQL untrusted-checkout / TOCTOU alerts (258, 259): these were raised against the issue_comment (/bright-fuzz) trigger in the original commit. That trigger — and all of its comment-steering machinery and PR-head checkout — was removed in 0b37571; the workflow now runs on workflow_dispatch only, so there is no untrusted-code path in a privileged context. The alerts should clear on the next code-scanning run.

@alexkutsan
alexkutsan merged commit 69bb9c5 into stable Oct 26, 2026
5 checks passed
@alexkutsan
alexkutsan deleted the add-star-fuzzing-workflow branch October 26, 2026 08:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants