Skip to main content

Observable Timing Discrepancy

CVE-2024-23953

Severity Medium
Score 6.5/10

Summary

The use of `Arrays.equals()` in `LlapSignerImpl` in Apache Hive to compare message signatures allows attackers to forge a valid signature for an arbitrary message byte by byte. The attacker should be an authorized user of the product to perform this attack. The problem occurs when an application doesn't use a constant-time algorithm for validating a signature. The method `Arrays.equals()` returns false right away when it sees that one of the input's bytes is different. It means that the comparison time depends on the contents of the arrays. This little thing may allow an attacker to forge a valid signature for an arbitrary message byte by byte. So it might allow malicious users to submit splits/work with selected signatures to LLAP without running as a privileged user, potentially leading to a DDoS attack. This issue affects org.apache.hive:hive-llap-common versions 2.2.0 through 4.0.0-beta-1, org.apache.hive:hive versions 2.1.0 through 4.0.0-beta-1 and org.apache.hive:hive-llap-server versions 2.1.0 and 2.1.1.

  • LOW
  • NETWORK
  • HIGH
  • UNCHANGED
  • NONE
  • LOW
  • NONE
  • NONE

CWE-208 - Observable Timing Discrepancy

Two separate operations in a product require different amounts of time to complete, in a way that is observable to an actor and reveals security-relevant information about the state of the product, such as whether a particular operation was successful or not.

Advisory Timeline

  • Published