You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Prevent users from redirecting a network to another network’s private DNS #702
The description now explains the problem and expected outcome in plain language. The original report is preserved below for the observations, diagnostics, and implementation details behind this work. It describes the situation when the issue was reported; later comments and the issue state record subsequent progress.
A project member who can edit a network context can still change the internal DNS annotations on it. Those annotations decide which DNS view the network is routed to and which binding readiness is checked against, so editing them could point one network at another network's private DNS.
The DNS settings on the context are now protected by an admission policy (feat: Restrict who can change network DNS settings). The annotations need the same protection, and the cell should also check that the destination matches what DNS accepted for the context instead of trusting the annotation alone.
Both are needed before internal DNS is enabled outside staging.
changed the title [-]Protect the internal DNS annotations on network contexts[/-][+]Prevent users from redirecting a network to another network’s private DNS[/+]on Oct 29, 2026
Only the operator can change a network context's DNS settings, its internal DNS annotations, or the network and location it belongs to. The admission policy enforces this, and it now ships with the operator and is installed in the control plane.
Before DNS settings leave the project, the operator checks them against the access DNS accepted for that network. An unverified or incomplete set never reaches the copy cells program from, and a held copy is checked again and withdrawn once the access it names is gone. A DNS outage doesn't withdraw working access.
Resolver settings reach guests only once the project and the verified copy agree.
Verified in staging after each merge: no operator write was refused, no partial or unverified settings remained, and DNS readiness was unchanged.
Activity
scotwells commentedon Oct 29, 2026
The description now explains the problem and expected outcome in plain language. The original report is preserved below for the observations, diagnostics, and implementation details behind this work. It describes the situation when the issue was reported; later comments and the issue state record subsequent progress.
Original report and engineering evidence
Requested by Scot Schuchert-Wells · project thread
A project member who can edit a network context can still change the internal DNS annotations on it. Those annotations decide which DNS view the network is routed to and which binding readiness is checked against, so editing them could point one network at another network's private DNS.
The DNS settings on the context are now protected by an admission policy (feat: Restrict who can change network DNS settings). The annotations need the same protection, and the cell should also check that the destination matches what DNS accepted for the context instead of trusting the annotation alone.
Both are needed before internal DNS is enabled outside staging.
Related to Internal DNS for networks: unenforced writes, broad permissions, branch pin
Generated by Claude Code
[-]Protect the internal DNS annotations on network contexts[/-][+]Prevent users from redirecting a network to another network’s private DNS[/+]scotwells commentedon Nov 5, 2026
Done in #859, #864 and #866.
Verified in staging after each merge: no operator write was refused, no partial or unverified settings remained, and DNS readiness was unchanged.