Uncontrolled Recursion Affecting protobuf package, versions >=0.8.0 <0.17.0


Severity

Recommended
0.0
high
0
10

CVSS assessment by Snyk's Security Team. Learn more

Threat Intelligence

Exploit Maturity
Proof of Concept

Do your applications use this vulnerable package?

In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.

Test your applications
  • Snyk IDSNYK-HEX-PROTOBUF-17987673
  • published16 Jul 2026
  • disclosed15 Jul 2026
  • creditPJUllrich

Introduced: 15 Jul 2026

CVE-2026-54451  (opens in a new tab)
CWE-674  (opens in a new tab)

How to fix?

Upgrade protobuf to version 0.17.0 or higher.

Overview

protobuf is a pure Elixir implementation of Google Protobuf.

Affected versions of this package are vulnerable to Uncontrolled Recursion in embedded-message decoding through value_for_field/3 in lib/protobuf/decoder.ex. An attacker can crash a service by sending a protobuf payload that nests a self-referential or cyclic embedded message hundreds of thousands or millions of levels deep. The decoder recurses once per embedded level with no depth limit, exhausting memory and CPU and pinning the BEAM scheduler while it processes the request; a small number of such requests can take the node offline.

Notes

  • The advisory applies only to schemas that can recurse through embedded messages, such as self-referential types or type cycles; flat message definitions are not affected by this failure mode.
  • The decoder’s default nesting cap is 100, but callers can pass :max_nesting_depth through Protobuf.decode/3 to override it for a given decode path.

CVSS Base Scores

version 4.0
version 3.1