{"id":"CVE-2026-104845","aliases":["GHSA-jp82-f5mq-hwhp"],"url":"https://o3.security/vulnerability/CVE-2026-104845","summary":"Seroval: Memory exhaustion via unchecked TypedArray length in JSON deserialization","details":"# Summary\n\ndeserializeTypedArray casts the source node to ArrayBuffer without checking it and never bounds the element count. Pass a plain object with a length property and it hits the array-like TypedArray constructor, allocating that many elements. The offset guard above it can't stop this: source.byteLength is undefined, so the comparison is always false.\n\nThe length is one integer in the JSON, so a tiny payload can name any allocation size, and it runs synchronously inside fromJSON, starving the event loop instead of just slowing one request. fromCrossJSON is the same.\n\nImpact is unauthenticated CPU/memory exhaustion for any service deserializing untrusted Seroval JSON: same profile as the array-length and nested-depth DoS issues already fixed here. No confidentiality or integrity impact. DataView has the same unchecked cast but throws instead of allocating. A runtime instanceof ArrayBuffer check plus a size cap should fix it.","published":"2026-10-02T15:55:21.197Z","modified":"2026-10-21T02:54:32.823515389Z","cvss":{"score":7.5,"severity":"HIGH","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"},"epss":null,"cisaKev":null,"exploitsKnown":null,"affectedPackages":[{"ecosystem":"npm","name":"seroval","fixedVersion":"1.6.3"}],"fix":{"url":"https://github.com/lxsmnsyc/seroval/commit/ac0163e420ac7dcbbefac4d069bcefad300a4851","label":"lxsmnsyc/seroval@ac0163e"},"references":[{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/104xxx/CVE-2026-104845.json"},{"type":"ADVISORY","url":"https://github.com/lxsmnsyc/seroval/security/advisories/GHSA-jp82-f5mq-hwhp"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-104845"},{"type":"FIX","url":"https://github.com/lxsmnsyc/seroval/commit/ac0163e420ac7dcbbefac4d069bcefad300a4851"},{"type":"FIX","url":"https://github.com/lxsmnsyc/seroval/commit/e54a6f62784b9e48e3a5fa2ab4089ca69fb8996e"},{"type":"PACKAGE","url":"https://github.com/lxsmnsyc/seroval"}],"provenance":{"sources":["OSV.dev","FIRST.org (EPSS)"],"lastVerified":"2026-10-21T02:54:32.823515389Z"}}