Skip to content

Restrict web3signer host allowlist (bring #71 into main) - #75

Merged
Marketen merged 5 commits into
mainfrom
marc/fix-mainnet-migration
Oct 27, 2026
Merged

Marketen merged 5 commits into
mainfrom
marc/fix-mainnet-migration

Conversation

@Marketen

Copy link
Copy Markdown
Contributor

#71 was stacked on #70's branch and merged into marc/fix-mainnet-migration after #70 had already merged into main, so its changes never reached main. This PR brings them over. The diff is exactly #71:

  • services/web3signer/entrypoint.sh:
    • --http-host-allowlist lists every hostname Docker and the DAppManager assign to the web3signer container, instead of *;
    • whitespace is stripped from EXTRA_HOST_ALLOWLIST.
  • docker-compose.yml: adds EXTRA_HOST_ALLOWLIST: "" to the web3signer service.

See #71 for the full allowlist, its callers and the validation. Merges cleanly with main, and with #74 (web3signer 26.10.2) in a dry run.

Release note to include: if something reaches web3signer by IP address or a custom hostname (for example a remote validator client), add it to EXTRA_HOST_ALLOWLIST in the package config. Otherwise web3signer answers 403 Host not authorized.

🤖 Generated with Claude Code

Marketen and others added 5 commits October 26, 2026 12:11
Replace --http-host-allowlist=* with the hostnames DAppNode packages and
the DAppManager actually use to reach web3signer, so the unauthenticated
keymanager API stays protected against DNS rebinding from browsers on the
DAppNode VPN/Wi-Fi. Users can append hosts (or "*") through the new
EXTRA_HOST_ALLOWLIST env var.

The list is a superset of the one gnosis/lukso/hoodi already run with.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Checked against a live DAppNode (DAppManager 0.2.129): besides the
stakers-module aliases the container also gets the bare service name,
<domain>.private, web3signer.<domain>.private and its container name.
No known caller uses them, but they are internal names, so allowing
them costs nothing and avoids 403s for tooling that does.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The web3signer flags are passed word-split, so "a.example, b.example"
made web3signer fail to start ("Unmatched argument at index 4:
'b.example'"). A typo in the package config must not stop the signer.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Restrict web3signer host allowlist to known DAppNode callers
@Marketen
Marketen merged commit 6ba1daf into main Oct 27, 2026
3 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