CVE-2022-3509

Source
https://cve.org/CVERecord?id=CVE-2022-3509
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2022-3509.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2022-3509
Aliases
Downstream
Related
Published
2022-12-12T13:15:14.607Z
Modified
2026-02-07T05:26:24.345218Z
Severity
  • 7.5 (High) CVSS_V3 - CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H CVSS Calculator
Summary
[none]
Details

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.

References

Affected packages

Git / github.com/protocolbuffers/protobuf

Affected versions

v16.*
v16.2
v21.*
v21.0
v21.1
v21.2
v21.3
v21.4
v21.5
v21.6
v3.*
v3.16.0
v3.16.1
v3.16.2
v3.19.0
v3.19.1
v3.19.2
v3.19.3
v3.19.4
v3.20.0
v3.20.0-rc1
v3.20.0-rc3
v3.20.1
v3.20.1-rc1
v3.21.0
v3.21.1
v3.21.2
v3.21.3
v3.21.4
v3.21.5
v3.21.6

Database specific

vanir_signatures
[
    {
        "deprecated": false,
        "source": "https://github.com/protocolbuffers/protobuf/commit/a3888f53317a8018e7a439bac4abeb8f3425d5e9",
        "id": "CVE-2022-3509-030478ad",
        "target": {
            "file": "java/core/src/main/java/com/google/protobuf/MessageReflection.java",
            "function": "setRepeatedField"
        },
        "digest": {
            "function_hash": "318697962875854436208708012669122412433",
            "length": 123.0
        },
        "signature_type": "Function",
        "signature_version": "v1"
    },
    {
        "deprecated": false,
        "source": "https://github.com/protocolbuffers/protobuf/commit/a3888f53317a8018e7a439bac4abeb8f3425d5e9",
        "id": "CVE-2022-3509-1667a429",
        "target": {
            "file": "java/core/src/main/java/com/google/protobuf/MessageReflection.java"
        },
        "digest": {
            "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"
            ],
            "threshold": 0.9
        },
        "signature_type": "Line",
        "signature_version": "v1"
    },
    {
        "deprecated": false,
        "source": "https://github.com/protocolbuffers/protobuf/commit/5cba162a5d93f8df786d828621019e03e50edb4f",
        "id": "CVE-2022-3509-188035fa",
        "target": {
            "file": "src/google/protobuf/compiler/plugin.pb.h"
        },
        "digest": {
            "line_hashes": [
                "99802369379779068741640024407784092008",
                "225304807984448079980401650582696715752",
                "252831113805316861556574171429044010978",
                "224179326576241034740376008476800918793"
            ],
            "threshold": 0.9
        },
        "signature_type": "Line",
        "signature_version": "v1"
    },
    {
        "deprecated": false,
        "source": "https://github.com/protocolbuffers/protobuf/commit/5cba162a5d93f8df786d828621019e03e50edb4f",
        "id": "CVE-2022-3509-1a4951d1",
        "target": {
            "file": "src/google/protobuf/descriptor.pb.h"
        },
        "digest": {
            "line_hashes": [
                "99802369379779068741640024407784092008",
                "225304807984448079980401650582696715752",
                "252831113805316861556574171429044010978",
                "224179326576241034740376008476800918793"
            ],
            "threshold": 0.9
        },
        "signature_type": "Line",
        "signature_version": "v1"
    },
    {
        "deprecated": false,
        "source": "https://github.com/protocolbuffers/protobuf/commit/5cba162a5d93f8df786d828621019e03e50edb4f",
        "id": "CVE-2022-3509-2069b3da",
        "target": {
            "file": "src/google/protobuf/wrappers.pb.h"
        },
        "digest": {
            "line_hashes": [
                "99802369379779068741640024407784092008",
                "225304807984448079980401650582696715752",
                "252831113805316861556574171429044010978",
                "224179326576241034740376008476800918793"
            ],
            "threshold": 0.9
        },
        "signature_type": "Line",
        "signature_version": "v1"
    },
    {
        "deprecated": false,
        "source": "https://github.com/protocolbuffers/protobuf/commit/a3888f53317a8018e7a439bac4abeb8f3425d5e9",
        "id": "CVE-2022-3509-2f3c869c",
        "target": {
            "file": "java/core/src/main/java/com/google/protobuf/MessageReflection.java",
            "function": "newMergeTargetForField"
        },
        "digest": {
            "function_hash": "302126851928630386882528743161431815498",
            "length": 315.0
        },
        "signature_type": "Function",
        "signature_version": "v1"
    },
    {
        "deprecated": false,
        "source": "https://github.com/protocolbuffers/protobuf/commit/5cba162a5d93f8df786d828621019e03e50edb4f",
        "id": "CVE-2022-3509-2f6d50fa",
        "target": {
            "file": "src/google/protobuf/any.pb.h"
        },
        "digest": {
            "line_hashes": [
                "99802369379779068741640024407784092008",
                "225304807984448079980401650582696715752",
                "252831113805316861556574171429044010978",
                "224179326576241034740376008476800918793"
            ],
            "threshold": 0.9
        },
        "signature_type": "Line",
        "signature_version": "v1"
    },
    {
        "deprecated": false,
        "source": "https://github.com/protocolbuffers/protobuf/commit/b8c2488f480bbe3d66b9874c2fcd434201caa48a",
        "id": "CVE-2022-3509-3c760779",
        "target": {
            "file": "src/google/protobuf/wrappers.pb.h"
        },
        "digest": {
            "line_hashes": [
                "14463844651962961940331438795809373578",
                "214516298593296203942852467115320028386",
                "261809066153928994664321823254706116376",
                "307626444442344817117879599035219910274"
            ],
            "threshold": 0.9
        },
        "signature_type": "Line",
        "signature_version": "v1"
    },
    {
        "deprecated": false,
        "source": "https://github.com/protocolbuffers/protobuf/commit/a3888f53317a8018e7a439bac4abeb8f3425d5e9",
        "id": "CVE-2022-3509-4ae20b8a",
        "target": {
            "file": "java/core/src/main/java/com/google/protobuf/MessageReflection.java",
            "function": "mergeMessage"
        },
        "digest": {
            "function_hash": "89565842956687219677816611402073178904",
            "length": 497.0
        },
        "signature_type": "Function",
        "signature_version": "v1"
    },
    {
        "deprecated": false,
        "source": "https://github.com/protocolbuffers/protobuf/commit/5cba162a5d93f8df786d828621019e03e50edb4f",
        "id": "CVE-2022-3509-4e70c1e4",
        "target": {
            "file": "src/google/protobuf/field_mask.pb.h"
        },
        "digest": {
            "line_hashes": [
                "99802369379779068741640024407784092008",
                "225304807984448079980401650582696715752",
                "252831113805316861556574171429044010978",
                "224179326576241034740376008476800918793"
            ],
            "threshold": 0.9
        },
        "signature_type": "Line",
        "signature_version": "v1"
    },
    {
        "deprecated": false,
        "source": "https://github.com/protocolbuffers/protobuf/commit/b8c2488f480bbe3d66b9874c2fcd434201caa48a",
        "id": "CVE-2022-3509-51960048",
        "target": {
            "file": "src/google/protobuf/descriptor.pb.h"
        },
        "digest": {
            "line_hashes": [
                "14463844651962961940331438795809373578",
                "214516298593296203942852467115320028386",
                "261809066153928994664321823254706116376",
                "307626444442344817117879599035219910274"
            ],
            "threshold": 0.9
        },
        "signature_type": "Line",
        "signature_version": "v1"
    },
    {
        "deprecated": false,
        "source": "https://github.com/protocolbuffers/protobuf/commit/b8c2488f480bbe3d66b9874c2fcd434201caa48a",
        "id": "CVE-2022-3509-610f4e97",
        "target": {
            "file": "src/google/protobuf/timestamp.pb.h"
        },
        "digest": {
            "line_hashes": [
                "14463844651962961940331438795809373578",
                "214516298593296203942852467115320028386",
                "261809066153928994664321823254706116376",
                "307626444442344817117879599035219910274"
            ],
            "threshold": 0.9
        },
        "signature_type": "Line",
        "signature_version": "v1"
    },
    {
        "deprecated": false,
        "source": "https://github.com/protocolbuffers/protobuf/commit/b8c2488f480bbe3d66b9874c2fcd434201caa48a",
        "id": "CVE-2022-3509-6bc36508",
        "target": {
            "file": "src/google/protobuf/api.pb.h"
        },
        "digest": {
            "line_hashes": [
                "14463844651962961940331438795809373578",
                "214516298593296203942852467115320028386",
                "261809066153928994664321823254706116376",
                "307626444442344817117879599035219910274"
            ],
            "threshold": 0.9
        },
        "signature_type": "Line",
        "signature_version": "v1"
    },
    {
        "deprecated": false,
        "source": "https://github.com/protocolbuffers/protobuf/commit/b8c2488f480bbe3d66b9874c2fcd434201caa48a",
        "id": "CVE-2022-3509-7b523458",
        "target": {
            "file": "src/google/protobuf/compiler/plugin.pb.h"
        },
        "digest": {
            "line_hashes": [
                "14463844651962961940331438795809373578",
                "214516298593296203942852467115320028386",
                "261809066153928994664321823254706116376",
                "307626444442344817117879599035219910274"
            ],
            "threshold": 0.9
        },
        "signature_type": "Line",
        "signature_version": "v1"
    },
    {
        "deprecated": false,
        "source": "https://github.com/protocolbuffers/protobuf/commit/5cba162a5d93f8df786d828621019e03e50edb4f",
        "id": "CVE-2022-3509-7b59bb12",
        "target": {
            "file": "src/google/protobuf/timestamp.pb.h"
        },
        "digest": {
            "line_hashes": [
                "99802369379779068741640024407784092008",
                "225304807984448079980401650582696715752",
                "252831113805316861556574171429044010978",
                "224179326576241034740376008476800918793"
            ],
            "threshold": 0.9
        },
        "signature_type": "Line",
        "signature_version": "v1"
    },
    {
        "deprecated": false,
        "source": "https://github.com/protocolbuffers/protobuf/commit/b8c2488f480bbe3d66b9874c2fcd434201caa48a",
        "id": "CVE-2022-3509-892436e4",
        "target": {
            "file": "src/google/protobuf/type.pb.h"
        },
        "digest": {
            "line_hashes": [
                "14463844651962961940331438795809373578",
                "214516298593296203942852467115320028386",
                "261809066153928994664321823254706116376",
                "307626444442344817117879599035219910274"
            ],
            "threshold": 0.9
        },
        "signature_type": "Line",
        "signature_version": "v1"
    },
    {
        "deprecated": false,
        "source": "https://github.com/protocolbuffers/protobuf/commit/b8c2488f480bbe3d66b9874c2fcd434201caa48a",
        "id": "CVE-2022-3509-8c2e0192",
        "target": {
            "file": "src/google/protobuf/any.pb.h"
        },
        "digest": {
            "line_hashes": [
                "14463844651962961940331438795809373578",
                "214516298593296203942852467115320028386",
                "261809066153928994664321823254706116376",
                "307626444442344817117879599035219910274"
            ],
            "threshold": 0.9
        },
        "signature_type": "Line",
        "signature_version": "v1"
    },
    {
        "deprecated": false,
        "source": "https://github.com/protocolbuffers/protobuf/commit/5cba162a5d93f8df786d828621019e03e50edb4f",
        "id": "CVE-2022-3509-8ec1c149",
        "target": {
            "file": "src/google/protobuf/api.pb.h"
        },
        "digest": {
            "line_hashes": [
                "99802369379779068741640024407784092008",
                "225304807984448079980401650582696715752",
                "252831113805316861556574171429044010978",
                "224179326576241034740376008476800918793"
            ],
            "threshold": 0.9
        },
        "signature_type": "Line",
        "signature_version": "v1"
    },
    {
        "deprecated": false,
        "source": "https://github.com/protocolbuffers/protobuf/commit/a3888f53317a8018e7a439bac4abeb8f3425d5e9",
        "id": "CVE-2022-3509-976785e1",
        "target": {
            "file": "java/core/src/main/java/com/google/protobuf/MessageReflection.java",
            "function": "finish"
        },
        "digest": {
            "function_hash": "7011404373501007875542615164595219252",
            "length": 54.0
        },
        "signature_type": "Function",
        "signature_version": "v1"
    },
    {
        "deprecated": false,
        "source": "https://github.com/protocolbuffers/protobuf/commit/5cba162a5d93f8df786d828621019e03e50edb4f",
        "id": "CVE-2022-3509-97dee356",
        "target": {
            "file": "src/google/protobuf/empty.pb.h"
        },
        "digest": {
            "line_hashes": [
                "99802369379779068741640024407784092008",
                "225304807984448079980401650582696715752",
                "252831113805316861556574171429044010978",
                "224179326576241034740376008476800918793"
            ],
            "threshold": 0.9
        },
        "signature_type": "Line",
        "signature_version": "v1"
    },
    {
        "deprecated": false,
        "source": "https://github.com/protocolbuffers/protobuf/commit/5cba162a5d93f8df786d828621019e03e50edb4f",
        "id": "CVE-2022-3509-9c5325d9",
        "target": {
            "file": "src/google/protobuf/type.pb.h"
        },
        "digest": {
            "line_hashes": [
                "99802369379779068741640024407784092008",
                "225304807984448079980401650582696715752",
                "252831113805316861556574171429044010978",
                "224179326576241034740376008476800918793"
            ],
            "threshold": 0.9
        },
        "signature_type": "Line",
        "signature_version": "v1"
    },
    {
        "deprecated": false,
        "source": "https://github.com/protocolbuffers/protobuf/commit/b8c2488f480bbe3d66b9874c2fcd434201caa48a",
        "id": "CVE-2022-3509-b0f21209",
        "target": {
            "file": "src/google/protobuf/empty.pb.h"
        },
        "digest": {
            "line_hashes": [
                "14463844651962961940331438795809373578",
                "214516298593296203942852467115320028386",
                "261809066153928994664321823254706116376",
                "307626444442344817117879599035219910274"
            ],
            "threshold": 0.9
        },
        "signature_type": "Line",
        "signature_version": "v1"
    },
    {
        "deprecated": false,
        "source": "https://github.com/protocolbuffers/protobuf/commit/b8c2488f480bbe3d66b9874c2fcd434201caa48a",
        "id": "CVE-2022-3509-c1227f64",
        "target": {
            "file": "src/google/protobuf/duration.pb.h"
        },
        "digest": {
            "line_hashes": [
                "14463844651962961940331438795809373578",
                "214516298593296203942852467115320028386",
                "261809066153928994664321823254706116376",
                "307626444442344817117879599035219910274"
            ],
            "threshold": 0.9
        },
        "signature_type": "Line",
        "signature_version": "v1"
    },
    {
        "deprecated": false,
        "source": "https://github.com/protocolbuffers/protobuf/commit/a3888f53317a8018e7a439bac4abeb8f3425d5e9",
        "id": "CVE-2022-3509-c872660b",
        "target": {
            "file": "java/core/src/main/java/com/google/protobuf/MessageReflection.java",
            "function": "setField"
        },
        "digest": {
            "function_hash": "216832926185987137026719828843800808099",
            "length": 101.0
        },
        "signature_type": "Function",
        "signature_version": "v1"
    },
    {
        "deprecated": false,
        "source": "https://github.com/protocolbuffers/protobuf/commit/5cba162a5d93f8df786d828621019e03e50edb4f",
        "id": "CVE-2022-3509-c9c7f1ec",
        "target": {
            "file": "src/google/protobuf/duration.pb.h"
        },
        "digest": {
            "line_hashes": [
                "99802369379779068741640024407784092008",
                "225304807984448079980401650582696715752",
                "252831113805316861556574171429044010978",
                "224179326576241034740376008476800918793"
            ],
            "threshold": 0.9
        },
        "signature_type": "Line",
        "signature_version": "v1"
    },
    {
        "deprecated": false,
        "source": "https://github.com/protocolbuffers/protobuf/commit/a3888f53317a8018e7a439bac4abeb8f3425d5e9",
        "id": "CVE-2022-3509-d0a0df97",
        "target": {
            "file": "java/core/src/main/java/com/google/protobuf/MessageReflection.java",
            "function": "mergeGroup"
        },
        "digest": {
            "function_hash": "30533295113327599854847425549054277276",
            "length": 566.0
        },
        "signature_type": "Function",
        "signature_version": "v1"
    },
    {
        "deprecated": false,
        "source": "https://github.com/protocolbuffers/protobuf/commit/b8c2488f480bbe3d66b9874c2fcd434201caa48a",
        "id": "CVE-2022-3509-d5e132eb",
        "target": {
            "file": "src/google/protobuf/field_mask.pb.h"
        },
        "digest": {
            "line_hashes": [
                "14463844651962961940331438795809373578",
                "214516298593296203942852467115320028386",
                "261809066153928994664321823254706116376",
                "307626444442344817117879599035219910274"
            ],
            "threshold": 0.9
        },
        "signature_type": "Line",
        "signature_version": "v1"
    },
    {
        "deprecated": false,
        "source": "https://github.com/protocolbuffers/protobuf/commit/b8c2488f480bbe3d66b9874c2fcd434201caa48a",
        "id": "CVE-2022-3509-ebeb0e90",
        "target": {
            "file": "src/google/protobuf/source_context.pb.h"
        },
        "digest": {
            "line_hashes": [
                "14463844651962961940331438795809373578",
                "214516298593296203942852467115320028386",
                "261809066153928994664321823254706116376",
                "307626444442344817117879599035219910274"
            ],
            "threshold": 0.9
        },
        "signature_type": "Line",
        "signature_version": "v1"
    },
    {
        "deprecated": false,
        "source": "https://github.com/protocolbuffers/protobuf/commit/a3888f53317a8018e7a439bac4abeb8f3425d5e9",
        "id": "CVE-2022-3509-f0d07710",
        "target": {
            "file": "java/core/src/main/java/com/google/protobuf/MessageReflection.java",
            "function": "addRepeatedField"
        },
        "digest": {
            "function_hash": "216832926185987137026719828843800808099",
            "length": 101.0
        },
        "signature_type": "Function",
        "signature_version": "v1"
    },
    {
        "deprecated": false,
        "source": "https://github.com/protocolbuffers/protobuf/commit/5cba162a5d93f8df786d828621019e03e50edb4f",
        "id": "CVE-2022-3509-f9310ee7",
        "target": {
            "file": "src/google/protobuf/struct.pb.h"
        },
        "digest": {
            "line_hashes": [
                "99802369379779068741640024407784092008",
                "225304807984448079980401650582696715752",
                "252831113805316861556574171429044010978",
                "224179326576241034740376008476800918793"
            ],
            "threshold": 0.9
        },
        "signature_type": "Line",
        "signature_version": "v1"
    },
    {
        "deprecated": false,
        "source": "https://github.com/protocolbuffers/protobuf/commit/5cba162a5d93f8df786d828621019e03e50edb4f",
        "id": "CVE-2022-3509-f931a154",
        "target": {
            "file": "src/google/protobuf/source_context.pb.h"
        },
        "digest": {
            "line_hashes": [
                "99802369379779068741640024407784092008",
                "225304807984448079980401650582696715752",
                "252831113805316861556574171429044010978",
                "224179326576241034740376008476800918793"
            ],
            "threshold": 0.9
        },
        "signature_type": "Line",
        "signature_version": "v1"
    },
    {
        "deprecated": false,
        "source": "https://github.com/protocolbuffers/protobuf/commit/b8c2488f480bbe3d66b9874c2fcd434201caa48a",
        "id": "CVE-2022-3509-fd9bc12e",
        "target": {
            "file": "src/google/protobuf/struct.pb.h"
        },
        "digest": {
            "line_hashes": [
                "14463844651962961940331438795809373578",
                "214516298593296203942852467115320028386",
                "261809066153928994664321823254706116376",
                "307626444442344817117879599035219910274"
            ],
            "threshold": 0.9
        },
        "signature_type": "Line",
        "signature_version": "v1"
    }
]
source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2022-3509.json"