Skip to content

docs(site): stop the external-CL steps handing out 0.0.0.0 - #23086

Merged
AskAlexSharov merged 2 commits into
release/3.5from
docs/fix-external-cl-authrpc-bind
Aug 7, 2026
Merged

docs(site): stop the external-CL steps handing out 0.0.0.0#23086
AskAlexSharov merged 2 commits into
release/3.5from
docs/fix-external-cl-authrpc-bind

Conversation

@bloxster

@bloxster bloxster commented Aug 7, 2026

Copy link
Copy Markdown
Collaborator

The problem is live on docs.erigon.tech

#23023 added a security warning to the external-CL pages telling readers to prefer --authrpc.addr <this-host-LAN-IP> over 0.0.0.0 — but left the copy/paste step directly above it still handing out 0.0.0.0.

So the page contradicts itself, and the unsafe branch is the easier one to follow: a reader working through the numbered steps gets the broad bind on every interface, and only someone who also reads the admonition below learns not to. This branch is the one that publishes, so it is what users see today.

* `--authrpc.addr 0.0.0.0`, since the Engine API listens on localhost by default;   ← step
...
* prefer the specific interface — `--authrpc.addr <this-host-LAN-IP>` — over        ← warning
  `0.0.0.0`, which listens on every interface including any public one;

Why it matters: the Engine API drives block processing, so anything that can reach it and holds the JWT secret controls the node. 0.0.0.0 binds every interface, including a public one if the host has it.

The fix

The step now hands out the LAN-IP form and points at the warning before 0.0.0.0 is mentioned at all:

* `--authrpc.addr <this-host-LAN-IP>` — the Engine API listens on localhost by
  default, so it has to be widened for a remote CL. Read the warning below
  before reaching for `0.0.0.0`;

Applies to both affected pages — Ethereum and Gnosis external-CL.

Provenance

Found by Copilot on the forward-port PRs #23084 (main) and #23085 (release/3.6), which carry the same content. Both already have this fix, so they will not reintroduce it — but the defect originates here, on the published branch, which is why it needs its own PR rather than riding along with a port.

Note that main and release/3.6 currently have the 0.0.0.0 step with no warning at all; the ports add the warning and the corrected step together.

Verification

  • python3 docs/site/scripts/generate-llms.py --check → OK, 4 files, 74 pages
  • npm run build → clean

🤖 Generated with Claude Code

#23023 added a security warning telling readers to prefer
`--authrpc.addr <this-host-LAN-IP>` over `0.0.0.0`, but left the copy/paste step
above it still handing out `0.0.0.0`. So the page contradicts itself, and the
unsafe branch is the one that is easier to follow: a reader working through the
numbered steps gets the broad bind, and only someone who also reads the warning
learns not to.

This is live on docs.erigon.tech, since this is the branch that publishes.

The step now gives the LAN-IP form and points at the warning before mentioning
0.0.0.0 at all. Affects the Ethereum and Gnosis external-CL pages.

Found by Copilot on the forward-port PRs (#23084 / #23085), which carry the same
content; both already have this fix so they do not reintroduce it.

Verified: generate-llms.py --check OK (4 files, 74 pages), build clean.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Copilot review on #23084: with `--nat=extip:${EXTERNAL_IP}`, Docker Compose
substitutes an empty string when EXTERNAL_IP is unset, so the container starts
with `--nat=extip:` and Erigon exits on an invalid NAT option. The prose does
say to set it or drop both lines, but a reader who copies the file and forgets
gets a confusing runtime failure instead of a clear one.

Switched to Compose's required-variable form, so the failure happens before the
container starts and explains itself:

  --nat=extip:${EXTERNAL_IP:?set EXTERNAL_IP to this host's public IP, or delete
  these two lines to run outbound-only}

Four occurrences across the Ethereum and Gnosis easy-node pages (a --nat and a
--caplin.nat in each).

Applies here because #23023 introduced these snippets on this branch, so the
behaviour is already live on docs.erigon.tech. main and release/3.6 do not have
them yet — the forward-port PRs (#23084 / #23085) carry this fix with them.

Verified: generate-llms.py --check OK (74 pages), build clean.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
bloxster pushed a commit that referenced this pull request Aug 7, 2026
Copilot review: `--nat=extip:${EXTERNAL_IP}` lets Docker Compose substitute an
empty string when EXTERNAL_IP is unset, so Erigon starts with `--nat=extip:` and
exits on an invalid NAT option. Compose's required-variable form makes the
failure immediate and self-explanatory instead.

Four occurrences across the Ethereum and Gnosis easy-node pages. This branch
introduces these snippets here, so the fix ships with them rather than landing
as a follow-up. Also fixed on release/3.5 (#23086), where they are already live.

Verified: generate-llms.py --check OK, build clean.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
bloxster pushed a commit that referenced this pull request Aug 7, 2026
Copilot review: `--nat=extip:${EXTERNAL_IP}` lets Docker Compose substitute an
empty string when EXTERNAL_IP is unset, so Erigon starts with `--nat=extip:` and
exits on an invalid NAT option. Compose's required-variable form makes the
failure immediate and self-explanatory instead.

Four occurrences across the Ethereum and Gnosis easy-node pages. This branch
introduces these snippets here, so the fix ships with them rather than landing
as a follow-up. Also fixed on release/3.5 (#23086), where they are already live.

Verified: generate-llms.py --check OK, build clean.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@yperbasis
yperbasis requested review from domiwei and lystopad August 7, 2026 10:30
@AskAlexSharov
AskAlexSharov added this pull request to the merge queue Aug 7, 2026
Merged via the queue into release/3.5 with commit d6d373b Aug 7, 2026
20 checks passed
@AskAlexSharov
AskAlexSharov deleted the docs/fix-external-cl-authrpc-bind branch August 7, 2026 13:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants