SPARTAN Evidence Capsule — Reviewer Report

Capsule path
evidence.tar.gz
Schema
spartan.evidence_capsule.v0.1
Source run
run_2026-05-04T04-36-01.158Z_60156b4c
Capsule ID
6409463f0c788d8c5602b280bd7405fd1ee0080a8233c26caa72bfa6e7dbd4e7
Created
2026-05-04T04:36:17.868Z
SPARTAN version
1.2.0-higgs
Redaction policy
v1

Verification summary

Outcomes reported by spartan capsule verify against this capsule. SIGNATURE and REPLAY are reserved vocabulary and always report NOT_PRESENT in v0.1.

LevelOutcomeDetails
STRUCTURE PASS
REDACTION PASS
AUDIT_DIGEST PASS
  • expected_root_hash=5f7de1c5fba1e6f9db0a66169f9d574d8b2eca815f98288b75e4587a2d9eec28
SIGNATURE NOT_PRESENT
REPLAY NOT_PRESENT

What was scanned

Distilled from the capsule's summary.json. All values have already passed through SPARTAN's redaction engine and the post-build residue scan.

FieldValue
Repo identifier (redacted)examples/demo-repo
Commit refsnapshot:demo-repo-v1
Commit shab42163c792cb51a8cc6ea778fad6bc267269ed6c
ModeVALIDATE_SAFE
Working tree statusDIRTY
Working tree dirtytrue
Pinned snapshot id52b79eb432526addceb45330a6be6ffb8a2c445fd71b67c69cae236452c11d6b
Input corpus hash725fd587d4039b4318f8850e4c2719f6f2833ec705344c60e4400cfb7741406e
Intake policy hasha541d4a294d4abfd7a33b3fdb50e7c48d087164de0a3d8a2a18d69168b1a7d00
Validator bundle hash2f968ff52f5743f30815a7dbd4c11bcc168a878d7208090f23793f871e795c95
Timestamp2026-05-04T04:36:01.158Z
v2 run id019df145-9006-747c-846b-db1148bfe52a
CI parity kindUNKNOWN
Validate audit event refaudit_d4ccb5b6e0f0

Findings

11 finding(s). By evidence tier: ANALYST_HYPOTHESIS=9, EVIDENCE_BACKED=2. By risk class: CRITICAL=1, HIGH=10.

Finding IDTypeEvidence tierRisk classFile pathsReasoning
finding_6f836709847f hardcoded_secrets EVIDENCE_BACKED CRITICAL src/app.ts Deterministic secret detector confirmed a redacted secret marker in executable code at src/app.ts:6.
finding_5d970445aef7 vulnerable_dependencies EVIDENCE_BACKED HIGH package.json Dependency manifest entry lodash@4.17.20 falls inside the local demonstration vulnerable range < 4.17.21.
finding_626ec6aa0ed5 unsafe_deserialization_patterns ANALYST_HYPOTHESIS HIGH src/server.py Static rule hit found yaml.load at src/server.py:12, and the corresponding module import confirms an unsafe deserialization pattern in pinned source.
finding_8da1796b4962 missing_auth_on_declared_routes ANALYST_HYPOTHESIS HIGH src/app.ts Declared route <REDACTED:ABSOLUTE_PATH>:id is unprotected and the file contains no auth signals, so SPARTAN cannot find any route-level protection cues in the same module.
finding_1d0c68f0ec53 missing_auth_on_declared_routes ANALYST_HYPOTHESIS HIGH src/app.ts Declared route <REDACTED:ABSOLUTE_PATH>:name is unprotected and the file contains no auth signals, so SPARTAN cannot find any route-level protection cues in the same module.
finding_17fe99ca832e missing_auth_on_declared_routes ANALYST_HYPOTHESIS HIGH src/server.py Declared route <REDACTED:ABSOLUTE_PATH> is unprotected and the file contains no auth signals, so SPARTAN cannot find any route-level protection cues in the same module.
finding_781289d0a1ae missing_auth_on_declared_routes ANALYST_HYPOTHESIS HIGH src/server.py Declared route <REDACTED:ABSOLUTE_PATH><report_id> is unprotected and the file contains no auth signals, so SPARTAN cannot find any route-level protection cues in the same module.
finding_f81e4795845f missing_auth_on_declared_routes ANALYST_HYPOTHESIS HIGH src/server.py Declared route <REDACTED:ABSOLUTE_PATH><filename> is unprotected and the file contains no auth signals, so SPARTAN cannot find any route-level protection cues in the same module.
finding_4ea7beb87904 sql_string_interpolation ANALYST_HYPOTHESIS HIGH src/server.py Deterministic AST scan found interpolated SQL flowing into cursor.execute at src/server.py:21.
finding_44a9d33b1c31 path_traversal_patterns ANALYST_HYPOTHESIS HIGH src/server.py Static source-to-sink scan found filename flowing into os.path.join -> open at src/server.py:33 without an allowlisted sanitization step.
finding_86b3f17afeae path_traversal_patterns ANALYST_HYPOTHESIS HIGH src/server.py Static source-to-sink scan found filename flowing into os.path.join at src/server.py:33 without an allowlisted sanitization step.

Redaction report

Redaction policy version: v1. Patterns applied: HOME_PATH, TEMP_PATH, ABSOLUTE_PATH, USERNAME, HOSTNAME, GIT_REMOTE.

Redaction counts

PatternCount
HOME_PATH11
TEMP_PATH0
ABSOLUTE_PATH15
USERNAME0
HOSTNAME0
GIT_REMOTE0

Fields excluded from the capsule

Residue scan

Status: OK. Files checked: manifest.json, summary.json, findings.json, redaction_report.json, audit_digest.json.

Audit digest

Algorithm
sha256
Source run
run_2026-05-04T04-36-01.158Z_60156b4c
Event count
1
Digest root hash
5f7de1c5fba1e6f9db0a66169f9d574d8b2eca815f98288b75e4587a2d9eec28
Event IDTimestampToolMode
audit_d4ccb5b6e0f02026-05-04T04:36:01.173ZvalidateVALIDATE_SAFE

The audit digest covers only events referenced by this run. It is not a global ledger replay; it is a local consistency proof against the events the capsule carries.

Explicit non-claims

Reviewer next steps

Known limitations (from docs/spartan/SPARTAN_CAPSULE_V0_1_REVIEWER_BRIEF.md)