Skip to content

Resolve W3BS as a separate configured Moshpit instance - #146

Merged
ralyodio merged 1 commit into
masterfrom
fix/w3bs-instance-dns
Oct 31, 2026
Merged

ralyodio merged 1 commit into
masterfrom
fix/w3bs-instance-dns

Conversation

@ralyodio

Copy link
Copy Markdown
Collaborator

The running Moshpit DNS bridge only queried the primary registry, so an active W3BS name under dumb.fuck.w3bs.org fell through to public parking. Add explicit instance realm configuration and a W3BS default: query its own name and DNS-record APIs, keep bare primary-network names separate, and route active instance names to their gateway or custom AAAA/CNAME/MX/TXT records. Instance authority applies before public parking in that configured realm. Suspended names return NXDOMAIN and instance outages SERVFAIL; no ownership is imported into the primary registry. Bound CNAME recursion and coalesce/cache instance reads.

Validation: 293 tests passed, including 67 DNS tests; TypeScript passed. Regression covers gateway resolution over a parked public answer, realm/registry isolation, custom AAAA/MX/multibyte TXT/CNAME, suspension, instance outage and CNAME loops. Existing primary resolver behavior remains covered. Public registrar DNS and trusted HTTPS certificates remain separate deployment gates.

Deployment note: dev2's DNS service runs an unversioned snapshot in /home/anthony/moshpit-dns. Apply the narrow server/entrypoint patch after context checks and back up the snapshot; preserve its unrelated server changes.

Signed-off-by: Anthony Ettinger <anthony@chovy.com>
@github-actions

Copy link
Copy Markdown

ThreatCrush Security Scan

31 finding(s)

HIGH/CRITICAL: 3 | MEDIUM: 26 | LOW: 2

Severity Rule Location
HIGH sh-remote-script-execution public/install.sh:302
HIGH sh-remote-script-execution public/install.sh:305
HIGH js-ssrf-outbound-request public/sw.js:5
MEDIUM js-open-redirect app/dashboard/[[...tab]]/page.tsx:67
MEDIUM js-open-redirect app/signup/page.tsx:51
MEDIUM js-unescaped-html-sink components/PitFooter.tsx:30
MEDIUM js-open-redirect components/PitSearch.tsx:118
MEDIUM js-unescaped-html-sink components/Tenant.tsx:29
MEDIUM js-unescaped-html-sink components/Tenant.tsx:30
MEDIUM js-unescaped-html-sink components/Tenant.tsx:78
MEDIUM js-unescaped-html-sink components/Tenant.tsx:150
MEDIUM sql-template-interpolation lib/db.ts:590
MEDIUM sql-template-interpolation lib/db.ts:1308
MEDIUM redos-nested-quantifier lib/markdown.ts:109
MEDIUM sql-template-interpolation lib/webhook-store.ts:95
MEDIUM sql-template-interpolation lib/webhook-store.ts:102
MEDIUM sql-template-interpolation lib/webhook-store.ts:108
MEDIUM sql-template-interpolation lib/webhook-store.ts:111
MEDIUM sql-template-interpolation lib/webhook-store.ts:116
MEDIUM sql-template-interpolation lib/webhook-store.ts:117
MEDIUM sql-template-interpolation lib/webhook-store.ts:121
MEDIUM sql-template-interpolation lib/webhook-store.ts:128
MEDIUM sql-template-interpolation lib/webhook-store.ts:133
MEDIUM sql-template-interpolation lib/webhook-store.ts:144
MEDIUM sql-template-interpolation lib/webhook-store.ts:154
MEDIUM sql-template-interpolation lib/webhooks.ts:207
MEDIUM sh-remote-script-execution public/install.sh:123
MEDIUM sh-remote-script-execution public/install.sh:127
MEDIUM sh-remote-script-execution public/install.sh:146
LOW secret-generic-credential tests/signup-profile.test.mjs:28
LOW secret-generic-credential tests/signup-profile.test.mjs:39

Snippets are redacted; ThreatCrush never prints matched credential material.

@ralyodio
ralyodio merged commit 694846b into master Oct 31, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant