blob: c302574acf86f9bbd2cff1e1d98f6807154be343 [file]
{
"schema_version": "1.3.1",
"id": "GO-2026-5046",
"modified": "0001-01-01T00:00:00Z",
"published": "0001-01-01T00:00:00Z",
"aliases": [
"CVE-2026-46385",
"GHSA-w8j3-pq8g-8m7w"
],
"summary": "CPU exhaustion in Avro decoder in github.com/iskorotkov/avro/v2 and github.com/hamba/avro/v2",
"details": "The Avro array and map decoders loop over an attacker-controlled block-count value without checking the underlying reader's error state inside the loop body. Reader.ReadBlockHeader returns the count as a Go int, which is 64-bit on amd64 and arm64 targets. A producer can declare a block of up to math.MaxInt64 elements followed by EOF or any truncated payload, and the decoder will attempt that many no-op iterations before propagating the error.\n\nThe realistic ceiling is indefinite until the worker is killed externally. A single hostile payload pins a CPU core until the process is OOM-killed, deadline-cancelled, or terminated, resulting in a remote, unauthenticated denial-of-service.\n\nThe fix exits the loop on the first inner-decode error.",
"affected": [
{
"package": {
"name": "github.com/iskorotkov/avro/v2",
"ecosystem": "Go"
},
"ranges": [
{
"type": "SEMVER",
"events": [
{
"introduced": "0"
},
{
"fixed": "2.33.0"
}
]
}
],
"ecosystem_specific": {
"imports": [
{
"path": "github.com/iskorotkov/avro/v2"
}
]
}
},
{
"package": {
"name": "github.com/hamba/avro/v2",
"ecosystem": "Go"
},
"ranges": [
{
"type": "SEMVER",
"events": [
{
"introduced": "0"
}
]
}
],
"ecosystem_specific": {
"imports": [
{
"path": "github.com/hamba/avro/v2"
}
]
}
}
],
"references": [
{
"type": "ADVISORY",
"url": "https://github.com/iskorotkov/avro/security/advisories/GHSA-w8j3-pq8g-8m7w"
},
{
"type": "FIX",
"url": "https://github.com/iskorotkov/avro/commit/2ce4242e6095d93470ab3b37ed6082b0596f325c"
},
{
"type": "FIX",
"url": "https://github.com/iskorotkov/avro/commit/b124caa58a821f68f100d86f045f9753b88881e8"
}
],
"credits": [
{
"name": "Daniel Błażewicz"
},
{
"name": "Ivan Korotkov"
}
],
"database_specific": {
"url": "https://pkg.go.dev/vuln/GO-2026-5046",
"review_status": "REVIEWED"
}
}