Cloudanix VulnDB

CVE-2024-23953

Medium · 6.5

Apache Hive vulnerable to Observable Timing Discrepancy and Authentication Bypass by Spoofing

CVSS

6.5

EPSS

1.3%

Published

Jan 28, 2025

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A signature check in the system could let approved users trick it into accepting fake work requests that might slow down or disrupt service for everyone.

Exploitation
Remote Authenticated
Attacker needs
Low Privilege
Complexity
Moderate
Impact
Privilege Gain
Component
Application
Class
Authentication Bypass
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

Non-constant-time signature comparison via Arrays.equals() in LlapSignerImpl permits byte-by-byte forgery of valid signatures for arbitrary messages by an authorized user, bypassing intended authorization checks on LLAP splits and work submissions.

Why it matters to the business

Authorized insiders could abuse the flaw to submit malicious work items, resulting in potential denial-of-service conditions that disrupt query processing and cluster availability; low exploitation likelihood reduces urgency but upgrade remains necessary for defense-in-depth.

How an attack unfolds

An authenticated attacker observes response timing differences from Arrays.equals() during signature validation, incrementally guesses each byte of a target signature, and submits forged LLAP work items that execute without elevated privileges, enabling resource exhaustion attacks.

How to fix it

Upgrade Apache Hive to version 4.0.0 (commit b418e3c9f479ba8e7d31e6470306111002ffa809) or later; for affected Red Hat packages upgrade resource-agents and related highavailability/resilientstorage components to 0:4.1.1-98.el8 or later. Replace non-constant-time comparisons with constant-time algorithms such as MessageDigest.isEqual().

How to confirm the fix worked

Verify deployed package versions against the listed fixed versions; review LlapSignerImpl source for replacement of Arrays.equals() with a constant-time comparator; test signature validation paths with timing analysis tools to confirm uniform comparison duration.

Typical attack path

  1. Obtain valid low-privilege credentials for the Hive/LLAP service
  2. Identify an endpoint or submission path that performs signature validation
  3. Measure timing side-channel responses to craft a signature byte-by-byte
  4. Submit forged work items or splits to LLAP
  5. Trigger resource consumption or denial-of-service without requiring higher privileges

How to detect it

Review LLAP and Hive server logs for repeated signature validation attempts from the same low-privilege accounts, unusual timing patterns in authentication responses, or work submissions that bypass expected privilege checks; correlate with resource utilization spikes on LLAP daemons.

What your security team should do

  • Apply the listed version upgrades to Apache Hive and Red Hat resource-agents packages within the next maintenance window
  • Audit LLAP submission logs for anomalous work items from non-privileged accounts
  • Implement network and application-layer rate limiting around LLAP endpoints as a compensating control
  • Review any downstream dependents of the affected Hive packages for inherited exposure

The record

Use of Arrays.equals() in LlapSignerImpl in Apache Hive to compare message signatures allows attacker 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. Users are recommended to upgrade to version 4.0.0, which fixes this issue. 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 are 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 DDoS attack. More details in the reference section.

Affected packages

Ecosystem Package Introduced Fixed
Maven org.apache.hive:hive-llap-common 0 4.0.0
Chainguard pyspark-scala-2.13 0 3.5.4-r3
Chainguard pyspark-scala-2.13 0 3.5.4-r32
Chainguard spark-3.5 0 3.5.7-r2
Chainguard spark-3.5-scala-2.12-compat 0 3.5.7-r2
Chainguard spark-3.5-scala-2.12-iamguarded-compat 0 3.5.7-r2
Chainguard spark-3.5-scala-2.13 0 3.5.4-r3
Chainguard spark-3.5-scala-2.13 0 3.5.4-r32
Chainguard spark-3.5-scala-2.13-compat 0 3.5.4-r3
Chainguard spark-3.5-scala-2.13-compat 0 3.5.4-r32
Chainguard spark-3.5-scala-2.13-compat 0 3.5.7-r2
Chainguard spark-fips-3.5 0 3.5.4-r17
Chainguard spark-fips-3.5-scala-2.12-compat 0 3.5.4-r17
Chainguard spark-fips-3.5-scala-2.13-compat 0 3.5.4-r17
Wolfi pyspark-scala-2.13 0 3.5.4-r3
Wolfi pyspark-scala-2.13 0 3.5.4-r32
Wolfi spark-3.5 0 3.5.7-r2
Wolfi spark-3.5-scala-2.12-compat 0 3.5.7-r2
Wolfi spark-3.5-scala-2.12-iamguarded-compat 0 3.5.7-r2
Wolfi spark-3.5-scala-2.13 0 3.5.4-r3
Wolfi spark-3.5-scala-2.13 0 3.5.4-r32
Wolfi spark-3.5-scala-2.13-compat 0 3.5.4-r3
Wolfi spark-3.5-scala-2.13-compat 0 3.5.4-r32
Wolfi spark-3.5-scala-2.13-compat 0 3.5.7-r2

Related vulnerabilities