CVE-2020-8929
Java vulnerability analysis and mitigation

Overview

A mis-handling of invalid unicode characters in the Java implementation of Tink versions prior to 1.5 allowed attackers to change the ID part of a ciphertext, which could result in the creation of a second ciphertext that would decrypt to the same plaintext. The vulnerability was discovered and disclosed in October 2020 and affects all versions of Tink Java implementation up to version 1.4 (NVD, GitHub Advisory).

Technical details

The vulnerability stems from Tink's use of a hash map indexed by unicode strings instead of byte arrays for prefix lookup. When invalid Unicode characters were encountered, they would be replaced by U+FFFD due to Java API's default behavior. This meant that different byte sequences could result in the same hash table key, allowing attackers to exchange one invalid byte sequence for another. The vulnerability has been assigned a CVSS v3.1 Base Score of 5.3 (Medium) with the vector string CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N (NVD).

Impact

The vulnerability primarily affects ciphertext integrity, particularly in cases where deterministic AEAD encryption is used with a single key and there is reliance on having only a single valid ciphertext per plaintext. Importantly, the vulnerability does not compromise confidentiality or plaintext integrity (GitHub Advisory).

Mitigation and workarounds

The vulnerability was fixed in Tink version 1.5. For users unable to upgrade, the only workaround is to backport the fixing pull request. The fix involves changing how the prefix lookup is handled, using byte arrays instead of unicode strings (GitHub Advisory, GitHub Commit).

Additional resources


SourceThis report was generated using AI

Related Java vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

GHSA-p279-2cqp-84jgCRITICAL9.6
  • Java logoJava
  • org.openidentityplatform.opendj:opendj-server-legacy
NoYesJul 24, 2026
GHSA-fp43-vj7g-pg92HIGH7.5
  • Java logoJava
  • org.omnifaces:omnifaces
NoYesJul 24, 2026
GHSA-7ppr-r889-mcf2HIGH7.5
  • Java logoJava
  • org.http4s:http4s-blaze-server_3
NoYesJul 24, 2026
GHSA-mhvj-jhpq-885vHIGH7.4
  • Java logoJava
  • org.http4s:blaze-http_3
NoYesJul 24, 2026
GHSA-46q4-43ph-c6frHIGH7.4
  • Java logoJava
  • org.http4s:blaze-http_2.12
NoYesJul 24, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management