Proof Portal
jsonparser
ProbeLabs36 findings · 123 requirementsSet on top-level array-index beyond length returns KeyPathNotFoundError (SYS-REQ-110 contract gap)
Introduced
When and where this issue first entered the codebase — the commit it traces back to.
Affected requirements
The requirement(s) this issue violates — click through to the spec.
Severity, explained
Why this is rated the way it is — and the scoring signals behind the rating (each ⓘ explains the term).
- risk area
- Data Integrity
Root cause
What actually went wrong underneath — and how it is classified.
parser.go:Set, endOffset==-1 branch: the code path for "path not found at all" only handles (pathIsIndex && dataIsObject) and (pathIsObjectKey && dataIsArray) cross-type coercions; the matching (pathIsIndex && dataIsArray) case is explicitly rejected with KeyPathNotFoundError. SYS-REQ-110 does not carve out this exception, so it is a spec/code divergence that requires either narrowing the spec or extending Set.
Proof it's fixed
The tests, tightened requirements and new obligations that prove this defect is gone — and can't quietly return.
Covered by a known issue.
Blast radius
If you touch this issue, what else may need re-checking — the requirements it affects and the code and tests that hang off them.
Touch this finding and you re-check 1 requirements · 2 code files · 7 tests.
- append.go
- parser.go
- append_test.go
- fuzz_native_test.go
- mcdc_supplement_test.go
- parser_test.go
- reference_oracle_test.go
- set_spec_test.go
- sys_req_110_111_witness_test.go
Per-requirement evidence
For each requirement this finding touches: the implementing code, verifying tests, and proof obligations that discharge it.
Per-requirement evidence
For each requirement this finding touches: the implementing code, verifying tests, and proof obligations that discharge it.
Discussions
Discuss this with the proof team. Nothing changes in your audit automatically — you open a request and a staff member records any outcome inside the thread.