Repository navigation
feat: deterministic-verification + parallel-swarm architecture - #170
Merged
Merged
Conversation
Separate discovery from validation so no finding reaches a report without a
deterministic, non-AI oracle confirming it against the live target.
- verifiers: tools/verifiers/ library (redirect, sensitive-file, auth-bypass,
sqli error+timing, idor two-identity, oob ssrf/xxe/rce, dom-xss) each
returning VerifyResult(confirmed, trace); REGISTRY + verify_finding dispatcher
- validator gate: tools/validate_core.py non-tty verify_finding_programmatic
encoding kill-signal / chain-required / Q8-identity tables as code;
validate.py --auto wrapper
- report gate: brain.write_report + hunt.py refuse any finding that is not a
verified validated_finding with linked evidence; agent._classify_obs emits
candidate leads, never direct findings
- swarm: fcntl-locked + adjudicated lead_board; tools/swarm.py coordinator fans
leads out to ephemeral per-lead workers (ThreadPoolExecutor, per-worker
session+scope); hunt.py --swarm flag
- llm skills: skills/llm-redteam + skills/agentic-app-audit; expanded
llm_redteam corpus (multi-turn, cross-lingual, cipher, Sneaky Bits
token-smuggling); unified ASI01-ASI10 canonical mapping; commands/llm-app-audit
- benchmark: tests/benchmark/ FLAG{} canary target + precision/recall/FP
scorer; tests/test_benchmark.py smoke test (recall=1.0, fp_rate=0.0)
Resolve conflicts from the bughunter/ package restructure: - Relocate new verifier/swarm/validate_core/evidence/redaction modules under bughunter/ - hunt.py: keep main's shell=False argv (command-injection fix) and pass SCOPE_ENFORCED via the environment instead of the shell string - adapters.py: keep both scope-filter helpers and path-escape guards - README: take main (supersedes the older sponsor block; keeps #169 contributors) - Union .gitignore; keep plugin.json version 6.0.1; keep unified ASI table - Fix test paths to bughunter/ layout and assert SCOPE_ENFORCED via env Co-authored-by: Cursor <[email protected]>
shuvonsec
added a commit
that referenced
this pull request
Oct 8, 2026
Separate discovery from validation so no finding reaches a report without a
deterministic, non-AI oracle confirming it against the live target.
- verifiers: tools/verifiers/ library (redirect, sensitive-file, auth-bypass,
sqli error+timing, idor two-identity, oob ssrf/xxe/rce, dom-xss) each
returning VerifyResult(confirmed, trace); REGISTRY + verify_finding dispatcher
- validator gate: tools/validate_core.py non-tty verify_finding_programmatic
encoding kill-signal / chain-required / Q8-identity tables as code;
validate.py --auto wrapper
- report gate: brain.write_report + hunt.py refuse any finding that is not a
verified validated_finding with linked evidence; agent._classify_obs emits
candidate leads, never direct findings
- swarm: fcntl-locked + adjudicated lead_board; tools/swarm.py coordinator fans
leads out to ephemeral per-lead workers (ThreadPoolExecutor, per-worker
session+scope); hunt.py --swarm flag
- llm skills: skills/llm-redteam + skills/agentic-app-audit; expanded
llm_redteam corpus (multi-turn, cross-lingual, cipher, Sneaky Bits
token-smuggling); unified ASI01-ASI10 canonical mapping; commands/llm-app-audit
- benchmark: tests/benchmark/ FLAG{} canary target + precision/recall/FP
scorer; tests/test_benchmark.py smoke test (recall=1.0, fp_rate=0.0)
Co-authored-by: Cursor <[email protected]>
shuvonsec
added a commit
that referenced
this pull request
Oct 8, 2026
Separate discovery from validation so no finding reaches a report without a
deterministic, non-AI oracle confirming it against the live target.
- verifiers: tools/verifiers/ library (redirect, sensitive-file, auth-bypass,
sqli error+timing, idor two-identity, oob ssrf/xxe/rce, dom-xss) each
returning VerifyResult(confirmed, trace); REGISTRY + verify_finding dispatcher
- validator gate: tools/validate_core.py non-tty verify_finding_programmatic
encoding kill-signal / chain-required / Q8-identity tables as code;
validate.py --auto wrapper
- report gate: brain.write_report + hunt.py refuse any finding that is not a
verified validated_finding with linked evidence; agent._classify_obs emits
candidate leads, never direct findings
- swarm: fcntl-locked + adjudicated lead_board; tools/swarm.py coordinator fans
leads out to ephemeral per-lead workers (ThreadPoolExecutor, per-worker
session+scope); hunt.py --swarm flag
- llm skills: skills/llm-redteam + skills/agentic-app-audit; expanded
llm_redteam corpus (multi-turn, cross-lingual, cipher, Sneaky Bits
token-smuggling); unified ASI01-ASI10 canonical mapping; commands/llm-app-audit
- benchmark: tests/benchmark/ FLAG{} canary target + precision/recall/FP
scorer; tests/test_benchmark.py smoke test (recall=1.0, fp_rate=0.0)
Co-authored-by: Cursor <[email protected]>
letztek
added a commit
to letztek/claude-bug-bounty
that referenced
this pull request
Oct 22, 2026
Upstream force-pushed again. A `backup/pre-ca-scrub-main` branch and the commits "Remove token address" / "Remove unaffiliated token reference from README" show they rewrote history to scrub the crypto contract address — the same content this fork removed locally in c179bae. The rewrite collapsed git's computed merge-base to an ancient 2026-04-05 commit, which made 57 files look like add/add conflicts. Synced instead against aafa48f (the previous upstream tip, still an ancestor here) as a virtual base: 107 files, +9858/-611, and only 8 real conflicts. New upstream work absorbed: - deterministic-verification + parallel-swarm architecture (awarexone#170) - /verify report gate, prove-or-suppress (awarexone#156) - /dashboard local web Hunt Dashboard (awarexone#143) - command-injection fix for awarexone#153 + SkillsLLM scan findings (awarexone#165) - Groq fix, target normalization, security/portability hardening (awarexone#158) - Requesty LLM provider (awarexone#159) - install split-repo layout fix (awarexone#161), hackerone-mcp GraphQL fix (awarexone#164), docs path fix (awarexone#163), _dep_hint fallback fix (awarexone#162) - upstream dropped its sponsorship / Buy-Me-a-Coffee / contributors-wall / ADOPTERS blocks and fully scrubbed crypto from the README Conflicts resolved (2 after rebasing on the virtual base): - .gitignore: union — kept this fork's personal-hunt and packaging blocks, added upstream's .ctl/, desktop engine bundle, and memory/leads/. - README.md: took upstream's restructure, which deletes the marketing and sponsorship block. Verified the merge did not re-introduce any crypto address and did not undo c179bae: 0 CA/BTC/SOL references, 0 Awarexone repo URLs, hero still on the local assets/cli-banner.png. Also rewrote the README contact footer, which upstream's new content restored to AwareXone addresses, to credit upstream as the original project and point fork matters at this repo's issues. Preserved: asset-attribution skill + /attribute, recon_to_json.py and its RECON_* schemas, vuln_scanner.sh WAF-evasion, bypass_403.sh soft-block analyzer, and this fork's structurally sound web2-vuln-classes/SKILL.md (274 balanced fences — upstream's copy is still corrupted at 271). Co-Authored-By: Claude Opus 5 <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
Reworks the hunter around the XBOW architecture thesis: discovery and validation are separate systems, and no finding reaches a report without a deterministic, non-AI oracle confirming it against the live target. Benchmark on a canary target shows precision=1.0, recall=1.0, fp_rate=0.0, 0 unverified findings reaching report.
Pillars
tools/verifiers/) — one oracle per bug class (redirect, sensitive-file, auth-bypass, sqli error+timing, idor two-identity, oob ssrf/xxe/rce, dom-xss), each returningVerifyResult(confirmed, trace). No LLM, no confidence scores.REGISTRY+verify_findingdispatcher + CLI.tools/validate_core.py) — non-ttyverify_finding_programmaticencoding the kill-signal / chain-required / Q8-identity tables as code.brain.write_reportandhunt.pyrefuse any finding that isn't a verifiedvalidated_findingwith linked evidence;agent._classify_obsnow emits candidate leads, never direct findings.tools/swarm.py) —fcntl-locked + adjudicated lead board; coordinator fans leads out to ephemeral per-lead workers (ThreadPoolExecutor) with per-worker session + scope. Gated behindhunt.py --swarm(default off).skills/llm-redteam/(canonical ASI01–ASI10 source of truth) andskills/agentic-app-audit/;llm_redteamcorpus expanded (multi-turn, cross-lingual, cipher, Sneaky Bits token-smuggling); unified the previously-conflicting ASI tables;commands/llm-app-audit.md.tests/benchmark/) —FLAG{}canary vuln target for recall, hardened demo for precision, precision/recall/FP scorer, andtests/test_benchmark.pysmoke test.Testing
885 passedacross the full suite.tests/test_benchmark.py: recall=1.0, fp_rate=0.0, precision=1.0 (TP=6, FN=0, FP=0, TN=5).