Skip to main content

Apache Storm CVE-2026-41081

| EUVDEUVD-2026-25848 MEDIUM
Improper Authentication (CWE-287)
2026-04-27 apache
6.5
CVSS 3.1 · NVD
Share

Severity by source

NVD PRIMARY
6.5 MEDIUM
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
vuln.today AI
4.8 MEDIUM

Exploitation requires two independent out-of-attacker-control conditions - TLS without mTLS and a permissive authorizer - warranting AC:H over the NVD-assigned AC:L.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N
4.0 AV:N/AC:H/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
Low
Availability
None

Lifecycle Timeline

6
Analysis Generated
Jul 24, 2026 - 02:00 vuln.today
Patch released
Apr 28, 2026 - 19:46 nvd
Patch available
CVSS changed
Apr 27, 2026 - 15:22 NVD
6.5 (MEDIUM)
Patch available
Apr 27, 2026 - 15:01 EUVD
EUVD ID Assigned
Apr 27, 2026 - 13:30 euvd
EUVD-2026-25848
CVE Published
Apr 27, 2026 - 13:10 nvd
MEDIUM 6.5

DescriptionCVE.org

Improper Handling of TLS Client Authentication Failure Leading to Anonymous Principal Assignment in Apache Storm

Versions Affected: up to 2.8.7

Description: When TLS transport is enabled in Apache Storm without requiring client certificate authentication (the default configuration), the TlsTransportPlugin assigns a fallback principal (CN=ANONYMOUS) if no client certificate is presented or if certificate verification fails. The underlying SSLPeerUnverifiedException is caught and suppressed rather than rejecting the connection.

This fail-open behavior means an unauthenticated client can establish a TLS connection and receive a valid principal identity. If the configured authorizer (e.g., SimpleACLAuthorizer) does not explicitly deny access to CN=ANONYMOUS, this may result in unauthorized access to Storm services. The condition is logged at debug level only, reducing visibility in production.

Impact: Unauthenticated clients may be assigned a principal identity, potentially bypassing authorization in permissive or misconfigured environments.

Mitigation: Users should upgrade to 2.8.7 in which TLS authentication failures are handled in a fail-closed manner.

Users who cannot upgrade immediately should:

  • Enable mandatory client certificate authentication (nimbus.thrift.tls.client.auth.required: true)
  • Ensure authorization rules explicitly deny access to CN=ANONYMOUS
  • Review all ACL configurations for implicit default-allow behavior

AnalysisAI

Apache Storm's TlsTransportPlugin silently assigns the principal CN=ANONYMOUS to unauthenticated TLS clients when client certificate authentication is not enforced - the default configuration - allowing unauthenticated network principals to interact with Storm services wherever the authorizer does not explicitly deny anonymous access. The fail-open behavior stems from suppressing SSLPeerUnverifiedException rather than rejecting the connection, and the condition is logged at debug level only, leaving the bypass invisible in most production monitoring setups. No public exploit has been identified and EPSS is 0.04% (11th percentile), but SSVC rates the vulnerability as automatable with partial technical impact, meaning tooling could systematically probe exposed clusters for permissive authorizer configurations.

Technical ContextAI

Apache Storm is a distributed, real-time stream-processing framework whose inter-component communication is secured via an optional TLS transport layer implemented through the TlsTransportPlugin. When TLS is enabled but mutual TLS is not enforced (nimbus.thrift.tls.client.auth.required defaults to false), the plugin is designed to fall back gracefully - however, it catches SSLPeerUnverifiedException and assigns a hardcoded fallback principal (CN=ANONYMOUS) rather than terminating the connection. Authorization decisions are then delegated to an external authorizer such as SimpleACLAuthorizer, which operates on the assigned principal. The root cause is CWE-287 (Improper Authentication): the system accepts an unverified identity as a valid authenticated entity. The affected component is identified via CPE as cpe:2.3:a:apache_software_foundation:apache_storm_client:*:*:*:*:*:*:*:*, covering all versions prior to 2.8.7 per EUVD-2026-25848.

RemediationAI

The primary remediation is upgrading to Apache Storm 2.8.7, which changes TLS authentication failure handling from fail-open to fail-closed, rejecting connections where certificate verification fails. The vendor advisory is at https://lists.apache.org/thread/plxx5l29dvplk5rwzdcq53rdfl6v4gs8. For deployments that cannot upgrade immediately, three layered compensating controls should be applied in combination. First, enable mandatory client certificate authentication by setting nimbus.thrift.tls.client.auth.required: true in the Storm configuration - this prevents unauthenticated TLS connections entirely but requires provisioning and distributing valid client certificates to all legitimate Storm clients before enabling, or legitimate clients will also be rejected. Second, explicitly add a deny rule for the CN=ANONYMOUS principal in all authorizer ACL configurations (e.g., SimpleACLAuthorizer) - this prevents the anonymous principal from accessing any Storm service even if assigned, but does not fix the underlying fail-open behavior and may need to be re-verified after any ACL change. Third, audit all existing ACL configurations for implicit default-allow entries that could inadvertently grant access to unknown or fallback principals. Additionally, raising TLS handshake failure log events from debug to warn level improves detection visibility while awaiting the patch.

Share

CVE-2026-41081 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy