| Package | Affected versions | Patched versions |
|---|---|---|
| github.com/hamba/avro/v2 | all versions | |
| github.com/iskorotkov/avro/v2 | < 2.33.0 | 2.33.0 |
The Avro map decoder accepts attacker-controlled block-element counts from the wire format and grows the destination map without enforcing an upper bound. A producer can declare an arbitrarily large map (in one block, or chunked across many sub-limit blocks) and exhaust process memory until the OOM killer fires.
The fix introduces Config.MaxMapAllocSize with cumulative enforcement across block boundaries. The new limit is opt-in: the field defaults to zero, which preserves the previous unbounded behavior for backward compatibility. Upgrading to v2.33.0 alone does not mitigate the issue; consumers of untrusted Avro data must explicitly set MaxMapAllocSize on their avro.Config.
Running one of these products? Scan your site to see whether it exposes a vulnerable version.
Scan my site free