test(security): prove the guest-loopback nftables rule on a provider_authority_host
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 35/100
Research direction
Read docs/operating/runbooks/image-lifecycle.md and ADR-0810, then provision a lab host with the provider_authority_host role and run an egress System with the documented nftables rule keyed to the authority account's QEMU uid. Record whether the rule blocks the guest connection to 10.0.2.2 and whether authority readiness and provision/teardown still work; redact host names and addresses. If service behavior changes, update the runbook and ADR-0810 with the result.
Written by the indexing model from the issue text.
Description
Problem
The rule that rejects new loopback connections from QEMU's uid (table inet kdive_guest_loopback) is documented as tested on the local-libvirt lanes only. Whether it is safe on a remote authority host, where one account owns both the session libvirt daemon and the authority service, is unproven; the runbook tells operators not to assume it.
Evidence
- docs/operating/runbooks/image-lifecycle.md:362-364: "An authority host ... is unproven because no lab host carries
provider_authority_host. Do not assume the rule is safe on either." - docs/adr/0810-guest-egress-host-loopback-exposure-is-accepted-and-documented.md:191-194: "Remote authority: unproven ... whether the service has a loopback dependency was not checked, so the rule's effect there is unknown." Operator accepted the limit on 2026-11-04.
- ADR-0810:145-147: the single account
kdive-provider-authoritywas read from deploy/ansible/roles/provider_authority_host, not from a running host.
Expected
A recorded result on a host provisioned with the provider_authority_host role: whether the keyed rule (a) blocks a guest connection to 10.0.2.2:<host loopback port>, and (b) leaves the authority service, its readiness and its provision/teardown path working, given that QEMU and the service share one uid.
Proposed approach
Provision one lab host with the role, run an egress System, load the documented rule keyed to the authority account's QEMU uid, and record the outcomes. Expect (b) to fail if the service uses loopback; if so, record the refusal and amend the runbook sentence from "unproven" to "not usable here", with an ADR-0810 amendment. Host-level proof; no code change expected. Redact host names and addresses.
Provenance
Follow-up from campaign 4c2c8dc9e59d-7f9a87f5-2251-458a-bb30-04fbb2d4b05c. Source: ADR-0810 #3514 amendment (2026-11-04).
- Dominant language
- Python
- Stars
- 0
- Forks
- 0
- Avg merge
- 9h 13m
- Merged PRs (30d)
- 197
Getting set up
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from randomparity/kdive
-
area:core-platform effort:S priority:P3 risk:night-safe status:ready type:test
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
randomparity/kdive#3620 ·
Maintainers usually reply within 1 day
-
area:providers effort:S priority:P3 risk:night-watch status:ready type:docs
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
randomparity/kdive#3618 ·
Maintainers usually reply within 1 day
-
area:core-platform effort:S priority:P3 risk:night-safe status:ready type:test
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
randomparity/kdive#3603 ·
Maintainers usually reply within 1 day
-
area:providers effort:S priority:P3 risk:night-safe status:ready type:docs
Difficulty 1/5 1-3 hours Newbie friendliness 82/100
randomparity/kdive#3593 ·
Maintainers usually reply within 1 day
-
area:providers effort:S priority:P3 risk:night-safe status:ready type:refactor
Difficulty 1/5 Under an hour Newbie friendliness 84/100
randomparity/kdive#3592 ·
Maintainers usually reply within 1 day
All issues in randomparity/kdive
Similar issues
-
fleet size/m
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
sipyourdrink-ltd/bernstein#7548 ·
Maintainers usually reply within 1 day
-
good first issue help wanted level 1 wocs
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
GianlucaBave/murmury#73 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
G-nn-r/lg_heatpump#52 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
agno-agi/agno#11657 · 1 comment ·
Maintainers usually reply within 1 day
-
category:codebase:gpi category:codebase:handle type:bug
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
Maintainers usually reply within 1 day