A parsing issue similar to CVE-2022-3171, but with textformat in protobuf-java core and lite versions prior to 3.21.7, 3.20.3, 3.19.6 and 3.16.3 can lead to a denial of service attack. Inputs containing multiple instances of non-repeated embedded messages with repeated or unknown fields causes objects to be converted back-n-forth between mutable and immutable forms, resulting in potentially long garbage collection pauses. We recommend updating to the versions mentioned above.
[
{
"source": "https://github.com/protocolbuffers/protobuf/commit/a3888f53317a8018e7a439bac4abeb8f3425d5e9",
"signature_version": "v1",
"deprecated": false,
"id": "CVE-2022-3509-030478ad",
"target": {
"function": "setRepeatedField",
"file": "java/core/src/main/java/com/google/protobuf/MessageReflection.java"
},
"digest": {
"length": 123.0,
"function_hash": "318697962875854436208708012669122412433"
},
"signature_type": "Function"
},
{
"source": "https://github.com/protocolbuffers/protobuf/commit/a3888f53317a8018e7a439bac4abeb8f3425d5e9",
"signature_version": "v1",
"deprecated": false,
"id": "CVE-2022-3509-1667a429",
"target": {
"file": "java/core/src/main/java/com/google/protobuf/MessageReflection.java"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"193918656306147769068296203112997151048",
"6970572375270295634229501710764818466",
"201149464380280767021250280536305292739",
"62337926865076899714071775286710432310",
"296080155896247037420948734193509754874",
"312783912105924166585926194836740912417",
"206665848151640287072461756110478926878",
"134242923683445967929707232975613310123",
"103128170843420442570132474869590360945",
"242238405261053064765581186784808954345",
"46654108390669920640471238023669127042",
"281592648476008420749170335327688208316",
"298359019402203580427116251849226929313",
"175573749787805660916533010532526824631",
"256788251386742963555757874511588672633",
"81829380176648611711502030493272396690",
"125138423473154158656787964306132186736",
"168422573624685437771844466960059856835",
"205582730866024866912695284934818242153",
"299793320386440717786528757866081472472",
"329883888244280459047766267781110712888",
"153431744025473765851775258758329855604",
"239592695556665208510997937606608825725",
"339966612056930735756888654998859627478",
"237135300609794938838709836771289888422",
"134506067536714602095614570981204999265",
"159427072546319791439184474099943229051",
"57112056823419684556493529620706242959",
"270892869276369084853595701449944611958",
"841122943170107706785839455400739452",
"153431744025473765851775258758329855604",
"288655223600760864225255123869638308758",
"256993347251528894690245159060968979056",
"293774279449923744482253725671338894772",
"68525599392655188530139012167142037756",
"313724401178583275325499913596381795607",
"298465843816814655744385720046331889984",
"80802495124931110123483057488607980159",
"53819579933401984844547967031707027969",
"57107651129895131168543634072733397594",
"59330483109711670649983664882638590008",
"286895868257121200355855011699385167633",
"197235136617013825844166980978605548146",
"286703744833984434282966399840751104318",
"85133470093451805155152531364529862038",
"188878584126251438691907094279128459521",
"51107582945267963525868324337614006510",
"97970852876185168010845494884684771108",
"150226529767874866336591602088894942690",
"152480524157446285331092305350586951328"
]
},
"signature_type": "Line"
},
{
"source": "https://github.com/protocolbuffers/protobuf/commit/a3888f53317a8018e7a439bac4abeb8f3425d5e9",
"signature_version": "v1",
"deprecated": false,
"id": "CVE-2022-3509-2f3c869c",
"target": {
"function": "newMergeTargetForField",
"file": "java/core/src/main/java/com/google/protobuf/MessageReflection.java"
},
"digest": {
"length": 315.0,
"function_hash": "302126851928630386882528743161431815498"
},
"signature_type": "Function"
},
{
"source": "https://github.com/protocolbuffers/protobuf/commit/a3888f53317a8018e7a439bac4abeb8f3425d5e9",
"signature_version": "v1",
"deprecated": false,
"id": "CVE-2022-3509-4ae20b8a",
"target": {
"function": "mergeMessage",
"file": "java/core/src/main/java/com/google/protobuf/MessageReflection.java"
},
"digest": {
"length": 497.0,
"function_hash": "89565842956687219677816611402073178904"
},
"signature_type": "Function"
},
{
"source": "https://github.com/protocolbuffers/protobuf/commit/a3888f53317a8018e7a439bac4abeb8f3425d5e9",
"signature_version": "v1",
"deprecated": false,
"id": "CVE-2022-3509-976785e1",
"target": {
"function": "finish",
"file": "java/core/src/main/java/com/google/protobuf/MessageReflection.java"
},
"digest": {
"length": 54.0,
"function_hash": "7011404373501007875542615164595219252"
},
"signature_type": "Function"
},
{
"source": "https://github.com/protocolbuffers/protobuf/commit/a3888f53317a8018e7a439bac4abeb8f3425d5e9",
"signature_version": "v1",
"deprecated": false,
"id": "CVE-2022-3509-c872660b",
"target": {
"function": "setField",
"file": "java/core/src/main/java/com/google/protobuf/MessageReflection.java"
},
"digest": {
"length": 101.0,
"function_hash": "216832926185987137026719828843800808099"
},
"signature_type": "Function"
},
{
"source": "https://github.com/protocolbuffers/protobuf/commit/a3888f53317a8018e7a439bac4abeb8f3425d5e9",
"signature_version": "v1",
"deprecated": false,
"id": "CVE-2022-3509-d0a0df97",
"target": {
"function": "mergeGroup",
"file": "java/core/src/main/java/com/google/protobuf/MessageReflection.java"
},
"digest": {
"length": 566.0,
"function_hash": "30533295113327599854847425549054277276"
},
"signature_type": "Function"
},
{
"source": "https://github.com/protocolbuffers/protobuf/commit/a3888f53317a8018e7a439bac4abeb8f3425d5e9",
"signature_version": "v1",
"deprecated": false,
"id": "CVE-2022-3509-f0d07710",
"target": {
"function": "addRepeatedField",
"file": "java/core/src/main/java/com/google/protobuf/MessageReflection.java"
},
"digest": {
"length": 101.0,
"function_hash": "216832926185987137026719828843800808099"
},
"signature_type": "Function"
}
]