@vigolium/piolium 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +117 -0
- package/agents/access-auditor.md +300 -0
- package/agents/assumption-breaker.md +154 -0
- package/agents/attack-designer.md +116 -0
- package/agents/code-scanner.md +139 -0
- package/agents/concurrency-auditor.md +238 -0
- package/agents/confirm-writer.md +257 -0
- package/agents/context-reviewer.md +274 -0
- package/agents/cross-verifier.md +165 -0
- package/agents/cve-scout.md +381 -0
- package/agents/env-builder.md +282 -0
- package/agents/env-profiler.md +205 -0
- package/agents/evidence-collector.md +140 -0
- package/agents/finding-grader.md +142 -0
- package/agents/finding-writer.md +148 -0
- package/agents/flow-tracer.md +106 -0
- package/agents/goal-backtracer.md +146 -0
- package/agents/history-miner.md +467 -0
- package/agents/independent-verifier.md +118 -0
- package/agents/intent-mapper.md +183 -0
- package/agents/longshot-collector.md +128 -0
- package/agents/longshot-prober.md +126 -0
- package/agents/patch-auditor.md +73 -0
- package/agents/poc-author.md +124 -0
- package/agents/poc-runner.md +194 -0
- package/agents/probe-lead.md +269 -0
- package/agents/red-challenger.md +101 -0
- package/agents/report-composer.md +208 -0
- package/agents/review-adjudicator.md +216 -0
- package/agents/spec-auditor.md +155 -0
- package/agents/taint-tracer.md +265 -0
- package/agents/test-locator.md +209 -0
- package/agents/threat-modeler.md +132 -0
- package/agents/variant-scanner.md +108 -0
- package/agents/variant-spotter.md +110 -0
- package/bin/piolium.mjs +376 -0
- package/extensions/piolium/_vendor/yaml.bundle.d.mts +6 -0
- package/extensions/piolium/_vendor/yaml.bundle.mjs +139 -0
- package/extensions/piolium/agent-runner.ts +322 -0
- package/extensions/piolium/agents.ts +266 -0
- package/extensions/piolium/audit-state.ts +522 -0
- package/extensions/piolium/bundled-resources.ts +97 -0
- package/extensions/piolium/candidate-scan.ts +966 -0
- package/extensions/piolium/command-target.ts +177 -0
- package/extensions/piolium/console-stream.ts +57 -0
- package/extensions/piolium/export-results.ts +380 -0
- package/extensions/piolium/findings.ts +448 -0
- package/extensions/piolium/heartbeat.ts +182 -0
- package/extensions/piolium/help.ts +234 -0
- package/extensions/piolium/index.ts +1865 -0
- package/extensions/piolium/longshot.ts +530 -0
- package/extensions/piolium/matcher-suggestions.ts +196 -0
- package/extensions/piolium/matcher-utils.ts +83 -0
- package/extensions/piolium/modes/balanced.ts +750 -0
- package/extensions/piolium/modes/confirm-bootstrap.ts +186 -0
- package/extensions/piolium/modes/confirm.ts +697 -0
- package/extensions/piolium/modes/deep.ts +917 -0
- package/extensions/piolium/modes/diff.ts +177 -0
- package/extensions/piolium/modes/lite.ts +540 -0
- package/extensions/piolium/modes/longshot.ts +595 -0
- package/extensions/piolium/modes/merge.ts +204 -0
- package/extensions/piolium/modes/phase-runner.ts +267 -0
- package/extensions/piolium/modes/reinvest.ts +546 -0
- package/extensions/piolium/modes/revisit.ts +279 -0
- package/extensions/piolium/modes.ts +48 -0
- package/extensions/piolium/phase-labels.ts +123 -0
- package/extensions/piolium/phase-status-strip.ts +92 -0
- package/extensions/piolium/prompt-prefix-editor.ts +39 -0
- package/extensions/piolium/providers/anthropic-vertex.ts +836 -0
- package/extensions/piolium/recon.ts +409 -0
- package/extensions/piolium/result-stats.ts +105 -0
- package/extensions/piolium/retry.ts +120 -0
- package/extensions/piolium/scheduler.ts +212 -0
- package/extensions/piolium/secrets.ts +368 -0
- package/extensions/piolium/tools/web-tools.ts +148 -0
- package/package.json +77 -0
- package/skills/agentic-actions-auditor/SKILL.md +327 -0
- package/skills/agentic-actions-auditor/references/action-profiles.md +186 -0
- package/skills/agentic-actions-auditor/references/cross-file-resolution.md +209 -0
- package/skills/agentic-actions-auditor/references/foundations.md +94 -0
- package/skills/agentic-actions-auditor/references/vector-a-env-var-intermediary.md +77 -0
- package/skills/agentic-actions-auditor/references/vector-b-direct-expression-injection.md +83 -0
- package/skills/agentic-actions-auditor/references/vector-c-cli-data-fetch.md +83 -0
- package/skills/agentic-actions-auditor/references/vector-d-pr-target-checkout.md +88 -0
- package/skills/agentic-actions-auditor/references/vector-e-error-log-injection.md +88 -0
- package/skills/agentic-actions-auditor/references/vector-f-subshell-expansion.md +82 -0
- package/skills/agentic-actions-auditor/references/vector-g-eval-of-ai-output.md +91 -0
- package/skills/agentic-actions-auditor/references/vector-h-dangerous-sandbox-configs.md +102 -0
- package/skills/agentic-actions-auditor/references/vector-i-wildcard-allowlists.md +88 -0
- package/skills/audit/SKILL.md +562 -0
- package/skills/audit/assets/icon.svg +7 -0
- package/skills/audit/hooks/scripts/validate_phase_output.py +550 -0
- package/skills/audit/references/adversarial-review.md +148 -0
- package/skills/audit/references/architecture-aware-sast.md +306 -0
- package/skills/audit/references/audit-workflow.md +737 -0
- package/skills/audit/references/chamber-protocol.md +384 -0
- package/skills/audit/references/creative-attack-modes.md +221 -0
- package/skills/audit/references/deep-analysis.md +273 -0
- package/skills/audit/references/domain-attack-playbooks.md +1129 -0
- package/skills/audit/references/knowledge-base-template.md +513 -0
- package/skills/audit/references/real-env-validation.md +191 -0
- package/skills/audit/references/report-templates.md +417 -0
- package/skills/audit/references/triage-and-prereqs.md +134 -0
- package/skills/audit/scripts/consolidate_drafts.py +554 -0
- package/skills/audit/scripts/partition_findings.py +152 -0
- package/skills/audit/scripts/rg-hotspots.sh +121 -0
- package/skills/audit/scripts/stamp_file_state.py +349 -0
- package/skills/code-reviewer/SKILL.md +65 -0
- package/skills/codeql/SKILL.md +281 -0
- package/skills/codeql/references/build-fixes.md +90 -0
- package/skills/codeql/references/diagnostic-query-templates.md +339 -0
- package/skills/codeql/references/extension-yaml-format.md +209 -0
- package/skills/codeql/references/important-only-suite.md +153 -0
- package/skills/codeql/references/language-details.md +207 -0
- package/skills/codeql/references/macos-arm64e-workaround.md +179 -0
- package/skills/codeql/references/performance-tuning.md +111 -0
- package/skills/codeql/references/quality-assessment.md +172 -0
- package/skills/codeql/references/ruleset-catalog.md +63 -0
- package/skills/codeql/references/run-all-suite.md +92 -0
- package/skills/codeql/references/sarif-processing.md +79 -0
- package/skills/codeql/references/threat-models.md +51 -0
- package/skills/codeql/workflows/build-database.md +280 -0
- package/skills/codeql/workflows/create-data-extensions.md +261 -0
- package/skills/codeql/workflows/run-analysis.md +301 -0
- package/skills/differential-review/SKILL.md +220 -0
- package/skills/differential-review/adversarial.md +203 -0
- package/skills/differential-review/methodology.md +234 -0
- package/skills/differential-review/patterns.md +300 -0
- package/skills/differential-review/reporting.md +369 -0
- package/skills/fp-check/SKILL.md +125 -0
- package/skills/fp-check/references/bug-class-verification.md +114 -0
- package/skills/fp-check/references/deep-verification.md +143 -0
- package/skills/fp-check/references/evidence-templates.md +91 -0
- package/skills/fp-check/references/false-positive-patterns.md +115 -0
- package/skills/fp-check/references/gate-reviews.md +27 -0
- package/skills/fp-check/references/standard-verification.md +78 -0
- package/skills/insecure-defaults/SKILL.md +117 -0
- package/skills/insecure-defaults/references/examples.md +409 -0
- package/skills/last30days/SKILL.md +444 -0
- package/skills/sarif-parsing/SKILL.md +483 -0
- package/skills/sarif-parsing/resources/jq-queries.md +162 -0
- package/skills/sarif-parsing/resources/sarif_helpers.py +331 -0
- package/skills/security-threat-model/LICENSE.txt +201 -0
- package/skills/security-threat-model/SKILL.md +81 -0
- package/skills/security-threat-model/agents/openai.yaml +4 -0
- package/skills/security-threat-model/references/prompt-template.md +255 -0
- package/skills/security-threat-model/references/security-controls-and-assets.md +32 -0
- package/skills/semgrep/SKILL.md +212 -0
- package/skills/semgrep/references/rulesets.md +162 -0
- package/skills/semgrep/references/scan-modes.md +110 -0
- package/skills/semgrep/references/scanner-task-prompt.md +140 -0
- package/skills/semgrep/scripts/merge_sarif.py +203 -0
- package/skills/semgrep/workflows/scan-workflow.md +311 -0
- package/skills/semgrep-rule-creator/SKILL.md +168 -0
- package/skills/semgrep-rule-creator/references/quick-reference.md +202 -0
- package/skills/semgrep-rule-creator/references/workflow.md +240 -0
- package/skills/semgrep-rule-variant-creator/SKILL.md +205 -0
- package/skills/semgrep-rule-variant-creator/references/applicability-analysis.md +250 -0
- package/skills/semgrep-rule-variant-creator/references/language-syntax-guide.md +324 -0
- package/skills/semgrep-rule-variant-creator/references/workflow.md +518 -0
- package/skills/sharp-edges/SKILL.md +292 -0
- package/skills/sharp-edges/references/auth-patterns.md +252 -0
- package/skills/sharp-edges/references/case-studies.md +274 -0
- package/skills/sharp-edges/references/config-patterns.md +333 -0
- package/skills/sharp-edges/references/crypto-apis.md +190 -0
- package/skills/sharp-edges/references/lang-c.md +205 -0
- package/skills/sharp-edges/references/lang-csharp.md +285 -0
- package/skills/sharp-edges/references/lang-go.md +270 -0
- package/skills/sharp-edges/references/lang-java.md +263 -0
- package/skills/sharp-edges/references/lang-javascript.md +269 -0
- package/skills/sharp-edges/references/lang-kotlin.md +265 -0
- package/skills/sharp-edges/references/lang-php.md +245 -0
- package/skills/sharp-edges/references/lang-python.md +274 -0
- package/skills/sharp-edges/references/lang-ruby.md +273 -0
- package/skills/sharp-edges/references/lang-rust.md +272 -0
- package/skills/sharp-edges/references/lang-swift.md +287 -0
- package/skills/sharp-edges/references/language-specific.md +588 -0
- package/skills/spec-to-code-compliance/SKILL.md +357 -0
- package/skills/spec-to-code-compliance/resources/COMPLETENESS_CHECKLIST.md +69 -0
- package/skills/spec-to-code-compliance/resources/IR_EXAMPLES.md +417 -0
- package/skills/spec-to-code-compliance/resources/OUTPUT_REQUIREMENTS.md +105 -0
- package/skills/supply-chain-risk-auditor/SKILL.md +67 -0
- package/skills/supply-chain-risk-auditor/resources/results-template.md +41 -0
- package/skills/variant-analysis/METHODOLOGY.md +327 -0
- package/skills/variant-analysis/SKILL.md +142 -0
- package/skills/variant-analysis/resources/codeql/cpp.ql +119 -0
- package/skills/variant-analysis/resources/codeql/go.ql +69 -0
- package/skills/variant-analysis/resources/codeql/java.ql +71 -0
- package/skills/variant-analysis/resources/codeql/javascript.ql +63 -0
- package/skills/variant-analysis/resources/codeql/python.ql +80 -0
- package/skills/variant-analysis/resources/semgrep/cpp.yaml +98 -0
- package/skills/variant-analysis/resources/semgrep/go.yaml +63 -0
- package/skills/variant-analysis/resources/semgrep/java.yaml +61 -0
- package/skills/variant-analysis/resources/semgrep/javascript.yaml +60 -0
- package/skills/variant-analysis/resources/semgrep/python.yaml +72 -0
- package/skills/variant-analysis/resources/variant-report-template.md +75 -0
- package/skills/vuln-report/SKILL.md +137 -0
- package/skills/vuln-report/agents/openai.yaml +4 -0
- package/skills/vuln-report/references/report-template.md +135 -0
- package/skills/wooyun-legacy/SKILL.md +367 -0
- package/skills/wooyun-legacy/references/bank-penetration.md +222 -0
- package/skills/wooyun-legacy/references/checklists/command-execution-checklist.md +119 -0
- package/skills/wooyun-legacy/references/checklists/csrf-checklist.md +74 -0
- package/skills/wooyun-legacy/references/checklists/file-upload-checklist.md +108 -0
- package/skills/wooyun-legacy/references/checklists/info-disclosure-checklist.md +114 -0
- package/skills/wooyun-legacy/references/checklists/logic-flaws-checklist.md +95 -0
- package/skills/wooyun-legacy/references/checklists/misconfig-checklist.md +124 -0
- package/skills/wooyun-legacy/references/checklists/path-traversal-checklist.md +87 -0
- package/skills/wooyun-legacy/references/checklists/rce-checklist.md +93 -0
- package/skills/wooyun-legacy/references/checklists/sql-injection-checklist.md +97 -0
- package/skills/wooyun-legacy/references/checklists/ssrf-checklist.md +99 -0
- package/skills/wooyun-legacy/references/checklists/unauthorized-access-checklist.md +89 -0
- package/skills/wooyun-legacy/references/checklists/weak-password-checklist.md +115 -0
- package/skills/wooyun-legacy/references/checklists/xss-checklist.md +103 -0
- package/skills/wooyun-legacy/references/checklists/xxe-checklist.md +130 -0
- package/skills/wooyun-legacy/references/info-disclosure.md +975 -0
- package/skills/wooyun-legacy/references/logic-flaws.md +721 -0
- package/skills/wooyun-legacy/references/path-traversal.md +1191 -0
- package/skills/wooyun-legacy/references/telecom-penetration.md +156 -0
- package/skills/wooyun-legacy/references/unauthorized-access.md +980 -0
- package/skills/wooyun-legacy/references/xss.md +746 -0
- package/skills/zeroize-audit/SKILL.md +371 -0
- package/skills/zeroize-audit/configs/c.yaml +21 -0
- package/skills/zeroize-audit/configs/default.yaml +128 -0
- package/skills/zeroize-audit/configs/rust.yaml +83 -0
- package/skills/zeroize-audit/prompts/report_template.md +238 -0
- package/skills/zeroize-audit/prompts/system.md +163 -0
- package/skills/zeroize-audit/prompts/task.md +97 -0
- package/skills/zeroize-audit/references/compile-commands.md +231 -0
- package/skills/zeroize-audit/references/detection-strategy.md +191 -0
- package/skills/zeroize-audit/references/ir-analysis.md +252 -0
- package/skills/zeroize-audit/references/mcp-analysis.md +221 -0
- package/skills/zeroize-audit/references/poc-generation.md +470 -0
- package/skills/zeroize-audit/references/rust-zeroization-patterns.md +867 -0
- package/skills/zeroize-audit/schemas/input.json +83 -0
- package/skills/zeroize-audit/schemas/output.json +140 -0
- package/skills/zeroize-audit/tools/analyze_asm.sh +202 -0
- package/skills/zeroize-audit/tools/analyze_cfg.py +381 -0
- package/skills/zeroize-audit/tools/analyze_heap.sh +211 -0
- package/skills/zeroize-audit/tools/analyze_ir_semantic.py +429 -0
- package/skills/zeroize-audit/tools/diff_ir.sh +135 -0
- package/skills/zeroize-audit/tools/diff_rust_mir.sh +189 -0
- package/skills/zeroize-audit/tools/emit_asm.sh +67 -0
- package/skills/zeroize-audit/tools/emit_ir.sh +77 -0
- package/skills/zeroize-audit/tools/emit_rust_asm.sh +178 -0
- package/skills/zeroize-audit/tools/emit_rust_ir.sh +150 -0
- package/skills/zeroize-audit/tools/emit_rust_mir.sh +158 -0
- package/skills/zeroize-audit/tools/extract_compile_flags.py +284 -0
- package/skills/zeroize-audit/tools/generate_poc.py +1329 -0
- package/skills/zeroize-audit/tools/mcp/apply_confidence_gates.py +113 -0
- package/skills/zeroize-audit/tools/mcp/check_mcp.sh +68 -0
- package/skills/zeroize-audit/tools/mcp/normalize_mcp_evidence.py +125 -0
- package/skills/zeroize-audit/tools/scripts/check_llvm_patterns.py +481 -0
- package/skills/zeroize-audit/tools/scripts/check_mir_patterns.py +554 -0
- package/skills/zeroize-audit/tools/scripts/check_rust_asm.py +424 -0
- package/skills/zeroize-audit/tools/scripts/check_rust_asm_aarch64.py +300 -0
- package/skills/zeroize-audit/tools/scripts/check_rust_asm_x86.py +283 -0
- package/skills/zeroize-audit/tools/scripts/find_dangerous_apis.py +375 -0
- package/skills/zeroize-audit/tools/scripts/semantic_audit.py +923 -0
- package/skills/zeroize-audit/tools/track_dataflow.sh +196 -0
- package/skills/zeroize-audit/tools/validate_rust_toolchain.sh +298 -0
- package/skills/zeroize-audit/workflows/phase-0-preflight.md +150 -0
- package/skills/zeroize-audit/workflows/phase-1-source-analysis.md +144 -0
- package/skills/zeroize-audit/workflows/phase-2-compiler-analysis.md +139 -0
- package/skills/zeroize-audit/workflows/phase-3-interim-report.md +46 -0
- package/skills/zeroize-audit/workflows/phase-4-poc-generation.md +46 -0
- package/skills/zeroize-audit/workflows/phase-5-poc-validation.md +136 -0
- package/skills/zeroize-audit/workflows/phase-6-final-report.md +44 -0
- package/skills/zeroize-audit/workflows/phase-7-test-generation.md +42 -0
- package/themes/piolium-srcery.json +94 -0
|
@@ -0,0 +1,417 @@
|
|
|
1
|
+
# Security Report Templates
|
|
2
|
+
|
|
3
|
+
Consistent output formats only.
|
|
4
|
+
Do not use this file for triage rules or analysis methodology.
|
|
5
|
+
|
|
6
|
+
## audit-state.json Schema
|
|
7
|
+
|
|
8
|
+
`archon/audit-state.json` is an append-only audit history. Each audit run is appended as a new
|
|
9
|
+
entry in the `audits` array. Earlier entries are never overwritten — they form the permanent record
|
|
10
|
+
of every audit cycle against this repository. The current (in-progress or most recently completed)
|
|
11
|
+
audit is always the last entry.
|
|
12
|
+
|
|
13
|
+
```json
|
|
14
|
+
{
|
|
15
|
+
"audits": [
|
|
16
|
+
{
|
|
17
|
+
"audit_id": "<YYYY-MM-DDTHH:MM:SSZ>",
|
|
18
|
+
"commit": "<git SHA>",
|
|
19
|
+
"branch": "<branch name>",
|
|
20
|
+
"repository": "<org/repo or folder name>",
|
|
21
|
+
"started_at": "<ISO 8601 timestamp>",
|
|
22
|
+
"completed_at": "<ISO 8601 timestamp or null if in progress>",
|
|
23
|
+
"status": "complete | in_progress | failed",
|
|
24
|
+
"phases": {
|
|
25
|
+
"1": {
|
|
26
|
+
"status": "complete | in_progress | failed | skipped",
|
|
27
|
+
"started_at": "<ISO 8601 timestamp>",
|
|
28
|
+
"completed_at": "<ISO 8601 timestamp>",
|
|
29
|
+
"metrics": {
|
|
30
|
+
"findings_count": 0,
|
|
31
|
+
"reports_generated": ["knowledge-base-report.md"],
|
|
32
|
+
"validation_passed": true,
|
|
33
|
+
"error": null
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
]
|
|
39
|
+
}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Field notes:
|
|
43
|
+
- `audit_id`: ISO 8601 timestamp of when the audit started; unique identifier for the run
|
|
44
|
+
- `commit`: HEAD commit SHA at audit start; used for incremental re-audit diffing
|
|
45
|
+
- `repository`: org/repo slug from git remote origin (e.g. `org/reponame`), or working directory basename if no remote is configured
|
|
46
|
+
- `status` (audit-level): overall status of the audit run
|
|
47
|
+
- `findings_count`: number of candidate findings at phase completion (0 for phases that do not generate findings)
|
|
48
|
+
- `reports_generated`: list of KB sections or artifact files written during this phase
|
|
49
|
+
- `validation_passed`: result of running `validate_phase_output.py` for this phase
|
|
50
|
+
- `error`: validation error message if `validation_passed` is false; null otherwise
|
|
51
|
+
|
|
52
|
+
**Appending a new audit**: before starting a new audit run, read the existing file, append a new
|
|
53
|
+
entry to the `audits` array with `status: "in_progress"`, and write the file back. Never replace
|
|
54
|
+
the array or remove existing entries. If the file does not exist, create it with a single-entry
|
|
55
|
+
array.
|
|
56
|
+
|
|
57
|
+
**Re-audit detection**: to determine whether this is a re-audit, compare the current HEAD SHA
|
|
58
|
+
against `audits[-1].commit` (the most recent completed entry). If they differ, this is a re-audit;
|
|
59
|
+
load the KB sections from `archon/attack-surface/knowledge-base-report.md` as the starting knowledge base.
|
|
60
|
+
|
|
61
|
+
For Phase 4, `reports_generated` must include `archon/codeql-artifacts/entry-points.json`,
|
|
62
|
+
`archon/codeql-artifacts/sinks.json`, `archon/codeql-artifacts/call-graph-slices.json`, and
|
|
63
|
+
`archon/codeql-artifacts/flow-paths-all-severities.md`, plus the `## Static Analysis Summary`
|
|
64
|
+
section written to `archon/attack-surface/knowledge-base-report.md`. Missing any causes `validation_passed: false`.
|
|
65
|
+
|
|
66
|
+
Phase 4 `metrics` must include a `codeql_structural` sub-object:
|
|
67
|
+
|
|
68
|
+
```json
|
|
69
|
+
"codeql_structural": {
|
|
70
|
+
"entry_points_count": 0,
|
|
71
|
+
"sinks_count": 0,
|
|
72
|
+
"slices_reachable": 0,
|
|
73
|
+
"slices_not_reachable": 0,
|
|
74
|
+
"informational_results_count": 0,
|
|
75
|
+
"db_path": "archon/codeql-artifacts/db/"
|
|
76
|
+
}
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Finding Draft Template
|
|
80
|
+
|
|
81
|
+
Used for `archon/findings-draft/<phase>-<NNN>-<slug>.md` files written incrementally during Phases 7-9.
|
|
82
|
+
|
|
83
|
+
```markdown
|
|
84
|
+
# [Finding Title]
|
|
85
|
+
|
|
86
|
+
Phase: 7 | 8 | 9
|
|
87
|
+
Sequence: NNN
|
|
88
|
+
Slug: <slug>
|
|
89
|
+
Verdict: PENDING | VALID | FALSE POSITIVE | BY DESIGN | OUT OF SCOPE | FALSE POSITIVE (adversarial)
|
|
90
|
+
Rationale: <one-sentence explanation tied to the threat model — fill in during Phase 11>
|
|
91
|
+
Adversarial-Verdict: PENDING | CONFIRMED | DISPROVED
|
|
92
|
+
Adversarial-Rationale: <one sentence citing the decisive evidence — fill in during Phase 11 Stage 2>
|
|
93
|
+
Severity-Original: <severity assigned during Phase 10/8 Stage 1>
|
|
94
|
+
Severity-Final: <severity after adversarial challenge — lower severity wins>
|
|
95
|
+
PoC-Status: executed | theoretical | blocked
|
|
96
|
+
Pre-FP-Flag: <none | check-N-ambiguous — set by chamber Synthesizer if quality gate was ambiguous>
|
|
97
|
+
Debate: <path to chamber debate transcript, e.g., archon/chamber-workspace/chamber-01/debate.md>
|
|
98
|
+
|
|
99
|
+
## Summary
|
|
100
|
+
|
|
101
|
+
[One-sentence description of the vulnerability.]
|
|
102
|
+
|
|
103
|
+
## Location
|
|
104
|
+
|
|
105
|
+
File: <path>
|
|
106
|
+
Function/Method: <name>
|
|
107
|
+
Line: <number>
|
|
108
|
+
|
|
109
|
+
## Attacker Control
|
|
110
|
+
|
|
111
|
+
[What input does the attacker control, and how does it reach the vulnerable code?]
|
|
112
|
+
|
|
113
|
+
## Trust Boundary Crossed
|
|
114
|
+
|
|
115
|
+
[Which trust boundary is violated?]
|
|
116
|
+
|
|
117
|
+
## Impact
|
|
118
|
+
|
|
119
|
+
[Concrete attacker gain: what can the attacker do?]
|
|
120
|
+
|
|
121
|
+
## Evidence
|
|
122
|
+
|
|
123
|
+
[Code snippet or logic trace showing the vulnerable path.]
|
|
124
|
+
|
|
125
|
+
## Reproduction Steps
|
|
126
|
+
|
|
127
|
+
[Minimal steps to trigger the issue.]
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
## PoC Quality Requirements
|
|
131
|
+
|
|
132
|
+
Apply these requirements to every PoC produced in Phase 15 and Phase 11 Stage 2:
|
|
133
|
+
|
|
134
|
+
- **Prove the vulnerability, do not manufacture it.** The PoC must demonstrate the actual exploit path through the real application stack — not a stripped-down harness that bypasses the security controls under test. Bug bounty triagers reject PoCs that call the vulnerable function directly while skipping the auth layer, middleware, or sandbox that would normally gate access.
|
|
135
|
+
- **Minimize the PoC to its essential steps.** Remove all scaffolding, retry loops, verbose logging, and diagnostic output that are not necessary to trigger the vulnerability. The finished script should read like a CTF exploit: tight, purposeful, and self-contained.
|
|
136
|
+
- **Demonstrate the security effect.** The PoC must show the concrete attacker gain — data exfiltration, code execution, authentication bypass, privilege escalation — not merely that an error occurs.
|
|
137
|
+
- **Capture evidence.** For Critical and High findings, save execution output to `archon/findings/<ID>-<slug>/evidence/` (screenshots, response captures, or log snippets).
|
|
138
|
+
- **Label PoC-Status accurately.** Use `executed` only if the PoC ran successfully against a real environment. Use `theoretical` if only code-level analysis was performed. Use `blocked` with a `PoC-Block-Reason:` if environment provisioning failed.
|
|
139
|
+
|
|
140
|
+
## Adversarial Review Template
|
|
141
|
+
|
|
142
|
+
Used for `archon/adversarial-reviews/<slug>-review.md` files written during Phase 11 Stage 2.
|
|
143
|
+
|
|
144
|
+
```markdown
|
|
145
|
+
# Adversarial Review: [Finding Title]
|
|
146
|
+
|
|
147
|
+
Finding-Ref: archon/findings-draft/<phase>-<NNN>-<slug>.md
|
|
148
|
+
Reviewer-Agent: fresh (isolated — did not see Phase 10 reasoning)
|
|
149
|
+
Date: <ISO date>
|
|
150
|
+
|
|
151
|
+
## Independent Restatement
|
|
152
|
+
|
|
153
|
+
[Restate the vulnerability claim in your own words without copying the original description.]
|
|
154
|
+
|
|
155
|
+
## Sub-claim Decomposition
|
|
156
|
+
|
|
157
|
+
- Sub-claim A (attacker controls X): [assessment]
|
|
158
|
+
- Sub-claim B (X reaches Y without blocking controls): [assessment]
|
|
159
|
+
- Sub-claim C (Y causes security effect Z): [assessment]
|
|
160
|
+
|
|
161
|
+
Sub-claim result: all coherent | failure on <sub-claim> — <reason>
|
|
162
|
+
|
|
163
|
+
## Independent Code Path Trace
|
|
164
|
+
|
|
165
|
+
Entry point: <file:line>
|
|
166
|
+
Sink: <file:line>
|
|
167
|
+
|
|
168
|
+
[Step-by-step trace of the code path. Document every validation, sanitization, and transformation encountered.]
|
|
169
|
+
|
|
170
|
+
## Protections Checked
|
|
171
|
+
|
|
172
|
+
| Layer | Protection Found | Blocks Attack? |
|
|
173
|
+
|-------|-----------------|----------------|
|
|
174
|
+
| Language | | |
|
|
175
|
+
| Framework | | |
|
|
176
|
+
| Middleware | | |
|
|
177
|
+
| Application | | |
|
|
178
|
+
| Documentation | | |
|
|
179
|
+
|
|
180
|
+
## Real-Environment Reproduction
|
|
181
|
+
|
|
182
|
+
Environment type: web app | library | CLI | protocol | infrastructure
|
|
183
|
+
Provisioning method: Docker | VM (DigitalOcean) | VM (Azure) | local install | blocked
|
|
184
|
+
|
|
185
|
+
Setup commands: see `archon/real-env-evidence/<slug>/setup.sh`
|
|
186
|
+
Healthcheck result: pass | fail
|
|
187
|
+
Attempt 1: [payload/method] — [result]
|
|
188
|
+
Attempt 2 (if needed): [payload/method] — [result]
|
|
189
|
+
Attempt 3 (if needed): [payload/method] — [result]
|
|
190
|
+
Evidence: archon/real-env-evidence/<slug>/
|
|
191
|
+
|
|
192
|
+
PoC-Status: executed | theoretical | blocked
|
|
193
|
+
Block reason (if blocked): <specific reason>
|
|
194
|
+
|
|
195
|
+
## Prosecution Brief
|
|
196
|
+
|
|
197
|
+
[Strongest possible argument that this is a genuine, exploitable vulnerability. Cite code locations and evidence.]
|
|
198
|
+
|
|
199
|
+
## Defense Brief
|
|
200
|
+
|
|
201
|
+
[Strongest possible argument that this is a false positive or unexploitable. Cite protections, reproduction failures, and realistic preconditions.]
|
|
202
|
+
|
|
203
|
+
## Severity Challenge
|
|
204
|
+
|
|
205
|
+
Severity-Original: <from finding draft>
|
|
206
|
+
Severity-Challenge: MEDIUM | HIGH | CRITICAL
|
|
207
|
+
Justification: <one sentence with evidence>
|
|
208
|
+
|
|
209
|
+
## Verdict
|
|
210
|
+
|
|
211
|
+
Adversarial-Verdict: CONFIRMED | DISPROVED
|
|
212
|
+
Adversarial-Rationale: <one sentence citing the decisive evidence>
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
## Pentest-Style Final Report Template (`archon/final-audit-report.md`)
|
|
216
|
+
|
|
217
|
+
```markdown
|
|
218
|
+
# Security Audit Report: [Project Name]
|
|
219
|
+
=========================================
|
|
220
|
+
|
|
221
|
+
## Executive Summary
|
|
222
|
+
---------------------
|
|
223
|
+
[Concise high-level summary of the overall security posture. Identify the most critical risks and the general impact on the business or project stakeholders. Aim for a one-paragraph summary for non-technical audiences.]
|
|
224
|
+
|
|
225
|
+
## Methodology Summary
|
|
226
|
+
-----------------------
|
|
227
|
+
[Briefly describe the audit process (Phases 1-9) to establish technical depth.]
|
|
228
|
+
- **Intelligence Gathering:** Identified published advisories, architecture, and dependency risks.
|
|
229
|
+
- **Threat Modeling:** Documented trust boundaries, attacker entry points, and high-risk flows.
|
|
230
|
+
- **Static Analysis:** Executed CodeQL, Semgrep Pro, and custom architecture-driven rules.
|
|
231
|
+
- **Structural Extraction:** CodeQL structural artifacts (entry points, sinks, call graph slices,
|
|
232
|
+
informational flow nodes, machine-generated DFD/CFD diagrams) were extracted and used to validate
|
|
233
|
+
Phase 3 DFD/CFD slices, guide manual review in Phase 10, and drive AST-level variant hunting in
|
|
234
|
+
Phase 12.
|
|
235
|
+
- **Deep Manual Review:** Targeted bug hunting focusing on logic, bypasses, and spec compliance.
|
|
236
|
+
- **Verification:** All findings were validated for exploitability within the project's threat model.
|
|
237
|
+
|
|
238
|
+
## Summary of Findings
|
|
239
|
+
----------------------
|
|
240
|
+
|
|
241
|
+
| ID | Title | Severity | Status |
|
|
242
|
+
|----|-------|----------|--------|
|
|
243
|
+
| [C1] | [Vulnerability Title] | CRITICAL | VALID |
|
|
244
|
+
| [H1] | [Vulnerability Title] | HIGH | VALID |
|
|
245
|
+
| [M1] | [Vulnerability Title] | MEDIUM | VALID |
|
|
246
|
+
|
|
247
|
+
## Technical Findings Detail
|
|
248
|
+
---------------------------
|
|
249
|
+
|
|
250
|
+
### [[ID]] [Finding Title]
|
|
251
|
+
- **Severity:** [CRITICAL/HIGH/MEDIUM]
|
|
252
|
+
- **Summary:** [One-sentence summary of the vulnerability.]
|
|
253
|
+
- **Impact:** [How this impacts the system/user and what the attacker gains.]
|
|
254
|
+
- **Detailed Report:** [archon/findings/[ID]-[slug]/report.md]
|
|
255
|
+
- **Proof of Concept:** [archon/findings/[ID]-[slug]/poc.py]
|
|
256
|
+
|
|
257
|
+
[Repeat for each finding...]
|
|
258
|
+
|
|
259
|
+
## Conclusion
|
|
260
|
+
-------------
|
|
261
|
+
[Final assessment and professional recommendations for improving the overall security baseline.]
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
## Audit Report Template
|
|
265
|
+
|
|
266
|
+
```
|
|
267
|
+
Security Audit Report
|
|
268
|
+
===================
|
|
269
|
+
|
|
270
|
+
Scope: [full codebase | specific area | file path]
|
|
271
|
+
|
|
272
|
+
Method: static analysis [+ runtime verification if runnable]
|
|
273
|
+
|
|
274
|
+
Summary: CRITICAL: N, HIGH: N [or NONE]
|
|
275
|
+
|
|
276
|
+
Findings
|
|
277
|
+
--------
|
|
278
|
+
|
|
279
|
+
[C1/H1] Finding Title
|
|
280
|
+
- Severity: CRITICAL/HIGH/MEDIUM
|
|
281
|
+
- Prerequisites: [attacker position and required capabilities]
|
|
282
|
+
- Evidence: [source → sink chain with file references]
|
|
283
|
+
- Reproduction: [minimal safe steps]
|
|
284
|
+
- Impact: [concrete attacker gain]
|
|
285
|
+
- Discussion inputs: [key technical facts/questions for the dev team; do not propose a fix unless asked]
|
|
286
|
+
|
|
287
|
+
[Repeat for each finding...]
|
|
288
|
+
|
|
289
|
+
Noise Skipped (optional)
|
|
290
|
+
------------------------
|
|
291
|
+
- [Issue]: [reason for exclusion]
|
|
292
|
+
[Only include if needed to prevent confusion]
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
## Verification Report Template
|
|
296
|
+
|
|
297
|
+
```
|
|
298
|
+
Security Fix Verification
|
|
299
|
+
========================
|
|
300
|
+
|
|
301
|
+
Scope: [what was tested]
|
|
302
|
+
Changes: [what code/behavior changed]
|
|
303
|
+
Status: PASS/FAIL
|
|
304
|
+
|
|
305
|
+
Re-tested Findings
|
|
306
|
+
------------------
|
|
307
|
+
|
|
308
|
+
[C1/H1] Finding Title: FIXED/NOT FIXED
|
|
309
|
+
- Repro re-run: [steps taken]
|
|
310
|
+
- Evidence: [proof of fix or continued vulnerability]
|
|
311
|
+
|
|
312
|
+
[Repeat for each previous finding...]
|
|
313
|
+
|
|
314
|
+
Regressions
|
|
315
|
+
-----------
|
|
316
|
+
- [Test/Build]: [failure description]
|
|
317
|
+
[Include any test failures or build issues introduced by changes]
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
## Consistency Check: Phase 4 CodeQL Artifacts
|
|
321
|
+
|
|
322
|
+
Required files after Phase 4 (must exist and be non-empty):
|
|
323
|
+
|
|
324
|
+
```
|
|
325
|
+
archon/codeql-artifacts/entry-points.json
|
|
326
|
+
archon/codeql-artifacts/sinks.json
|
|
327
|
+
archon/codeql-artifacts/call-graph-slices.json
|
|
328
|
+
archon/codeql-artifacts/flow-paths-all-severities.md
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
Git-ignored but must exist on disk during Phases 5-9:
|
|
332
|
+
|
|
333
|
+
```
|
|
334
|
+
archon/codeql-artifacts/db/
|
|
335
|
+
archon/codeql-artifacts/flow-paths-raw.sarif
|
|
336
|
+
```
|
|
337
|
+
|
|
338
|
+
Spot checks:
|
|
339
|
+
|
|
340
|
+
```bash
|
|
341
|
+
jq 'length' archon/codeql-artifacts/entry-points.json
|
|
342
|
+
jq 'length' archon/codeql-artifacts/sinks.json
|
|
343
|
+
jq '[.[] | select(.reachable == true)] | length' archon/codeql-artifacts/call-graph-slices.json
|
|
344
|
+
jq '.runs[0].results | length' archon/codeql-artifacts/flow-paths-raw.sarif
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
## RFC Gaps Report Template
|
|
348
|
+
|
|
349
|
+
```
|
|
350
|
+
RFC Implementation Gaps Report
|
|
351
|
+
==============================
|
|
352
|
+
|
|
353
|
+
Scope: [protocol/module]
|
|
354
|
+
RFCs Reviewed: [RFC number(s) and sections]
|
|
355
|
+
|
|
356
|
+
Gap Summary
|
|
357
|
+
-----------
|
|
358
|
+
- Implemented correctly: N
|
|
359
|
+
- Partially implemented: N
|
|
360
|
+
- Missing: N
|
|
361
|
+
- Potentially bypassable: N
|
|
362
|
+
|
|
363
|
+
Per-Gap Detail
|
|
364
|
+
--------------
|
|
365
|
+
|
|
366
|
+
[G1] Gap Title
|
|
367
|
+
- RFC Clause: [RFC XXXX §Y.Z]
|
|
368
|
+
- Code Path: [file/function]
|
|
369
|
+
- Gap Type: implemented-correctly | partial | missing | bypassable
|
|
370
|
+
- Attack Vector: [threat-model-relevant vector]
|
|
371
|
+
- Exploit Conditions: [prerequisites]
|
|
372
|
+
- Impact: [concrete attacker gain]
|
|
373
|
+
- Evidence: [code path and reasoning]
|
|
374
|
+
|
|
375
|
+
[Repeat for each gap...]
|
|
376
|
+
```
|
|
377
|
+
|
|
378
|
+
## Attack Pattern Registry Schema
|
|
379
|
+
|
|
380
|
+
File: `archon/attack-pattern-registry.json`
|
|
381
|
+
|
|
382
|
+
Created during Phase 10 Review Chamber debates. Each confirmed vulnerability pattern is added
|
|
383
|
+
with detection signatures for automated variant hunting in Phase 12.
|
|
384
|
+
|
|
385
|
+
```json
|
|
386
|
+
{
|
|
387
|
+
"patterns": [
|
|
388
|
+
{
|
|
389
|
+
"id": "AP-001",
|
|
390
|
+
"title": "Unsafe ObjectInputStream deserialization",
|
|
391
|
+
"bug_class": "deserialization",
|
|
392
|
+
"root_cause": "ObjectInputStream.readObject() without ObjectInputFilter on attacker-reachable path",
|
|
393
|
+
"detection_signature": {
|
|
394
|
+
"codeql": "<QL query fragment for variant search>",
|
|
395
|
+
"grep": "<regex pattern for codebase-wide search>",
|
|
396
|
+
"semgrep": "<semgrep pattern for structural match>"
|
|
397
|
+
},
|
|
398
|
+
"confirmed_instances": [
|
|
399
|
+
{"finding_ref": "p7-003-admin-deser.md", "file": "src/admin/AdminService.java:142"}
|
|
400
|
+
],
|
|
401
|
+
"untested_candidates": [
|
|
402
|
+
{"file": "src/backup/BackupRestoreService.java:201", "reason": "Uses ObjectInputStream in unaudited slice"}
|
|
403
|
+
],
|
|
404
|
+
"severity": "CRITICAL",
|
|
405
|
+
"added_at": "<ISO 8601 timestamp>",
|
|
406
|
+
"added_by": "<chamber-id>"
|
|
407
|
+
}
|
|
408
|
+
]
|
|
409
|
+
}
|
|
410
|
+
```
|
|
411
|
+
|
|
412
|
+
## Chamber Debate Transcript Template
|
|
413
|
+
|
|
414
|
+
File: `archon/chamber-workspace/<chamber-id>/debate.md`
|
|
415
|
+
|
|
416
|
+
See `references/chamber-protocol.md` for the complete format specification. The transcript is
|
|
417
|
+
append-only with structured round markers and role-tagged sections.
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
# Triage and Prerequisite Rules
|
|
2
|
+
|
|
3
|
+
Purpose: define **what qualifies** as a reportable issue and how to prioritize it.
|
|
4
|
+
Out of scope: deep-analysis methodology and report output templates.
|
|
5
|
+
|
|
6
|
+
## Severity Priority
|
|
7
|
+
|
|
8
|
+
1. CRITICAL
|
|
9
|
+
2. HIGH
|
|
10
|
+
3. MEDIUM (secondary pass only)
|
|
11
|
+
|
|
12
|
+
Low severity findings are eliminated from the audit pipeline entirely. Drop them at whichever phase
|
|
13
|
+
first determines their severity (Phase 5, 7, or 8). Never carry a Low finding to Phase 12 or
|
|
14
|
+
Phase 15. The final audit report covers Medium, High, and Critical findings only.
|
|
15
|
+
|
|
16
|
+
If no path to material impact exists, do not report.
|
|
17
|
+
|
|
18
|
+
## Prerequisite Minimums
|
|
19
|
+
|
|
20
|
+
Every finding must state:
|
|
21
|
+
|
|
22
|
+
- Attacker starting position
|
|
23
|
+
- Required capabilities
|
|
24
|
+
- Trust boundary crossed
|
|
25
|
+
- Concrete attacker gain
|
|
26
|
+
|
|
27
|
+
## Capability Validity Rules
|
|
28
|
+
|
|
29
|
+
Treat findings as invalid when prerequisites already imply environment compromise:
|
|
30
|
+
|
|
31
|
+
- Write access to app config/data files
|
|
32
|
+
- Control over CI/CD or deployment infrastructure
|
|
33
|
+
- Control over runtime environment variables
|
|
34
|
+
- Ownership of unrelated external infrastructure as the sole prerequisite
|
|
35
|
+
|
|
36
|
+
Escalate only if the code under review provides a realistic path to gain that prerequisite.
|
|
37
|
+
|
|
38
|
+
## Token and Secret Claims
|
|
39
|
+
|
|
40
|
+
Do not treat "token possession enables access" as a finding by itself.
|
|
41
|
+
|
|
42
|
+
Report only when there is a feasible acquisition path, such as:
|
|
43
|
+
|
|
44
|
+
- Exfiltration via XSS/injection
|
|
45
|
+
- Leakage to logs, URLs, telemetry, or third-party endpoints
|
|
46
|
+
- Misconfiguration that exposes secret material
|
|
47
|
+
|
|
48
|
+
## Noise Filters
|
|
49
|
+
|
|
50
|
+
Deprioritize unless chained to clear impact:
|
|
51
|
+
|
|
52
|
+
- CORS weakness without data exposure/state change
|
|
53
|
+
- Missing rate limiting without abuse chain
|
|
54
|
+
- Enumeration without takeover or sensitive-data access
|
|
55
|
+
- Verbose errors without sensitive disclosure
|
|
56
|
+
- Surface-only scanner hits without source-to-sink evidence
|
|
57
|
+
|
|
58
|
+
## Threat-Model Alignment Rule
|
|
59
|
+
|
|
60
|
+
Attack vectors are selected by project threat model and attack surface:
|
|
61
|
+
|
|
62
|
+
- AV:N often applies to internet-facing systems
|
|
63
|
+
- Local/adjacent/physical vectors may be in-scope for CLI, desktop, or embedded targets
|
|
64
|
+
|
|
65
|
+
The report decision should follow project context, not a fixed AV requirement.
|
|
66
|
+
|
|
67
|
+
## Bug Bounty Scope Gate
|
|
68
|
+
|
|
69
|
+
Before advancing a finding to Phase 12 or Phase 15, confirm all five:
|
|
70
|
+
|
|
71
|
+
- [ ] Target (domain, binary, repo, service) is explicitly listed in-scope for the program
|
|
72
|
+
- [ ] Bug class is not in the program's exclusion list (e.g., "rate limiting not accepted", "self-XSS out of scope")
|
|
73
|
+
- [ ] Test method used is permitted (e.g., no automated scanning if prohibited, no testing on production if not allowed)
|
|
74
|
+
- [ ] Finding is not a known, already-reported, or recently-patched duplicate (check public disclosures and changelog)
|
|
75
|
+
- [ ] Severity meets the program's minimum threshold (some programs reject informational and low)
|
|
76
|
+
|
|
77
|
+
If `archon/bounty-scope.md` was captured during pre-audit setup, cross-reference it here. If scope is unclear, mark the finding `OUT OF SCOPE (scope-unclear)` and do not report until confirmed.
|
|
78
|
+
|
|
79
|
+
## Severity Calibration
|
|
80
|
+
|
|
81
|
+
Default-low principle: start every finding at MEDIUM. Require evidence to upgrade.
|
|
82
|
+
|
|
83
|
+
**Upgrade to HIGH when all three apply:**
|
|
84
|
+
- Remotely triggerable without physical access
|
|
85
|
+
- Crosses a meaningful trust boundary (user to admin, tenant to tenant, unauthenticated to authenticated state)
|
|
86
|
+
- No significant preconditions beyond normal attacker position
|
|
87
|
+
|
|
88
|
+
**Upgrade to CRITICAL when all three apply:**
|
|
89
|
+
- Achieves RCE, full authentication bypass, or mass data exfiltration
|
|
90
|
+
- Unauthenticated or exploitable by any low-privilege user
|
|
91
|
+
- Internet-facing or otherwise broadly reachable
|
|
92
|
+
|
|
93
|
+
**Downgrade signals (apply any that fit):**
|
|
94
|
+
- Requires local machine access or physical proximity
|
|
95
|
+
- Requires admin or operator-level privilege to trigger
|
|
96
|
+
- Requires non-default configuration to be vulnerable
|
|
97
|
+
- Impact is confined to the attacker's own session or data
|
|
98
|
+
- DoS-only with no confidentiality or integrity impact
|
|
99
|
+
- Requires chaining multiple individually-unexploitable issues
|
|
100
|
+
- Theoretical cryptographic weakness without a practical exploitation path
|
|
101
|
+
|
|
102
|
+
When in doubt, record `Severity-Original` and `Severity-Final` in the finding draft and document
|
|
103
|
+
the calibration reasoning.
|
|
104
|
+
|
|
105
|
+
**Low severity elimination**: if downgrade signals reduce a finding to Low severity, assign verdict
|
|
106
|
+
`DROP (low severity)` immediately and do not carry it forward. Low findings do not receive
|
|
107
|
+
adversarial validation, variant analysis, or a final report entry.
|
|
108
|
+
|
|
109
|
+
## Claude-Specific FP Awareness
|
|
110
|
+
|
|
111
|
+
Known patterns where Claude-family models produce false positives in security audits:
|
|
112
|
+
|
|
113
|
+
1. **Unsafe-looking code without path tracing**: flagging a dangerous function call without confirming attacker-controlled input reaches it
|
|
114
|
+
2. **Phantom validation bypass**: claiming validation is missing when it exists in a helper, middleware, or parent caller not immediately visible
|
|
115
|
+
3. **Framework protection blindness**: missing ORM parameterization, template auto-escaping, CSRF middleware, or other framework-level controls
|
|
116
|
+
4. **Same-origin confusion**: treating same-origin or same-session interactions as cross-trust-boundary attacks
|
|
117
|
+
5. **Dependency CVE without reachability**: reporting a CVE in a transitive dependency without confirming the vulnerable function is called with attacker input
|
|
118
|
+
6. **Config-as-vulnerability**: reporting insecure default config that is overridden in every realistic deployment or that requires admin access to set
|
|
119
|
+
7. **Test and example code**: flagging vulnerabilities in test fixtures, documentation examples, or dev-only scripts not shipped to production
|
|
120
|
+
8. **Double-counting**: reporting the same root cause under different surface manifestations as multiple distinct findings
|
|
121
|
+
|
|
122
|
+
For each finding, explicitly check whether it matches one of the above before assigning `VALID`.
|
|
123
|
+
|
|
124
|
+
## Bug Bounty Litmus Test
|
|
125
|
+
|
|
126
|
+
Five questions that must all be answered "yes" before submitting:
|
|
127
|
+
|
|
128
|
+
1. Can this be reproduced end-to-end in under 30 minutes by someone unfamiliar with the codebase?
|
|
129
|
+
2. Does successful exploitation result in a meaningful security impact (data exposure, privilege gain, account takeover, or equivalent)?
|
|
130
|
+
3. Is this unintended behavior — not a documented feature, accepted risk, or design decision?
|
|
131
|
+
4. Is this distinct from publicly known issues, recent patches, and issues already in the program's disclosure queue?
|
|
132
|
+
5. Can the impact be demonstrated concretely, without relying on hypothetical attacker capabilities or theoretical conditions?
|
|
133
|
+
|
|
134
|
+
If any answer is "no" or "uncertain", hold the finding and investigate further before submission.
|