The row
- Ask does the KI exist and sit at medium
- Stamp KI-S1.yaml is present, title names SSRF, cve_surface none, no CVSS
- Why the security lens reads cve_surface; a name is not a surface
Topic · security relevance consistent
Gist
Security relevance consistent is whether an active KnownIssue named or classified as SSRF, exfil, credential, auth-override, IDOR, cross-tenant, or secret still carries a CVSS vector that parses and a non-none cve_surface, unless a reviewer stamped security_relevance_justification. Proof runs proof audit --check security_relevance_consistent. Jama still authors.
proof audit --check security_relevance_consistent
Keep the GitHub security advisory if the tracker already owns it. Keep Jama if it already authors the shall. Neither one writes the vector or the surface.
01 · The silent security-named KI
cve_surface: none drops out of every security lens.Presence of the finding is not this hop. This hop is whether a security name still has a security signal.
The check is default-on, warning, verify stage. It walks every active KnownIssue (open / reviewed). A KI whose status is fixed or withdrawn leaves the active set, so it is never flagged. Load failure is a fail. Zero security-named KnownIssues is a pass that inspected nothing of this kind.
Proof derives "security-relevant" from cve_surface. A finding whose name is SSRF, credential exfil, or auth-override, filed with cve_surface: none (or unset) and no CVSS vector, is invisible to every security audit even though the name is a security claim. No other hop reads the naming fields for those tokens. That is the hole.
id: KI-S1 title: Unauthenticated SSRF via webhook URL status: open severity: medium cve_surface: none
The haystack is id, title, risk, and defect_class, lowercased, with underscores and spaces folded to hyphens. The tokens are ssrf, exfil, credential, auth-override, idor, cross-tenant, and secret. Description is not in the haystack. A sentence that reasons the finding is not SSRF still uses the word. Matching that sentence taught authors to stop writing the assessment. On the reference corpus, 24 of 38 records the old haystack called security-named matched only in prose. The hop reads the name, not the argument.
Known issue security remediation present
asks whether a security-relevant KI has a containment field. It already treats a token in the name as security-relevant. Completeness only asks containment of a high-stakes KI. Neither hop asks whether the name still has a vector and a non-none surface. KI-S1 can sit in .proof/known-issues/ named SSRF, surface none, no vector, and the other hops stay green. That is the silent security-named case.
proof known-issue edit KI-S1 --cvss CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N --set-cve-surface possible proof audit --check security_relevance_consistent
Both signals must be present, or a reviewer-stamped security_relevance_justification must record why not. Stamped means both reviewer and rationale are non-empty. An anonymous note is not a waiver. An unparseable CVSS string is a gap, same as a missing one. Filing the KI as fixed to silence a still-open security name is not a close. Deleting the YAML also silences the hop. It destroys the finding rather than putting it on the security lens.
02 · The exhibit
Open finding, named SSRF, surface none, no vector. Click the tabs.
The row
This hop
Nobody asked whether a security-named finding still has a vector and a non-none surface. Completeness already passed. The warning is this hop.
No stampThe row
Keep the GitHub advisory. Keep the Jama field. That is not this hop.
Keep the recordProof
Same KI-S1. Silent security-named, or this hop. Click the tabs.
| Surface | What they do | What Proof does | What we lose |
|---|---|---|---|
| Known issue security remediation present | Warning. Whether a security-relevant KI has a containment field. | Warning. Whether a security-named KI still has a vector and a non-none surface. | Not the containment hop. See known issue security remediation present. |
| Known issue complete | Warning. Whether the record has evidence and an origin. Remediation only on high-stakes. | Warning. Whether the name still has security signals. | Not the completeness hop. See known issue complete. |
| CVSS severity band | Ads cvss severity is the qualitative score page if it ranks. |
A parse of the vector on this KI, only to ask whether one exists. | Not the under-label hop. That is a different check. We have not frozen a FIRST pack. |
| GitHub security advisory | A tracker advisory the board already owns. | A YAML field the audit can warn next to the KI. It does not fetch the advisory. | Not a ticket workflow. We have not frozen a GitHub pack. |
| Jama field | The authoring programme. Attributes if you put them there. | A YAML object the audit can warn next to the shall. | Not Jama's V&V. Jama still authors. We have not run a frozen Jama pack. |
The teaching graph is still one active security-named KI next to an empty surface. Read the name. Then attach the signals, or stamp a waiver with a name.
proof known-issue edit KI-S1 --cvss CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N --set-cve-surface possible
The other honest exit is a reviewer-owned justification. Both fields must be non-empty:
security_relevance_justification: reviewer: leonid rationale: token match is the product name SecretStore, not a secret leak
Containment stays on known issue security remediation present. Completeness stays on known issue complete. High-severity reachability stays on high severity reproducer grade. Do not treat a FIRST CVSS explainer as this cell. Jama still authors. Proof vs Jama.
03 · The honest loss
A green security_relevance_consistent can still mean there were no security-named KnownIssues. The hop is a warning. Jama still authors.
Warning severity. A counted finding does not block the audit. The hop does not fetch the tracker URL, re-run a PoC, or confirm the security claim is true. It does not grade the CVSS band against the holistic severity label. That under-label direction is a different check. It does not read description: a token that only appears in the argument never qualifies. A KI whose title is clean is out of scope even if the prose discusses SSRF. Zero security-named KnownIssues is a pass that inspected nothing of this kind. Load failure is a fail. A whitespace-only vector is empty. An unparseable vector is a gap. A justification with no reviewer is not stamped. A warning is not a waiver: proof waive is a human authorization gate. The hop does not prove the Go. We have not scored this floor against a frozen Jama pack, a GitHub advisory export, or a FIRST CVSS pack. The loss is named, not scored.
The containment hop stays on known issue security remediation present. The completeness hop stays on known issue complete. The engagement stays on software correctness audit. Jama still authors.
04 · Nearby questions
What is security relevance consistent? Same question. Same URL.
Is this known issue security remediation present? No. That hop is whether a security-relevant KI has a containment field. This hop is whether a security-named KI still has a vector and a non-none surface. See known issue security remediation present.
Is this known issue complete? No. That hop is whether the record has evidence and an origin. This hop is the security signals on a named finding. See known issue complete.
Is this high severity reproducer grade? No. That hop is whether a high-stakes KI has a reproducer that meets the grade. This hop does not run a PoC. See high severity reproducer grade.
Does a token in the description fire? No. The haystack is id, title, risk, and defect_class. Description is the argument, not the name.
Does a green hop prove the Go? No. The hop does not run the PoC. It does not fetch the tracker. It does not prove the function.
Is Proof a Jama alternative for the shall? No. Jama still authors. Proof vs Jama.