What and why
Found while writing ADR-0013 for #104; the finding is recorded there, the decision is not.
Hicks (50) reaches all of Winterfell (99) and all of ImaginationLAN (30), on every protocol and port. No rule grants that and no rule denies it. The Hicks interface blocks CasaBonita, Skids and Degens, and then passes to any:
block drop from vlan50 to vlan40
block drop from vlan50 to vlan20
block drop from vlan50 to vlan10
pass from vlan50 to any <-- 30 and 99 fall through to here
There is a narrow explicit rule above it — vlan50 → 10.0.99.1:22/tcp, Allow SSH to pfSense — which is what ADR-0002 and security.md described as the management path. It is real, and it is also redundant: the catch-all below grants far more than it does.
docs/network.md has recorded this correctly the whole time ("Reaches: Internet, 99, 30"). It was ADR-0002 ("exactly two inter-VLAN rules"), security.md ("Specific hosts on Hicks may reach Winterfell on management ports") and README.md ("three inter-VLAN rules, each directional and documented") that described a rule set narrower than the deployed one. ADR-0013 fixed the description. This issue is about the posture.
Why it matters more than the existing residual
SECURITY.md and ADR-0012 already accept that a compromised Hicks workstation reaching 10.0.99.20 can write to the metric and log stores without a credential, because Prometheus and Loki publish unauthenticated ingest ports for oracle's agent. That residual was scoped to one host and two ports.
The actual exposure is the whole segment: every host on Winterfell, every port, plus all of ImaginationLAN. ADR-0002 predicted the direction of this ("a compromised workstation reaches Winterfell") but the design was written as two narrow rules, and it is not implemented that way.
The decision
Not obviously "narrow it". Hicks is the only segment with a management path, and it exists so the estate can be administered. Narrowing means enumerating what a workstation legitimately needs — SSH to the firewall, the Grafana and Prometheus web UIs, Proxmox, the wiki, the iLO web UI, whatever else has accumulated — and getting that list wrong breaks management access and the lab in ways that are annoying to debug from a segment that can no longer reach anything.
Options, roughly:
- Accept and record it. Cheapest. Turns an undocumented posture into a documented one, which ADR-0013 has already half-done. The residual in
SECURITY.md would need widening from "one host, two ports" to "the whole segment".
- Block
50 → 99 and 50 → 30, then allow-list back. The default-deny posture the rest of the estate has. Highest confidence, most work, and the failure mode during rollout is losing management access.
- Block
50 → 99 only. Winterfell is where compromise is total; ImaginationLAN is explicitly the segment where broken things live, and ADR-0007 argues the lab is meant to be reachable from trusted workstations.
Option 3 is probably the shape, but the enumeration in option 2 is the work either way.
Worth doing first
Whatever is chosen, do it before #102 builds ADR-0008's sensitive tier — that adds 50→40 and 99→20, and adding rules to a segment whose posture is undecided is how the next four-documents-four-numbers situation starts.
Which VLAN does this touch
🟠 50 — Hicks (trusted), 🔴 99 — Winterfell (management), 🟢 30 — ImaginationLAN (lab)
What and why
Found while writing ADR-0013 for #104; the finding is recorded there, the decision is not.
Hicks (50) reaches all of Winterfell (99) and all of ImaginationLAN (30), on every protocol and port. No rule grants that and no rule denies it. The Hicks interface blocks CasaBonita, Skids and Degens, and then passes to
any:There is a narrow explicit rule above it —
vlan50 → 10.0.99.1:22/tcp, Allow SSH to pfSense — which is what ADR-0002 andsecurity.mddescribed as the management path. It is real, and it is also redundant: the catch-all below grants far more than it does.docs/network.mdhas recorded this correctly the whole time ("Reaches: Internet, 99, 30"). It was ADR-0002 ("exactly two inter-VLAN rules"),security.md("Specific hosts on Hicks may reach Winterfell on management ports") andREADME.md("three inter-VLAN rules, each directional and documented") that described a rule set narrower than the deployed one. ADR-0013 fixed the description. This issue is about the posture.Why it matters more than the existing residual
SECURITY.mdand ADR-0012 already accept that a compromised Hicks workstation reaching10.0.99.20can write to the metric and log stores without a credential, because Prometheus and Loki publish unauthenticated ingest ports fororacle's agent. That residual was scoped to one host and two ports.The actual exposure is the whole segment: every host on Winterfell, every port, plus all of ImaginationLAN. ADR-0002 predicted the direction of this ("a compromised workstation reaches Winterfell") but the design was written as two narrow rules, and it is not implemented that way.
The decision
Not obviously "narrow it". Hicks is the only segment with a management path, and it exists so the estate can be administered. Narrowing means enumerating what a workstation legitimately needs — SSH to the firewall, the Grafana and Prometheus web UIs, Proxmox, the wiki, the iLO web UI, whatever else has accumulated — and getting that list wrong breaks management access and the lab in ways that are annoying to debug from a segment that can no longer reach anything.
Options, roughly:
SECURITY.mdwould need widening from "one host, two ports" to "the whole segment".50 → 99and50 → 30, then allow-list back. The default-deny posture the rest of the estate has. Highest confidence, most work, and the failure mode during rollout is losing management access.50 → 99only. Winterfell is where compromise is total; ImaginationLAN is explicitly the segment where broken things live, and ADR-0007 argues the lab is meant to be reachable from trusted workstations.Option 3 is probably the shape, but the enumeration in option 2 is the work either way.
Worth doing first
Whatever is chosen, do it before #102 builds ADR-0008's sensitive tier — that adds
50→40and99→20, and adding rules to a segment whose posture is undecided is how the next four-documents-four-numbers situation starts.Which VLAN does this touch
🟠 50 — Hicks (trusted), 🔴 99 — Winterfell (management), 🟢 30 — ImaginationLAN (lab)