CVE-2026-104635 Details
Description
Uncontrolled Recursion vulnerability in Protobuf.JSON.Decode in elixir-protobuf protobuf allows an unauthenticated remote attacker to crash the decoding process via a deeply nested JSON document. Any application that decodes attacker-supplied JSON with Protobuf.JSON.decode/3, Protobuf.JSON.decode!/3, or Protobuf.JSON.from_decoded/3 into a schema that contains a self-referential or cyclic message type is affected. In lib/protobuf/json/decode.ex, the embedded-message clause of decode_singular/3 recurses into internal_from_json_data/3 once per nesting level without incrementing or checking the decoder's depth counter. The depth guard increase_depth_and_maybe_throw/1 covers only the Google.Protobuf.ListValue and Google.Protobuf.Struct clauses, so the recursion_limit option has no effect on user-defined message types. Each nesting level allocates a stack frame and heap objects, and a sufficiently deep document exhausts the memory of the decoding process. Confidentiality and integrity are not affected. This issue affects protobuf: from 0.8.0 before 0.17.1.
A vulnerability allowing uncontrolled recursion has been identified in the elixir-protobuf Protobuf library, specifically within the JSON decoding module. This issue allows an unauthenticated remote attacker to crash the decoding process by sending a deeply nested JSON document. The vulnerability arises when the JSON is decoded into a schema containing self-referential or cyclic message types, using the Protobuf.JSON.decode/3, Protobuf.JSON.decode!/3, or Protobuf.JSON.from_decoded/3 functions. The problem is rooted in the decoder's failure to properly manage recursion depth for user-defined message types, which can lead to significant memory and stack exhaustion, causing the process to crash. This flaw affects versions 0.8.0 prior to 0.17.1 of the elixir-protobuf Protobuf library.
The vulnerability has been fixed in Protobuf version 0.17.1. Users should upgrade to this version. As an interim measure, applications can reject or pre-validate JSON documents for excessive nesting before decoding.
Metrics
CVSS 4.0 Severity and Vector Strings:
CVSS 3.x Severity and Vector Strings:
No data available for CVSS Version 2.0 on this CVE.
Volerion
Assessed Oct 9, 2026CISA-ADP
Assessed Oct 15, 2026References to Advisories, Solutions, and Tools
By selecting these links, you will be leaving this site. These are references gathered from the official CVE record and are not endorsed by Volerion.
| URL | Source(s) | Tag(s) |
|---|---|---|
| https://osv.dev/vulnerability/EEF-CVE-2026-104635 | CISA-ADP | AdvisoryExploitTechnical Analysis |
| https://cna.erlef.org/cves/CVE-2026-104635.html | EEF | AdvisoryPartial Content |
| https://github.com/elixir-protobuf/protobuf/commit/b0a1d4eaffaf50012fa71a8e931a47cf252d0370 | EEF | Source CodeVendor |
| https://github.com/elixir-protobuf/protobuf/commit/e9432ad1c4099511905353cebcececa3a1f7c3ff | EEF | Source CodeVendor |
| https://github.com/elixir-protobuf/protobuf/security/advisories/GHSA-m497-c2h9-rvw6 | EEF | AdvisoryExploitRemedyVendor |
| https://osv.dev/vulnerability/EEF-CVE-2026-104635 | EEF | AdvisoryExploitTechnical Analysis |
Weakness Enumeration
| CWE-ID | CWE Name | Source |
|---|---|---|
| CWE-674 | Uncontrolled Recursion | EEF |
Affected Products
| Product | Versions |
|---|---|
| elixir-protobuf protobuf | >= 0.8.0, <= 0.17.0 (semver) |
CPE
Remediation
| |
Change History
3 change records found show changes
| Date | Action | Recorded By |
|---|---|---|
| Oct 15, 2026 | CVE Modified | CISA-ADP |
| Oct 9, 2026 | CVE Modified | EEF |
| Oct 9, 2026 | New CVE Received | EEF |
Volerion