github ethereum-optimism/optimism op-node/v1.19.11
op-node v1.19.11

6 hours ago

Overview

Important

This is a strongly recommended release for all op-node operators. It contains security fixes for the compromised eMudhra certificate authority (CVE-2026-111943) and other Go standard-library security fixes, a fix for the sequencer's L1 origin falling behind L1 on chains whose L2 block time is more than half the L1 block time (more than 6 seconds on Ethereum), support for beacon nodes that publish the slot duration only as SLOT_DURATION_MS, and a startup fix for L1 clients that have pruned history.

This release includes the changes tagged as op-node/v1.19.10, which was not published separately.

Other changes

Sequencer

  • On chains whose L2 block time is more than half the L1 block time, the sequencer's L1 origin now keeps pace with L1. Previously it advanced at most once every two L2 blocks, so on a 10-second chain it drifted back to the max sequencer drift, about 30 minutes behind the L1 head instead of the confirmation depth. That delayed deposits by about 30 minutes, left the L1 fee parameters in the L1 block info about 30 minutes stale, and made the batcher exceed max-channel-duration immediately and post many single-block batches. Chains with shorter block times are unaffected. With --sequencer.l1-confs=0, the fix costs at most one extra by-number L1 request per unsafe or safe head update; with a non-zero confirmation depth it costs none in steady state (#23279)

L1

  • op-node now reads the beacon slot duration from SLOT_DURATION_MS in the beacon node's /eth/v1/config/spec, falling back to SECONDS_PER_SLOT. It can therefore fetch blobs from beacon nodes that no longer serve SECONDS_PER_SLOT, which the consensus specs have replaced and which Teku already omits on some custom networks. Nothing changes with beacon nodes that serve either key. If neither key is served, op-node fails with an error naming both. --l1.beacon.slot-duration-override still takes precedence (#23138)

Bug fixes

  • op-node no longer fails to start with failed to get L1 genesis blockhash: pruned history unavailable when its L1 execution client has pruned the rollup's L1 genesis block and answers with the history-pruned JSON-RPC error 4444, as reth --minimal does. The L1 genesis hash check is now skipped with an L1 genesis block not available, skipping validity check warning, as it already was for clients that report the block as not found (#23331)

Security

  • The image is built with Go 1.26.10, up from 1.26.8. Go 1.26.10 makes crypto/x509 reject the compromised eMudhra intermediate certificates (CVE-2026-111943), and Go 1.26.9 includes security fixes to the crypto/tls, html/template, net/http, net/textproto and os packages (#23290, #23546)
  • The image's CA trust store (ca-certificates-bundle 20260909-r3) no longer includes the eMudhra emSign Root CA G3, C1 and C3 roots (#23566)

Full Changelog: op-node/v1.19.9...op-node/v1.19.11

🚢 Docker Image:

Don't miss a new optimism release

NewReleases is sending notifications on new releases.