● Zion Boggan
repos/Cyclops V2/vault/04-cleared-axes/README.md
zionboggan.com ↗
72 lines · markdown
History for this file →
1
# 04-cleared-axes - The Anti-Tunnel-Vision Memory
2
 
3
This is Cyclops v2's **breadth memory**. Every time an axis is screened and does not yield a
4
[[../00-doctrine/SEVERITY-GATE|gate-family]] finding, it is logged here - *before* moving on (the
5
[[../00-doctrine/OPERATING-CORE#4-the-anti-drift-rule-log-cleared-axes-rotate-archetypes|anti-drift rule]]).
6
The log exists so the agent:
7
 
8
1. **Never re-screens the same (target, archetype, axis)** - no re-walking cleared ground.
9
2. **Can prove it covered breadth**, not just depth on one tunnel - the v1 failure.
10
3. **Has somewhere to put low/medium hardening notes** so they never leak into a finding report (the
11
   [[../00-doctrine/SEVERITY-GATE|gate]] forbids off-path reports; this is where those observations go).
12
 
13
An entry here is **not** a failure. A clean **DISPROVEN** is a completed unit of work
14
([[../00-doctrine/OPERATING-CORE#5-disproven-is-a-success|DISPROVEN is a success]]).
15
 
16
---
17
 
18
## Entry format
19
 
20
One row per cleared axis. Append-only. Use this exact schema (markdown table or one file per target -
21
table is fine to start).
22
 
23
| Field | Meaning |
24
|---|---|
25
| `date` | ISO date the axis was cleared (YYYY-MM-DD). |
26
| `target` | The software + **pinned version/commit** (novelty depends on the exact tree). |
27
| `archetype` | Which [[../01-archetypes/electron-desktop|archetype lens]] was applied. |
28
| `axis` | The specific kill-chain / sink / hypothesis screened (be precise - name the sink/route). |
29
| `result` | `DISPROVEN` \| `SOURCE_CONFIRMED-stalled` \| `SIBLING-CVE` \| `HARDENING-NOTE` \| `OUT-OF-SCOPE`. |
30
| `oracle` | What was driven and what it returned (e.g. "ASan fuzz 6h, only null-deref DoS"; "no artifact"). |
31
| `reason` | *Why* it cleared - the guard found, the missing control, why no gate-family path. |
32
| `revisit` | A condition that would reopen it (e.g. "if new GGUF KV type lands", "if auth is disabled"), or `none`. |
33
 
34
### Result-code meanings
35
 
36
- **DISPROVEN** - drove the oracle, the impact did not materialize. The strongest clear. Permanently
37
  retired unless `revisit` fires.
38
- **SOURCE_CONFIRMED-stalled** - a real source→sink path exists but the oracle couldn't be driven yet
39
  (couldn't build a replica, needs a primitive we don't have). Parked, not dead.
40
- **SIBLING-CVE** - the candidate matched an existing public CVE/advisory (per
41
  [[../06-methods/NOVELTY-DOCTRINE#the-sibling-cve-gate-novel-vs-variant-run-before-deep-work|the sibling gate]]).
42
  Record the CVE id so we never re-investigate it.
43
- **HARDENING-NOTE** - a real low/medium issue (IDOR, missing header, verbose error, exposed-but-empty
44
  service) that is **below the gate** and therefore **not a finding**. Lives here, never in a report.
45
- **OUT-OF-SCOPE** - authorization/scope ruled it out per
46
  [[../00-doctrine/OPERATING-CORE#1-authorization-the-only-place-cyclops-is-allowed-to-point|the charter]].
47
 
48
---
49
 
50
## Example entries
51
 
52
```
53
| date       | target                         | archetype          | axis                                                        | result                  | oracle                                              | reason                                                                 | revisit                              |
54
|------------|--------------------------------|--------------------|-------------------------------------------------------------|-------------------------|-----------------------------------------------------|------------------------------------------------------------------------|--------------------------------------|
55
| 2026-06-11 | llama.cpp @a1b2c3d              | ml-model-loaders   | gguf_init_from_file KV-array length → memcpy heap overflow  | DISPROVEN               | AFL++ 8h + ASan; 3 crashes, all null-deref DoS      | length validated against file size at gguf.c:412 before alloc          | if a new KV array type is added      |
56
| 2026-06-11 | Obsidian v1.x (asar)           | electron-desktop   | markdown render XSS → contextBridge → child_process         | DISPROVEN               | crafted note in disposable VM, no callback          | contextIsolation on; bridge exposes no fs/exec method                  | if a plugin widens the bridge        |
57
| 2026-06-11 | Flowise @e4f5g6h                | ai-agent-mcp       | /api/v1 unauth route → code node RCE                        | SIBLING-CVE             | replicated public auth-bypass                       | matches CVE-2024-xxxxx, already fixed upstream                          | none                                 |
58
| 2026-06-11 | Grafana v11.x                  | devops-infra       | datasource proxy SSRF → IMDS                                | HARDENING-NOTE          | SSRF callback fired, IMDS blocked                   | reaches outbound but metadata egress filtered; bare SSRF below gate     | if deployed without egress filtering |
59
```
60
 
61
---
62
 
63
## Usage rules
64
 
65
- **Append before you rotate.** You may not move to the next archetype until the cleared axes of the
66
  current one are logged. The rotation requirement is enforced by this log existing.
67
- **Check before you screen.** At the start of any (target, archetype) pass, read existing entries for
68
  that target - if the axis is already DISPROVEN/SIBLING and `revisit` hasn't fired, skip it.
69
- **Pin versions.** A clear is only valid for the pinned commit; new code reopens the surface (that's
70
  [[../06-methods/NOVELTY-DOCTRINE#lever-1-hunt-freshly-released-code-the-time-arbitrage|Lever 1]]).
71
- **Hardening notes die here.** Resist the pull to "at least report the IDOR." The gate says no; the
72
  log is where it goes.