protobufjs: Denial of service through unbounded Any expansion during JSON conversion
Collected exploitation and prediction evidence
Risk source coverageCISA KEV is observed exploitation evidence. FIRST EPSS is a dated prediction of exploitation in the next 30 days. Missing scores are unknown. This collector requests predictions only for explicit CVE aliases in the public NuGet archive; Microsoft release views retain their existing prediction scope.
No collected risk observation for these identifiers. This does not establish absence of exploitation or a zero probability.
cve-program · CVE-2026-48712
Publishedprotobufjs compiles protobuf definitions into JavaScript (JS) functions. Prior to 7.6.1 and 8.4.1, protobufjs could recurse without a depth limit while converting decoded messages to plain objects or JSON. This affected generated toObject() conversion and the custom google.protobuf.Any JSON conversion path. A crafted protobuf binary payload containing deeply nested Any values could cause the JavaScript call stack to be exhausted during conversion to JSON. This vulnerability is fixed in 7.6.1 and 8.4.1.
- Source published
- 22 Jun 2026 16:21:21 UTC
- Source modified
- 23 Jun 2026 15:54:24 UTC
- Observed here
- 23 Oct 2026 15:48:27 UTC
- Source terms
- CVE Program Terms of Use
Original source record · Cite this exact observation · Complete original publisher JSON
This view projects the publisher's source fields for reading; the original JSON retains additional fields and CVE enrichment containers. Attribution: cve-program · CVE Program Terms of Use. Source text is retained; field grouping and change labels are provided by ChangeIntel.
CVSS 3.1 · 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
euvd · EUVD-2026-38306
Publishedprotobufjs compiles protobuf definitions into JavaScript (JS) functions. Prior to 7.6.1 and 8.4.1, protobufjs could recurse without a depth limit while converting decoded messages to plain objects or JSON. This affected generated toObject() conversion and the custom google.protobuf.Any JSON conversion path. A crafted protobuf binary payload containing deeply nested Any values could cause the JavaScript call stack to be exhausted during conversion to JSON. This vulnerability is fixed in 7.6.1 and 8.4.1.
EUVD source date text has no stated timezone and is retained without inventing a UTC instant. Related bulletin membership is not an alias, common cause or applicability claim. A missing vector with a zero score is treated as unrated. Complete vendor/product and underlying source evidence remains in the original JSON.
Original publisher date fields
datePublished: Jun 22, 2026, 4:21:21 PM
dateUpdated: Jun 23, 2026, 3:54:24 PM
2 related source bulletins · separate from aliases
RHSA-2026:52768: Red Hat Security Advisory: Red Hat Developer Hub 1.9.8 release.
CVE-2026-5038 · CVE-2026-5079 · CVE-2026-13149 · CVE-2026-46625 · CVE-2026-48068 · CVE-2026-48069 · CVE-2026-48712 · CVE-2026-49978 · CVE-2026-59869 · CVE-2026-59877 · CVE-2026-59892
RHSA-2026:60520: Red Hat Security Advisory: RHOAI 3.4.4 - Red Hat OpenShift AI
CVE-2025-66471 · CVE-2025-66626 · CVE-2025-71329 · CVE-2025-71330 · CVE-2026-0545 · CVE-2026-2614 · CVE-2026-5241 · CVE-2026-5422 · CVE-2026-6322 · CVE-2026-6734 · CVE-2026-8643 · CVE-2026-9697 · CVE-2026-12143 · CVE-2026-12151 · CVE-2026-12243 · CVE-2026-12481 · CVE-2026-13149 · CVE-2026-13311 · CVE-2026-13676 · CVE-2026-13717 · CVE-2026-14450 · CVE-2026-15154 · CVE-2026-15218 · CVE-2026-15378 · CVE-2026-15467 · CVE-2026-15581 · CVE-2026-16745 · CVE-2026-18608 · CVE-2026-18611 · CVE-2026-18617 · CVE-2026-18620 · CVE-2026-18621 · CVE-2026-18948 · CVE-2026-18951 · CVE-2026-18982 · CVE-2026-25681 · CVE-2026-27136 · CVE-2026-32280 · CVE-2026-32283 · CVE-2026-33079 · CVE-2026-33245 · CVE-2026-33811 · CVE-2026-33814 · CVE-2026-34993 · CVE-2026-35397 · CVE-2026-39820 · CVE-2026-39821 · CVE-2026-39828 · CVE-2026-39829 · CVE-2026-39830 · CVE-2026-39831 · CVE-2026-39835 · CVE-2026-40171 · CVE-2026-41672 · CVE-2026-41673 · CVE-2026-41675 · CVE-2026-42211 · CVE-2026-42215 · CVE-2026-42264 · CVE-2026-42266 · CVE-2026-42284 · CVE-2026-42305 · CVE-2026-42311 · CVE-2026-42338 · CVE-2026-42342 · CVE-2026-42499 · CVE-2026-42502 · CVE-2026-42508 · CVE-2026-42557 · CVE-2026-44017 · CVE-2026-44018 · CVE-2026-44020 · CVE-2026-44240 · CVE-2026-44244 · CVE-2026-44289 · CVE-2026-44290 · CVE-2026-44291 · CVE-2026-44292 · CVE-2026-44293 · CVE-2026-44486 · CVE-2026-44487 · CVE-2026-44488 · CVE-2026-44492 · CVE-2026-44494 · CVE-2026-44495 · CVE-2026-44496 · CVE-2026-44513 · CVE-2026-44660 · CVE-2026-44705 · CVE-2026-44724 · CVE-2026-44727 · CVE-2026-44827 · CVE-2026-44843 · CVE-2026-45292 · CVE-2026-45623 · CVE-2026-45736 · CVE-2026-45740 · CVE-2026-45804 · CVE-2026-46595 · CVE-2026-46597 · CVE-2026-46625 · CVE-2026-47214 · CVE-2026-48526 · CVE-2026-48710 · CVE-2026-48712 · CVE-2026-48779 · CVE-2026-48801 · CVE-2026-49476 · CVE-2026-49477 · CVE-2026-49851 · CVE-2026-49978 · CVE-2026-50193 · CVE-2026-53550 · CVE-2026-54058 · CVE-2026-54060 · CVE-2026-54283 · CVE-2026-54293 · CVE-2026-55379 · CVE-2026-55380 · CVE-2026-55685 · CVE-2026-56121 · CVE-2026-56208 · CVE-2026-56209 · CVE-2026-56210 · CVE-2026-56211 · CVE-2026-58049 · CVE-2026-59197 · CVE-2026-59199 · CVE-2026-59200 · CVE-2026-59204 · CVE-2026-59205 · CVE-2026-59869 · CVE-2026-59873 · CVE-2026-59874 · CVE-2026-59884 · CVE-2026-59885 · CVE-2026-59886 · CVE-2026-64835 · CVE-2026-64849 · CVE-2026-69152 · CVE-2026-69192 · CVE-2026-69243 · CVE-2026-69244
- Source published
- Jun 22, 2026, 4:21:21 PM (timezone not stated)
- Source modified
- Jun 23, 2026, 3:54:24 PM (timezone not stated)
- Observed here
- 7 Nov 2026 11:30:19 UTC
- Source terms
- ENISA EUVD · source terms and attribution apply
Original source record · Cite this exact observation · Complete original publisher JSON
This view projects the publisher's source fields for reading; the original JSON retains additional fields and CVE enrichment containers. Attribution: euvd · ENISA EUVD · source terms and attribution apply. Source text is retained; field grouping and change labels are provided by ChangeIntel.
EUVD CVSS 3.1 · 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
nvd · CVE-2026-48712
Publishedprotobufjs compiles protobuf definitions into JavaScript (JS) functions. Prior to 7.6.1 and 8.4.1, protobufjs could recurse without a depth limit while converting decoded messages to plain objects or JSON. This affected generated toObject() conversion and the custom google.protobuf.Any JSON conversion path. A crafted protobuf binary payload containing deeply nested Any values could cause the JavaScript call stack to be exhausted during conversion to JSON. This vulnerability is fixed in 7.6.1 and 8.4.1.
NVD analysis and CPE criteria are source context, not proof that a package or your environment is affected. Complete affected data, logical configurations and SSVC are retained in the original JSON.
Source analysis status: Analyzed
Weakness classifications: CWE-674
Original publisher date fields
published: 2026-06-22T18:16:39.640
lastModified: 2026-10-25T23:10:00.167
1 source CPE criteria · context only
- cpe:2.3:a:protobufjs_project:protobufjs:*:*:*:*:*:node.js:*:*
The original JSON retains the logical configuration operators, exclusions and version bounds.
- Source published
- 22 Jun 2026 18:16:39 UTC
- Source modified
- 25 Oct 2026 23:10:00 UTC
- Observed here
- 27 Oct 2026 13:11:53 UTC
- Source terms
- NIST NVD usage terms; underlying source attribution retained
Original source record · Cite this exact observation · Complete original publisher JSON
This view projects the publisher's source fields for reading; the original JSON retains additional fields and CVE enrichment containers. Attribution: nvd · NIST NVD usage terms; underlying source attribution retained. Source text is retained; field grouping and change labels are provided by ChangeIntel.
CVSS 3.1 · [email protected] · Secondary · 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
osv · GHSA-wcpc-wj8m-hjx6
Published## Summary protobufjs could recurse without a depth limit while converting decoded messages to plain objects or JSON. This affected generated `toObject()` conversion and the custom `google.protobuf.Any` JSON conversion path. A crafted protobuf binary payload containing deeply nested `Any` values could cause the JavaScript call stack to be exhausted during conversion to JSON. ## Impact An attacker who can provide protobuf binary data decoded by an application may be able to crash the process or otherwise cause message conversion to fail with a stack overflow. This affects applications that decode untrusted protobuf input containing `google.protobuf.Any` values and then convert decoded messages to JSON or plain objects with JSON conversion enabled, for example through `JSON.stringify(message)`, `Message#toJSON()`, or `Type.toObject(message, { json: true })`. Applications that only decode and re-encode protobuf binary data without converting decoded messages to JSON are not directly affected by this issue. ## Preconditions * The application must decode protobuf binary data influenced by an attacker. * The application schema must include `google.protobuf.Any`, and the referenced `type_url` must resolve to a message type in the loaded protobuf root. * The application must convert the decoded message to JSON or a plain object through an affected conversion path. * The crafted input must contain deeply nested `Any` values that are expanded during conversion. ## Workarounds Avoid converting untrusted protobuf messages containing `google.protobuf.Any` values to JSON with affected versions. If immediate upgrade is not possible, reject or limit messages with deeply nested `Any` payloads at an outer protocol boundary where feasible, avoid JSON conversion of untrusted `Any` values, or isolate message conversion in a process that can be safely restarted.
- Source published
- 15 Jun 2026 17:30:15 UTC
- Source modified
- 10 Sep 2026 03:51:09 UTC
- Observed here
- 24 Oct 2026 13:17:17 UTC
- Source terms
- GitHub Advisory Database · CC-BY-4.0
Original source record · Cite this exact observation · Complete original publisher JSON
This view projects the publisher's source fields for reading; the original JSON retains additional fields and CVE enrichment containers. Attribution: osv · GitHub Advisory Database · CC-BY-4.0. Source text is retained; field grouping and change labels are provided by ChangeIntel.
CVSS_V3 · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Publisher rating · HIGH