External risk intelligence

Apache Commons Codec Blake3 Incorrect Documentation Causes Identical Key Derivation

CVE advisorySeverity: CRITICAL (CVSS 9.1)

CVE-2026-119078

This vulnerability exists in a software library (Apache Commons Codec), specifically within a hashing class. It is a logic error affecting how developers implement key derivation in their own application code. It is not an internet-facing service, appliance, or gateway, and the vulnerability is bound to build-time integration and developer usage patterns rather than public network exposure.

Halo Surface Signal: 1 out of 5 — much less likely to be public-facing.

External exposure likelihood

Horizon Alert

Summary of the vulnerability and why it matters

This advisory concerns a flaw in the Apache Commons Codec library that affects how certain cryptographic keys are generated. Specifically, a function that should produce unique outputs when called multiple times on the same instance is not behaving as documented, leading to identical keys being derived in some applications. While the library itself has been updated to correct its documentation, affected applications need to be reviewed and potentially reconfigured to ensure proper key separation. The main concern is confirming relevance and exposure.

  • Hashing function produces same output repeatedly.
  • Developers may use it for critical key derivation.
  • Confirm if code relies on this behavior.

Attack Path

How an attacker could exploit the issue

An attacker could potentially exploit this vulnerability by targeting applications that rely on Apache Commons Codec for cryptographic operations, specifically those that call the `doFinalize` method multiple times on the same `Blake3` instance without supplying additional input. This misusage, often stemming from incorrect implementation of the key derivation example provided in the documentation, could lead to predictable or identical outputs where unique ones are expected, compromising the integrity and uniqueness of derived keys.

  • Entry condition: Application uses vulnerable library code.
  • Trigger point: Repeated calls to `doFinalize` without new input.
  • Resulting risk: Predictable cryptographic outputs, compromised uniqueness.

Live Threat

Current exploitation, exposure, and threat context

The Blake3 hashing algorithm's `doFinalize` method might produce identical outputs when called multiple times on the same instance, even though its documentation suggests otherwise. Applications using this method to derive multiple keys from a single instance may receive identical keys, losing the intended separation between them, when supported by the advisory.

  • Duplicate derived keys.
  • Repeated calls to `doFinalize`.
  • Compromised key separation.

Operational Fix

Recommended remediation, mitigation, and detection steps

This vulnerability in Apache Commons Codec's Blake3 class relates to its `doFinalize` method's behavior and documentation, impacting applications that derive multiple keys by calling `doFinalize` repeatedly on the same instance. Application owners are responsible for reviewing their code for this pattern and adjusting key derivation to follow the updated Javadoc recommendations, which involve obtaining the combined length in a single call. The core issue lies in how developers integrate and utilize the library, requiring code-level analysis rather than infrastructure patching.

  • Application owners should own this issue.
  • Verify repeated `doFinalize` calls on Blake3 instances.
  • Adjust key derivation to a single `doFinalize` call.

Supplementary metadata

Validate whether this threat affects your internet-facing exposure.

Halo Threat Intelligence helps prioritize remediation with Halo Surface Signal and H/A/L/O context. Start exposure validation with a free external attack surface trial.

Frequently asked questions

What is the Apache Commons Codec library?

It is a widely used Java library that provides implementations of common encoders and decoders, such as Base64, Hex, and cryptographic hashing tools. Developers integrate it into their own software applications to handle data transformation and security-related tasks, like the Blake3 hashing functions involved in this advisory.

What is the weakness behind CVE-2026-119078?

This is a logic error, specifically classified as CWE-684 (Incorrect Checking of Function Return Value) and CWE-1068 (Inaccurate Definition of Data Structure). It occurs because the library's Blake3 class behaves differently than its technical documentation claims. When developers follow the provided examples to derive multiple cryptographic keys, the method fails to create unique outputs, leading to predictable and identical keys.

How is this Blake3 vulnerability triggered?

The flaw is triggered when an application calls the doFinalize method multiple times on the same Blake3 instance without providing new input. It is not triggered if the developer requests the total required key length in a single call, which allows the library to handle the derivation correctly as specified in the updated documentation.

Is my application at risk if it is internet-facing?

Halo Surface Signal notes that this is a logic error within a software library, not an internet-facing appliance or gateway. The risk depends on how your specific application code consumes the library. If your build-time code implements the flawed key derivation pattern, it creates a potential security weakness regardless of whether the service is exposed to the internet.

How do I fix the usage of doFinalize?

Simply updating the library version will not resolve the issue, as the behavior remains the same. You must perform a code-level review to identify any instances where doFinalize is called repeatedly. The recommended approach is to modify your code to request the combined length of all necessary keys in one single method call, then split the output accordingly.

References