Severity: important

Affected versions:

- Apache Hive 2.2.0 before 4.0.0

Description:

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.

Credit:

Andrea Cosentino (reporter)

References:

https://github.com/apache/hive
https://github.com/apache/hive/commit/b418e3c9f479ba8e7d31e6470306111002ffa809
https://issues.apache.org/jira/browse/HIVE-28030
https://blog.gypsyengineer.com/en/security/preventing-timing-attacks-with-codeql.html
https://cqr.company/web-vulnerabilities/timing-attacks/
https://hive.apache.org/
https://www.cve.org/CVERecord?id=CVE-2024-23953

Reply via email to