CVE-2022-3509

Source
https://nvd.nist.gov/vuln/detail/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:14Z
Modified
2025-10-21T07:08:26.268379Z
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 ranges

Type
GIT
Repo
https://github.com/protocolbuffers/protobuf
Events
Introduced
0 Unknown introduced commit / All previous commits are affected
Fixed

Affected versions

3.*

3.15.0-rc1

Other

conformance-build-tag

v2.*

v2.4.1
v2.5.0
v2.6.0
v2.6.1
v2.6.1rc1

v21.*

v21.0
v21.0-rc1
v21.0-rc2
v21.1
v21.2
v21.3
v21.4
v21.5
v21.6

v3.*

v3.0.0
v3.0.0-alpha-1
v3.0.0-alpha-2
v3.0.0-alpha-3
v3.0.0-alpha-4
v3.0.0-beta-1
v3.0.0-beta-1-bzl-fix
v3.0.0-beta-2
v3.0.0-beta-3
v3.0.0-beta-3-pre-1
v3.0.0-beta-4
v3.0.2
v3.1.0
v3.1.0-alpha-1
v3.10.0
v3.10.0-rc1
v3.11.0
v3.11.0-rc1
v3.11.0-rc2
v3.11.1
v3.11.2
v3.11.3
v3.11.4
v3.12.0
v3.12.0-rc1
v3.12.0-rc2
v3.12.1
v3.12.2
v3.12.3
v3.13.0
v3.13.0-rc3
v3.13.0.1
v3.14.0
v3.14.0-rc1
v3.14.0-rc2
v3.14.0-rc3
v3.15.0
v3.15.0-rc1
v3.15.0-rc2
v3.15.1
v3.15.2
v3.15.3
v3.15.4
v3.15.5
v3.15.6
v3.15.7
v3.15.8
v3.16.0
v3.16.0-rc1
v3.16.0-rc2
v3.17.0
v3.17.0-rc1
v3.17.0-rc2
v3.17.1
v3.17.2
v3.17.3
v3.18.0
v3.18.0-rc1
v3.18.0-rc2
v3.18.1
v3.19.0
v3.19.0-rc1
v3.19.0-rc2
v3.19.1
v3.19.2
v3.19.3
v3.19.4
v3.20.0
v3.20.0-rc1
v3.20.0-rc2
v3.20.0-rc3
v3.20.1
v3.20.1-rc1
v3.21.0
v3.21.0-rc2
v3.21.1
v3.21.2
v3.21.3
v3.21.4
v3.21.5
v3.21.6
v3.3.0
v3.3.0rc1
v3.3.1
v3.3.2
v3.4.0
v3.4.0rc1
v3.4.0rc2
v3.4.0rc3
v3.4.1
v3.5.0
v3.5.0.1
v3.5.1
v3.5.2
v3.6.0
v3.6.0.1
v3.6.0rc1
v3.6.0rc2
v3.6.1
v3.7.0
v3.7.0-rc.2
v3.7.0-rc.3
v3.7.0rc1
v3.7.0rc2
v3.7.1
v3.8.0
v3.8.0-rc1
v3.9.0-rc1

Database specific

vanir_signatures

[
    {
        "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"
    }
]