A mis-handling of invalid unicode characters in the Java implementation of Tink versions prior to 1.5 allows an attacker to change the ID part of a ciphertext, which result in the creation of a second ciphertext that can decrypt to the same plaintext. This can be a problem with encrypting deterministic AEAD with a single key, and rely on a unique ciphertext-per-plaintext.
[
{
"source": "https://github.com/tink-crypto/tink/commit/93d839a5865b9d950dffdc9d0bc99b71280a8899",
"target": {
"function": "addPrimitive",
"file": "java_src/src/main/java/com/google/crypto/tink/PrimitiveSet.java"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2020-8929-0bef705b",
"signature_type": "Function",
"digest": {
"length": 715.0,
"function_hash": "217881201261916344316553839640080936871"
}
},
{
"source": "https://github.com/tink-crypto/tink/commit/93d839a5865b9d950dffdc9d0bc99b71280a8899",
"target": {
"file": "java_src/src/main/java/com/google/crypto/tink/PrimitiveSet.java"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2020-8929-5f31f113",
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"157414841065670058462330412288726568007",
"108916698505316697896927837801069949125",
"329953534583668519471318701801756243441",
"213576573152777414863879008901387448313",
"117095508662451436026999904308032369379",
"253256134297389226440813142341947082556",
"235237472774331919668376667751742900432",
"166517235777786224518032432875894209912",
"157678614999336421597063061426693421695",
"137165361629755901251605909441366605245",
"273248960221924926855140517766478383219",
"188617306577646167314510855791087647903",
"305213812347837163836313675875228833265",
"166698426010835856215096125922411474565",
"297583809220781884592827695125311262910",
"241289953989506126859141392310543976193",
"107922863496083804360076348135896354859",
"128692932181663531956448901019848472168",
"55947774114710356573264013802535826596",
"142551651716694686536564144631747175878",
"121531892295596273159651830304332866028",
"53350761022494845887792663144414820270",
"24683522678372212630385082067239946921"
]
}
},
{
"source": "https://github.com/tink-crypto/tink/commit/93d839a5865b9d950dffdc9d0bc99b71280a8899",
"target": {
"function": "testBasicFunctionality",
"file": "java_src/src/test/java/com/google/crypto/tink/PrimitiveSetTest.java"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2020-8929-b6db4b04",
"signature_type": "Function",
"digest": {
"length": 2366.0,
"function_hash": "336480560591704285155113984453929751247"
}
},
{
"source": "https://github.com/tink-crypto/tink/commit/93d839a5865b9d950dffdc9d0bc99b71280a8899",
"target": {
"file": "java_src/src/test/java/com/google/crypto/tink/PrimitiveSetTest.java"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2020-8929-cea17d37",
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"146175358446346798436697762436011149257",
"295942350449558665742799913355865684801",
"211307551365374089730606137149354531355",
"26353490931673665710809428408506110659",
"182537772909162327202526083499477956523",
"329953534583668519471318701801756243441",
"126333911796798416263336896935722055939",
"70260780078299868670536020959072281678",
"96803705860922078313911072580373155433",
"113396495125288665233912927029793507283",
"234156420052173044438438639672442638471",
"15175985646369398483260471257013460649",
"169003393220567029982272055006592009093",
"49125774217727985790838356054946417228",
"177304168442040758471695821047672453602",
"171888511372190141356176899853650975434",
"23936496925817278157482710542947234335",
"115690790232692471645256338558932719018",
"75562305059812802870823955954415433234",
"101032819747363744876388845259504663814",
"82359856998348033683579614702664792186",
"205422223639136502879281703786625805924",
"155572029847699494806626563838973371838",
"14903607018543231778895518337430911011",
"246957667163346934343903169032503416287",
"140314242352240142747726537608347367727",
"315420771190081624889203641475418065417",
"38638001576893638579214821712220064671",
"71430218427425071246202871725195202201",
"271517990677501793529420800353605664226",
"322166073183876051042553613141898237198",
"156662998931894483064305203148036766746",
"261395711075483476186195734758232092057",
"111142739761903615585587592610622225062",
"44159434901570754501518201921413679241",
"324714737432003588589138272643598322415",
"198744038604350611120073568144765990230",
"99995408411146038819414179650715747879",
"75562305059812802870823955954415433234",
"246706484195991439373335839996138797280",
"95639478499927079270886414043639423993",
"100076700588357950984846615938334054251",
"71430218427425071246202871725195202201",
"264905063397817558713430685859007133502",
"214922383522459711199232647740461491950",
"290145492935218893974818148391724595902",
"47363546000523299680042878563193591294"
]
}
},
{
"source": "https://github.com/tink-crypto/tink/commit/93d839a5865b9d950dffdc9d0bc99b71280a8899",
"target": {
"function": "getPrimitive",
"file": "java_src/src/main/java/com/google/crypto/tink/PrimitiveSet.java"
},
"deprecated": false,
"signature_version": "v1",
"id": "CVE-2020-8929-dc95a620",
"signature_type": "Function",
"digest": {
"length": 178.0,
"function_hash": "305755066724297118589985672762111541734"
}
}
]