Lucene search

K
vulnrichmentGoVULNRICHMENT:CVE-2024-24786
HistoryMar 05, 2024 - 10:22 p.m.

CVE-2024-24786 Infinite loop in JSON unmarshaling in google.golang.org/protobuf

2024-03-0522:22:35
Go
github.com
2
cve-2024-24786
json unmarshaling
protojson.unmarshal
google.golang.org/protobuf
google.protobuf.any value
unmarshaloptions.discardunknown option

6.5 Medium

AI Score

Confidence

Low

0.0004 Low

EPSS

Percentile

15.6%

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.

CNA Affected

[
  {
    "vendor": "google.golang.org/protobuf",
    "product": "google.golang.org/protobuf/encoding/protojson",
    "versions": [
      {
        "status": "affected",
        "version": "0",
        "lessThan": "1.33.0",
        "versionType": "semver"
      }
    ],
    "packageName": "google.golang.org/protobuf/encoding/protojson",
    "collectionURL": "https://pkg.go.dev",
    "defaultStatus": "unaffected",
    "programRoutines": [
      {
        "name": "UnmarshalOptions.unmarshal"
      },
      {
        "name": "Unmarshal"
      },
      {
        "name": "UnmarshalOptions.Unmarshal"
      }
    ]
  },
  {
    "vendor": "google.golang.org/protobuf",
    "product": "google.golang.org/protobuf/internal/encoding/json",
    "versions": [
      {
        "status": "affected",
        "version": "0",
        "lessThan": "1.33.0",
        "versionType": "semver"
      }
    ],
    "packageName": "google.golang.org/protobuf/internal/encoding/json",
    "collectionURL": "https://pkg.go.dev",
    "defaultStatus": "unaffected",
    "programRoutines": [
      {
        "name": "Decoder.Read"
      },
      {
        "name": "Decoder.Peek"
      }
    ]
  }
]