Skip to content

← Public intelligence

Go package

github.com/ipld/go-ipld-prime

Open actionable advisories and recorded vendor fixes. This public package view has no inventory attached and cannot establish whether your deployment is affected. A vendor fix never resolves your finding; verify your installed version and the source guidance.

Open advisories

3 actionable advisories, newest first. Withdrawn advisories and news are excluded. Coverage is partial.

  1. Medium, CVSS 6.2GoPublished

    go-ipld-prime's DAG-CBOR and DAG-JSON decoders have unbounded recursion depth

    CVE-2026-42328 · GHSA-w239-58x2-q8p5

    Affected
    • Go github.com/ipld/go-ipld-prime < 0.23.0
    Fixed in
    0.23.0· Vendor fix available
    Issue
    The DAG-CBOR and DAG-JSON decoders recurse on each nested map or list without a depth limit. A payload containing deeply nested collections causes the decoder to recurse once per level, growing the goroutine stack until the Go runtime terminates the process with a fatal stack overflow (distinct from a recoverable panic). For DAG-CBOR, a payload of approximately 2 MB, consisting of repeated 0x81 (array-of-1) bytes followed by a terminator, produces around 2 million recursion frames and reliably exhausts Go's default 1 GB goroutine stack. The existing allocation budget does not prevent this: each nested collection header costs only a handful of budget units, so the stack is exhausted before the budget is. DAG-JSON has equivalent exposure via [[[...]]]-style payloads; it has no budget system and is therefore unprotected against recursion depth as well. Schema-free decoding (using basicnode.Prototype.Any) allows arbitrary nesting depth. Schema-bound decoding bounds nesting only when the…

    Recommended action: Upgrade to 0.23.0 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →
  2. Medium, CVSS 6.2GoPublished

    go-ipld-prime: DAG-CBOR decoder unbounded memory allocation from CBOR headers

    CVE-2026-35480 · GHSA-378j-3jfj-8r9f

    Affected
    • Go github.com/ipld/go-ipld-prime < 0.22.0
    Fixed in
    0.22.0· Vendor fix available
    Issue
    The DAG-CBOR decoder uses collection sizes declared in CBOR headers as Go preallocation hints for maps and lists. The decoder does not cap these size hints or account for their cost in its allocation budget, allowing small payloads to cause excessive memory allocation. A CBOR map or list header can declare an arbitrarily large number of entries, causing the decoder to preallocate proportionally large backing structures before any entries are actually read. Because the allocation budget is only decremented as entries are decoded (not when sizes are declared), this cost is effectively invisible to the budget system. This is compounded by nesting: each level of a nested structure triggers its own unchecked preallocation while consuming minimal budget (one entry per parent level), so a payload under 100 bytes with 10 levels of nesting can cause over 9GB of allocation. Schema-free decoding (i.e. using basicnode.Prototype.Any) allows arbitrary nesting depth. Schema-bound decoding limits…

    Recommended action: Upgrade to 0.22.0 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →
  3. Medium, CVSS 5.9GoPublished

    go-ipld-prime/codec/json may panic if asked to encode bytes

    CVE-2023-22460 · GHSA-c653-6hhg-9x92

    Affected
    • Go github.com/ipld/go-ipld-prime < 0.19.0
    Fixed in
    0.19.0· Vendor fix available
    Issue
    go-ipld-prime is a series of Go interfaces for manipulating IPLD data and a Go module that contains the go-ipld-prime/codec/json codec. Impact Encoding data which contains a Bytes kind Node will pass a Bytes token to the JSON encoder which will panic as it doesn't expect to receive Bytes tokens. Such an encoding should be treated as an error, as plain JSON should not be able to encode Bytes. This only impacts uses of the "json" codec, "dag-json" is not impacted. Use of "json" as a decoder is not impacted. Patches Fixed in v0.19.0. Workarounds Prefer the "dag-json" codec which has the ability to encode bytes. References See fix in #472

    Recommended action: Upgrade to 0.19.0 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →