CVE-2024-24786
Infinite loop in JSON unmarshaling in google.golang.org/protobuf
Severity Score
Exploit Likelihood
Affected Versions
Public Exploits
0Exploited in Wild
-Decision
Descriptions
The protojson.Unmarshal function can enter an infinite loop when unmarshaling certain forms of invalid JSON. This condition can occur when unmarshaling into a message which contains a google.protobuf.Any value, or when the UnmarshalOptions.DiscardUnknown option is set.
La función protojson.Unmarshal puede entrar en un bucle infinito al descomponer ciertas formas de JSON no válido. Esta condición puede ocurrir al descomponer en un mensaje que contiene un valor google.protobuf.Any, o cuando la opción UnmarshalOptions.DiscardUnknown está configurada.
A flaw was found in Golang's protobuf module, where the unmarshal function can enter an infinite loop when processing certain invalid inputs. This issue occurs during unmarshaling into a message that includes a google.protobuf.Any or when the UnmarshalOptions.DiscardUnknown option is enabled. This flaw allows an attacker to craft malicious input tailored to trigger the identified flaw in the unmarshal function. By providing carefully constructed invalid inputs, they could potentially cause the function to enter an infinite loop, resulting in a denial of service condition or other unintended behaviors in the affected system.
This update for kubernetes1.23 fixes the following issues. Escape, meta and control sequences in raw data output to terminal not neutralized. Bypass of policies imposed by the ImagePolicyWebhook admission plugin. Bypass of the mountable secrets policy enforced by the ServiceAccount admission plugin. Go1.20: excessive resource consumption when dealing with rapid stream resets. Google.golang.org/grpc, kube-apiserver: HTTP/2 rapid reset vulnerability. Golang.org/x/net: excessive CPU consumption when processing unlimited sets of headers. Kube-controller-manager pod crash when processing malformed HPA v1 manifests. Bypass of the mountable secrets policy enforced by the ServiceAccount admission plugin. Github.com/golang/protobuf: infinite loop when unmarshaling invalid JSON. Bug fixes. Use -trimpath in non-DBG mode for reproducible builds. Fixed multiple issues for successful 'kubeadm init' run. Update go to version 1.22.5 in build requirements.
CVSS Scores
SSVC
- Decision:Attend
Timeline
- 2024-01-30 CVE Reserved
- 2024-03-05 CVE Published
- 2025-02-13 CVE Updated
- 2025-07-22 EPSS Updated
- ---------- Exploited in Wild
- ---------- KEV Due Date
- ---------- First Exploit
CWE
- CWE-835: Loop with Unreachable Exit Condition ('Infinite Loop')
CAPEC
References (7)
URL | Date | SRC |
---|
URL | Date | SRC |
---|
URL | Date | SRC |
---|---|---|
https://access.redhat.com/security/cve/CVE-2024-24786 | 2025-06-26 | |
https://bugzilla.redhat.com/show_bug.cgi?id=2268046 | 2025-06-26 |
Affected Vendors, Products, and Versions
Vendor | Product | Version | Other | Status | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Vendor | Product | Version | Other | Status | <-- --> | Vendor | Product | Version | Other | Status |
Google.golang.org/protobuf Search vendor "Google.golang.org/protobuf" | Google.golang.org/protobuf/encoding/protojson Search vendor "Google.golang.org/protobuf" for product "Google.golang.org/protobuf/encoding/protojson" | < 1.33.0 Search vendor "Google.golang.org/protobuf" for product "Google.golang.org/protobuf/encoding/protojson" and version " < 1.33.0" | en |
Affected
| ||||||
Google.golang.org/protobuf Search vendor "Google.golang.org/protobuf" | Google.golang.org/protobuf/internal/encoding/json Search vendor "Google.golang.org/protobuf" for product "Google.golang.org/protobuf/internal/encoding/json" | < 1.33.0 Search vendor "Google.golang.org/protobuf" for product "Google.golang.org/protobuf/internal/encoding/json" and version " < 1.33.0" | en |
Affected
|