First published: Thu Sep 22 2022(Updated: )
### Summary A message parsing and memory management vulnerability in ProtocolBuffer’s C++ and Python implementations can trigger an out of memory (OOM) failure when processing a specially crafted message, which could lead to a denial of service (DoS) on services using the libraries. Reporter: [ClusterFuzz](https://google.github.io/clusterfuzz/) Affected versions: All versions of C++ Protobufs (including Python) prior to the versions listed below. ### Severity & Impact As scored by google **Medium 5.7** - [CVSS:3.1/AV:A/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H](https://www.first.org/cvss/calculator/3.1#CVSS:3.1/AV:A/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H) Asscored byt NIST **High 7.5** - [CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H](https://www.first.org/cvss/calculator/3.1#CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H) A small (~500 KB) malicious payload can be constructed which causes the running service to allocate more than 3GB of RAM. ### Proof of Concept For reproduction details, please refer to the unit test that identifies the specific inputs that exercise this parsing weakness. ### Mitigation / Patching Please update to the latest available versions of the following packages: - protobuf-cpp (3.18.3, 3.19.5, 3.20.2, 3.21.6) - protobuf-python (3.18.3, 3.19.5, 3.20.2, 4.21.6)
Credit: cve-coordination@google.com cve-coordination@google.com
Affected Software | Affected Version | How to fix |
---|---|---|
pip/protobuf | >=4.0.0<4.21.6 | 4.21.6 |
pip/protobuf | >=3.20.0<3.20.2 | 3.20.2 |
pip/protobuf | >=3.19.0<3.19.5 | 3.19.5 |
pip/protobuf | <3.18.3 | 3.18.3 |
Google Protocol Buffers (Protobuf) C++ | <3.18.3 | |
Google Protocol Buffers (Protobuf) C++ | >=3.19.0<3.19.5 | |
Google Protocol Buffers (Protobuf) C++ | >=3.20.0<3.20.2 | |
Google Protocol Buffers (Protobuf) C++ | >=3.21.0<3.21.6 | |
Google Protocol Buffers Python | <3.18.3 | |
Google Protocol Buffers Python | >=3.19.0<3.19.5 | |
Google Protocol Buffers Python | >=3.20.0<3.20.2 | |
Google Protocol Buffers Python | >=4.0.0<4.21.6 | |
Fedora | =36 | |
Fedora | =37 | |
Debian | =10.0 |
Sign up to SecAlerts for real-time vulnerability data matched to your software, aggregated from hundreds of sources.
CVE-2022-1941 is rated as moderate severity due to its potential to cause denial of service (DoS) by triggering out of memory conditions.
To mitigate CVE-2022-1941, upgrade Protocol Buffers to version 3.20.2 or 4.21.6 and ensure your environment does not use the affected versions.
CVE-2022-1941 affects Protocol Buffers versions from 3.0.0 up to 3.18.3, including specific ranges between versions up to 4.21.6.
CVE-2022-1941 is a message parsing and memory management vulnerability impacting both C++ and Python implementations of Protocol Buffers.
Services utilizing the vulnerable installations of Protocol Buffers in C++ or Python are at risk of experiencing denial of service due to this vulnerability.