CVE-2022-1941: Out of Memory issue in ProtocolBuffers for cpp and python

Published 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

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 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

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)

Other sources

A parsing vulnerability for the MessageSet type in the ProtocolBuffers versions prior to and including 3.16.1, 3.17.3, 3.18.2, 3.19.4, 3.20.1 and 3.21.5 for protobuf-cpp, and versions prior to and including 3.16.1, 3.17.3, 3.18.2, 3.19.4, 3.20.1 and 4.21.5 for protobuf-python can lead to out of memory failures. A specially crafted message with multiple key-value per elements creates parsing issues, and can lead to a Denial of Service against services receiving unsanitized input. We recommend upgrading to versions 3.18.3, 3.19.5, 3.20.2, 3.21.6 for protobuf-cpp and 3.18.3, 3.19.5, 3.20.2, 4.21.6 for protobuf-python. Versions for 3.16 and 3.17 are no longer updated.

MITRE

Out of Memory issue in ProtocolBuffers for cpp and python

Microsoft

Affected Software

37 affected componentsFixes available
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 protobuf-cpp<3.18.3
Google protobuf-cpp>=3.19.0<3.19.5
Google protobuf-cpp>=3.20.0<3.20.2
Google protobuf-cpp>=3.21.0<3.21.6
Google protobuf-python<3.18.3
Google protobuf-python>=3.19.0<3.19.5
Google protobuf-python>=3.20.0<3.20.2
Google protobuf-python>=4.0.0<4.21.6
Fedoraproject Fedora=36
Fedoraproject Fedora=37
Debian Debian Linux=10.0
IBM Watson Studio on Cloud Pak for Data<=4.0
IBM Watson Studio on Cloud Pak for Data<=5.0
Microsoft azl3 pytorch 2.2.2-2
Microsoft azl3 python-tensorboard 2.16.2-1
Microsoft azl3 protobuf 25.3-1
Microsoft azl3 tensorflow 2.16.1-1
Microsoft azl3 python-tensorboard 2.11.0-3
Microsoft cbl2 mysql 8.0.40-1
Microsoft cbl2 grpc 1.42.0-11
Microsoft cbl2 pytorch 2.0.0-7
Microsoft azl3 keras 3.1.1-1
Microsoft azl3 mysql 8.0.40-1
Microsoft cbl2 protobuf 3.17.3-3
Microsoft cm1 mozjs60 60.9.0-13
Microsoft azl3 protobuf 3.17.3-2
Microsoft azl3 keras 2.11.0-3
Microsoft azl3 tensorflow 2.11.1-1
Microsoft cm1 protobuf 3.14.0-1
Microsoft cm1 mysql 8.0.32-1
Microsoft azl3 pytorch 2.2.2-7
Microsoft azl3 mysql 8.0.36-1
Microsoft cm1 grpc 1.35.0-9

Event History

Sep 22, 2022
CVE Published
via MITRE·12:00 AM
Data Sourced
via MITRE·12:00 AM
DescriptionWeakness
Sep 23, 2022
Advisory Published
via GitHub·08:31 PM
Jun 30, 2024
Data Sourced
via Microsoft·02:00 PM
DescriptionSeverityWeakness
Data Sourced
via Microsoft·02:00 PM
Affected Software
Updated
via Microsoft·02:00 PM
Affected Software
Updated
via Microsoft·02:00 PM
DescriptionSeverity
Aug 28, 2025
Data Sourced
via IBM·12:00 AM
DescriptionAffected Software

Parent advisories

This vulnerability appears in the following advisories.

Free Weekly Intel

Don't miss critical vulnerabilities

Join thousands of security professionals who receive our weekly digest of trending CVEs, zero-days, and exploited vulnerabilities.

No spam. Unsubscribe anytime.

Frequently Asked Questions

1

What is the severity of CVE-2022-1941?

CVE-2022-1941 is rated as moderate severity due to its potential to cause denial of service (DoS) by triggering out of memory conditions.

2

How do I fix CVE-2022-1941?

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.

3

Which versions are affected by CVE-2022-1941?

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.

4

What type of vulnerability is CVE-2022-1941?

CVE-2022-1941 is a message parsing and memory management vulnerability impacting both C++ and Python implementations of Protocol Buffers.

5

What services are at risk from CVE-2022-1941?

Services utilizing the vulnerable installations of Protocol Buffers in C++ or Python are at risk of experiencing denial of service due to this vulnerability.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203