Skip to content

Hardening: clean up TlsTransportPlugin and surface unverified peers#8516

Merged
rzo1 merged 1 commit intomasterfrom
hardening-tls-transport-plugin
Apr 13, 2026
Merged

Hardening: clean up TlsTransportPlugin and surface unverified peers#8516
rzo1 merged 1 commit intomasterfrom
hardening-tls-transport-plugin

Conversation

@rzo1
Copy link
Copy Markdown
Contributor

@rzo1 rzo1 commented Apr 13, 2026

Three small cleanups in TlsTransportPlugin, none of which change runtime behavior on the live path:

  • Extract "CN=ANONYMOUS" into an ANONYMOUS_PRINCIPAL_NAME constant so it can be grepped for when auditing authorizer rules.
  • Raise the SSLPeerUnverifiedException log from debug to warn. The branch is only reachable when client auth is disabled at the transport layer (nimbus/supervisor.thrift.tls.client.auth.required = false), but when it does fire it is worth seeing in production logs.
  • Remove the dead TSSLTransportParameters wiring in getServer(). The params object was built with keystore/truststore settings and requireClientAuth(true), but never passed to ReloadableTsslTransportFactory.getServerSocket — the real SSL context is built inside the factory from the ThriftConnectionType and conf. Keep the eager keystore/truststore presence checks so misconfiguration still fails fast with a clear message, and prune the now-unused TSSLTransportFactory and SecurityUtils imports.

Three small cleanups in TlsTransportPlugin, none of which change
runtime behavior on the live path:

- Extract "CN=ANONYMOUS" into an ANONYMOUS_PRINCIPAL_NAME constant
  so it can be grepped for when auditing authorizer rules.
- Raise the SSLPeerUnverifiedException log from debug to warn. The
  branch is only reachable when client auth is disabled at the
  transport layer (nimbus/supervisor.thrift.tls.client.auth.required
  = false), but when it does fire it is worth seeing in production
  logs.
- Remove the dead TSSLTransportParameters wiring in getServer().
  The params object was built with keystore/truststore settings and
  requireClientAuth(true), but never passed to
  ReloadableTsslTransportFactory.getServerSocket — the real SSL
  context is built inside the factory from the ThriftConnectionType
  and conf. Keep the eager keystore/truststore presence checks so
  misconfiguration still fails fast with a clear message, and prune
  the now-unused TSSLTransportFactory and SecurityUtils imports.

C
@rzo1 rzo1 added this to the 2.8.7 milestone Apr 13, 2026
@rzo1 rzo1 merged commit 9c6e9cc into master Apr 13, 2026
16 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