{"id":"EUVD-2026-110367","revision":null,"records":[{"revision":"5aa2cc4c4efe43f3bcc0c761f1f150b8","observedAt":"2026-10-26T21:35:30.991+00:00","statement":{"source":"cve-program","id":"CVE-2026-116581","aliases":[],"title":"Seroval: fromJSON deserializer trusts sequence doneAt (unauthenticated event-loop DoS)","description":"Seroval facilitates JavaScript value stringification, including complex structures beyond JSON.stringify capabilities. Prior to 1.6.8, fromJSON and fromCrossJSON do not validate a sequence node's done index. A crafted done index can create an iterator that never finishes when application code consumes it to completion. An unauthenticated request to a service that deserializes untrusted input can therefore block the event loop, exhaust process memory, or make the service unavailable. This issue is fixed in version 1.6.8.","state":0,"publishedAt":"2026-10-26T20:41:52.905+00:00","modifiedAt":"2026-10-26T20:41:52.905+00:00","affected":[{"ecosystem":"Vendor product","name":"seroval","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"vendor\": \"lxsmnsyc\",\n                    \"product\": \"seroval\",\n                    \"versions\": [\n                        {\n                            \"version\": \"< 1.6.8\",\n                            \"status\": \"affected\"\n                        }\n                    ]\n                }"}],"metrics":[{"system":"CVSS 3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","score":7.5,"severity":"HIGH"}],"references":["https://github.com/lxsmnsyc/seroval/security/advisories/GHSA-97r2-qh9m-474h","https://github.com/lxsmnsyc/seroval/commit/e176f9267e59ddd6c9de89cc9fe85c5b37a5b728","https://github.com/lxsmnsyc/seroval/releases/tag/seroval@1.6.8"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-116581","license":"CVE Program Terms of Use","key":"cve-program:CVE-2026-116581","identifiers":["CVE-2026-116581"]},"retained":false,"historicalAffected":[]},{"revision":"340d28cc3a03458bac8bccf7be2c06c1","observedAt":"2026-10-28T21:57:36.957+00:00","statement":{"source":"euvd","id":"EUVD-2026-110367","aliases":["CVE-2026-116581"],"title":"Seroval facilitates JavaScript value stringification, including complex structures beyond JSON.stringify capabilities. Prior to 1.6.8, fromJSON and fromCrossJSON do not validate a sequence node's done index. A crafted done index can create …","description":"Seroval facilitates JavaScript value stringification, including complex structures beyond JSON.stringify capabilities. Prior to 1.6.8, fromJSON and fromCrossJSON do not validate a sequence node's done index. A crafted done index can create an iterator that never finishes when application code consumes it to completion. An unauthenticated request to a service that deserializes untrusted input can therefore block the event loop, exhaust process memory, or make the service unavailable. This issue is fixed in version 1.6.8.","state":0,"publishedAt":null,"modifiedAt":null,"affected":[],"metrics":[{"system":"EUVD CVSS 3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","score":7.5,"severity":null}],"references":["https://github.com/lxsmnsyc/seroval/security/advisories/GHSA-97r2-qh9m-474h","https://github.com/lxsmnsyc/seroval/commit/e176f9267e59ddd6c9de89cc9fe85c5b37a5b728","https://github.com/lxsmnsyc/seroval/releases/tag/seroval@1.6.8"],"sourceUrl":"https://euvd.enisa.europa.eu/vulnerability/EUVD-2026-110367","license":"ENISA EUVD · source terms and attribution apply","enrichment":{"sourceStatus":null,"weaknesses":[],"productCriteria":[],"sourceDates":{"datePublished":"Oct 26, 2026, 8:41:52 PM","dateUpdated":"Oct 26, 2026, 8:41:52 PM"},"relatedAdvisories":[],"note":"EUVD source date text has no stated timezone and is retained without inventing a UTC instant. Related bulletin membership is not an alias, common cause or applicability claim. A missing vector with a zero score is treated as unrated. Complete vendor/product and underlying source evidence remains in the original JSON."},"key":"euvd:EUVD-2026-110367","identifiers":["EUVD-2026-110367","CVE-2026-116581"]},"retained":false,"historicalAffected":[]},{"revision":"196007669351492cb1f19d814f51a060","observedAt":"2026-10-28T21:57:06.789+00:00","statement":{"source":"nvd","id":"CVE-2026-116581","aliases":[],"title":"Seroval facilitates JavaScript value stringification, including complex structures beyond JSON.stringify capabilities. Prior to 1.6.8, fromJSON and fromCrossJSON do not validate a sequence node's done index. A crafted done index can create …","description":"Seroval facilitates JavaScript value stringification, including complex structures beyond JSON.stringify capabilities. Prior to 1.6.8, fromJSON and fromCrossJSON do not validate a sequence node's done index. A crafted done index can create an iterator that never finishes when application code consumes it to completion. An unauthenticated request to a service that deserializes untrusted input can therefore block the event loop, exhaust process memory, or make the service unavailable. This issue is fixed in version 1.6.8.","state":0,"publishedAt":"2026-10-26T21:18:15.903+00:00","modifiedAt":"2026-10-26T21:18:16.233+00:00","affected":[],"metrics":[{"system":"CVSS 3.1 · security-advisories@github.com · Secondary","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","score":7.5,"severity":"HIGH"}],"references":["https://github.com/lxsmnsyc/seroval/commit/e176f9267e59ddd6c9de89cc9fe85c5b37a5b728","https://github.com/lxsmnsyc/seroval/releases/tag/seroval@1.6.8","https://github.com/lxsmnsyc/seroval/security/advisories/GHSA-97r2-qh9m-474h"],"sourceUrl":"https://nvd.nist.gov/vuln/detail/CVE-2026-116581","license":"NIST NVD usage terms; underlying source attribution retained","enrichment":{"sourceStatus":"Deferred","weaknesses":["CWE-835","CWE-1284"],"productCriteria":[],"sourceDates":{"published":"2026-10-26T21:18:15.903","lastModified":"2026-10-26T21:18:16.233"},"relatedAdvisories":[],"note":"NVD analysis and CPE criteria are source context, not proof that a package or your environment is affected. Complete affected data, logical configurations and SSVC are retained in the original JSON."},"key":"nvd:CVE-2026-116581","identifiers":["CVE-2026-116581"]},"retained":false,"historicalAffected":[]},{"revision":"333005bd221e40e4aca442722ab8e550","observedAt":"2026-10-28T21:55:29.474+00:00","statement":{"source":"osv","id":"GHSA-97r2-qh9m-474h","aliases":["CVE-2026-116581"],"title":"Seroval: fromJSON deserializer trusts node-supplied array length and sequence doneAt (unauthenticated event-loop DoS)","description":"### Summary\n\n`fromJSON` and `fromCrossJSON` used two node fields without checking them.\n\n- An array node's element list was not checked to be an array. A small payload could set the length the decoder looped over. This part is also tracked in GHSA-wp97-x4hv-qvhp.\n- A sequence node's done index was not checked. A crafted value produced an iterator that never finished.\n\n### Impact\n\nA service that passes untrusted input to `fromJSON` or `fromCrossJSON` can be made unavailable by an unauthenticated request.\n\n- The array case blocks the thread while the decoder runs.\n- The sequence case makes any code that reads the resulting iterator to the end run forever.\n\n### Patches\n\nFixed in `seroval@1.6.8`.\n\n- Element lists must be arrays.\n- A sequence node's throw and done indices must be integers from -1 up to the last element index.\n\nInvalid input throws `SerovalMalformedNodeError`.\n\n### Workarounds\n\nNone. Upgrade to 1.6.8.","state":0,"publishedAt":"2026-10-28T21:17:27+00:00","modifiedAt":"2026-10-28T21:30:06.7995772+00:00","affected":[{"ecosystem":"npm","name":"seroval","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"0"},{"kind":"fixed","version":"1.6.8"}]}],"versions":[],"rawVersionEvidence":null}],"metrics":[{"system":"CVSS_V3","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","score":null,"severity":null},{"system":"Publisher rating","vector":null,"score":null,"severity":"HIGH"}],"references":["https://github.com/lxsmnsyc/seroval/security/advisories/GHSA-97r2-qh9m-474h","https://nvd.nist.gov/vuln/detail/CVE-2026-116581","https://github.com/lxsmnsyc/seroval/commit/cdcee3e3bc384ee844360844f8ea98fd2b275d69","https://github.com/lxsmnsyc/seroval/commit/e176f9267e59ddd6c9de89cc9fe85c5b37a5b728","https://github.com/lxsmnsyc/seroval","https://github.com/lxsmnsyc/seroval/releases/tag/seroval@1.6.8"],"sourceUrl":"https://github.com/advisories/GHSA-97r2-qh9m-474h","license":"GitHub Advisory Database · CC-BY-4.0","key":"osv:GHSA-97r2-qh9m-474h","identifiers":["GHSA-97r2-qh9m-474h","CVE-2026-116581"]},"retained":false,"historicalAffected":[]}],"coverage":[{"source":"cisa-kev:global","scope":"Complete CISA KEV catalog; all vendors. Missing entries do not establish absence of exploitation.","generation":"2026-10-29T04:47:56.4739723+00:00","complete":true,"records":1762,"lastAttemptAt":"2026-10-29T04:47:56.4739723+00:00","lastSuccessAt":"2026-10-29T04:47:56.6135416+00:00","error":null,"lastVerifiedAt":"2026-10-29T04:47:56.6135435+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"cve-program","scope":"Official CVE Program baseline and cumulative hourly delta; all vendors, published and rejected records","generation":"cve-b1f3f808444d5ea9fdb7335a1abbcb8866c29481d9b152338762db9defc61d11-a1d3393c037ae20a7f61b6ac4ba1393cce9f1484f90684894dc569d9d682fee5","complete":true,"records":416289,"lastAttemptAt":"2026-10-29T04:47:55.875552+00:00","lastSuccessAt":"2026-10-29T04:47:55.8312857+00:00","error":null,"lastVerifiedAt":"2026-10-29T04:47:55.875552+00:00","snapshotPublishedAt":"2026-10-29T04:29:04+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"euvd","scope":"Rolling EUVD lookups of CVE aliases in current public OSV archives; 500 identifiers per refresh, rechecked after 48 hours. Not a global EUVD catalog. Successful not-found lookups count as checked; they do not imply withdrawal or safety. No reader inventory is sent.","generation":"enrichment-3b2e83dd5b34445d9dec72daa1b4b7b5","complete":true,"records":13493,"lastAttemptAt":"2026-10-29T04:48:30.2523382+00:00","lastSuccessAt":"2026-10-29T03:27:42.955+00:00","error":null,"lastVerifiedAt":"2026-10-29T03:27:42.955+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":13574,"expectedIdentifiers":13574,"failedIdentifiers":0},{"source":"first-epss:nuget","scope":"FIRST EPSS for explicit CVE aliases in the collected public NuGet archive. Not a global EPSS backfill.","generation":"2026-10-29T04:47:56.4739723+00:00","complete":true,"records":1094,"lastAttemptAt":"2026-10-29T04:47:56.4739723+00:00","lastSuccessAt":"2026-10-29T04:47:56.6147791+00:00","error":null,"lastVerifiedAt":"2026-10-29T04:47:56.61478+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"nvd","scope":"Rolling NVD lookups of CVE aliases in current public OSV archives; 500 identifiers per refresh, rechecked after 48 hours. Not a global NVD catalog. Successful not-found lookups count as checked; they do not imply withdrawal or safety. No reader inventory is sent.","generation":"enrichment-96abbb88cc0547419a9b78c7bdea7d53","complete":false,"records":13508,"lastAttemptAt":"2026-10-29T04:48:27.8389808+00:00","lastSuccessAt":"2026-10-29T04:48:27.835+00:00","error":null,"lastVerifiedAt":"2026-10-29T04:48:27.835+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":13573,"expectedIdentifiers":13574,"failedIdentifiers":0},{"source":"osv:Go","scope":"Complete OSV Go ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"go-fc959b29ab508e2a816420caaa356e6d36e5d24778ebe897e047b2d9f7a859ea","complete":true,"records":9804,"lastAttemptAt":"2026-10-29T04:47:56.2722813+00:00","lastSuccessAt":"2026-10-28T21:57:04.9293356+00:00","error":null,"lastVerifiedAt":"2026-10-29T04:47:56.2722813+00:00","snapshotPublishedAt":"2026-10-28T21:33:04+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:NuGet","scope":"Complete OSV NuGet ecosystem archive, including GitHub Advisory Database records; NuGet version matching only","generation":"nuget-2de9ccc5290f060c7aa63f89c25dd76f655a64ba1aba7c05c97fa3bee4f09899","complete":true,"records":1967,"lastAttemptAt":"2026-10-29T04:47:56.0437284+00:00","lastSuccessAt":"2026-10-28T20:55:34.2982937+00:00","error":null,"lastVerifiedAt":"2026-10-29T04:47:56.0437284+00:00","snapshotPublishedAt":"2026-10-28T20:03:08+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:crates.io","scope":"Complete OSV crates.io ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"crates.io-851be70fd8ecd5e92a54ae7ac7e0c1326051f9b79107b41f70cc6adc68bca050","complete":true,"records":3004,"lastAttemptAt":"2026-10-29T04:47:56.3746675+00:00","lastSuccessAt":"2026-10-28T22:55:31.7476062+00:00","error":null,"lastVerifiedAt":"2026-10-29T04:47:56.3746675+00:00","snapshotPublishedAt":"2026-10-28T21:33:04+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:npm","scope":"Complete OSV npm ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"npm-d645872abd371f64972692b7250e7fd8e46cce6b1fe22ffec90fdffee1e247e5","complete":true,"records":230906,"lastAttemptAt":"2026-10-29T04:47:56.1655679+00:00","lastSuccessAt":"2026-10-29T03:27:13.9555317+00:00","error":null,"lastVerifiedAt":"2026-10-29T04:47:56.1655679+00:00","snapshotPublishedAt":"2026-10-29T03:03:16+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null}]}