{"id":"CVE-2025-50537","aliases":["DEBIAN-CVE-2025-50537","EUVD-2025-206359","GHSA-p5wg-g6qr-c7cg","ROOT-APP-NPM-CVE-2025-50537","UBUNTU-CVE-2025-50537"],"status":"published","title":"Withdrawn Advisory: eslint has a Stack Overflow when serializing objects with circular references","description":"Stack overflow vulnerability in eslint before 9.26.0 when serializing objects with circular references in eslint/lib/shared/serialization.js. The exploit is triggered via the RuleTester.run() method, which validates test cases and checks for duplicates. During validation, the internal function checkDuplicateTestCase() is called, which in turn uses the isSerializable() function for serialization checks. When a circular reference object is passed in, isSerializable() enters infinite recursion, ultimately causing a stack overflow.","severity":{"version":"3.1","score":5.5,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H","level":"medium","assessor":"adp","from":"cve"},"epss":{"day":"2026-11-12","score":0.00199,"percentile":0.09792,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-674"],"published":"2026-01-26T00:00:00Z","modified":"2026-10-28T02:30:31Z","fixes":[{"ecosystem":"Root:npm","package":"@rootio/eslint","fixed_in":["7.32.0-root.io.1","9.16.0-root.io.1","9.16.0-root.io.2","7.32.0-root.io.2","9.16.0-root.io.3"],"sources":["osv"]},{"ecosystem":"Root:npm","package":"eslint","fixed_in":["7.32.0-aikido.2","9.16.0-aikido.3"],"sources":["osv"]}],"affected":[{"source":"osv","ecosystem":"Root:npm","package":"@rootio/eslint","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"7.32.0-root.io.1"},{"fixed":"9.16.0-root.io.1"},{"fixed":"9.16.0-root.io.2"},{"fixed":"7.32.0-root.io.2"},{"fixed":"9.16.0-root.io.3"}]}]},{"source":"osv","ecosystem":"Root:npm","package":"eslint","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"7.32.0-aikido.2"},{"fixed":"9.16.0-aikido.3"}]}]},{"source":"osv","ecosystem":"Ubuntu:20.04:LTS","package":"eslint","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["5.0.1~dfsg-4build2","5.0.1~dfsg-4build3"]},{"source":"osv","ecosystem":"Ubuntu:22.04:LTS","package":"eslint","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["5.16.0~dfsg+~4.16.8-5","5.16.0~dfsg+~4.16.8-6","5.16.0~dfsg+~4.16.8-7","5.16.0~dfsg+~4.16.8-8","6.4.0~dfsg+~6.1.9-2"]},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"eslint","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["6.4.0~dfsg+~6.1.9-7","6.4.0~dfsg+~6.1.9-11build3"]},{"source":"osv","ecosystem":"Ubuntu:25.10","package":"eslint","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["6.4.0~dfsg+~6.1.9-12"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"eslint","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["6.4.0~dfsg+~6.1.9-12","6.4.0~dfsg+~6.1.9-13","6.4.0~dfsg+~6.1.9-14"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"eslint","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["6.4.0~dfsg+~6.1.9-12"]}],"products":[{"vendor":"openjsf","product":"eslint"}],"references":[{"url":"https://github.com/eslint/eslint/issues/19646","tags":["Exploit","Issue Tracking","Third Party Advisory","report","web"]},{"url":"https://gist.github.com/lyyffee/2ee1815e5c2da82c05e9838b9bfefbbc","tags":["Third Party Advisory","web","report"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2025-50537","tags":["advisory"]},{"url":"https://github.com/eslint/eslint/commit/d683aebc8e0792e4f80bd1488c705c90f22c317e","tags":["web"]},{"url":"https://github.com/advisories/GHSA-p5wg-g6qr-c7cg"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/50xxx/CVE-2025-50537.json","tags":["advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2025-50537","tags":["advisory"]},{"url":"https://github.com/eslint/eslint","tags":["package"]},{"url":"https://ubuntu.com/security/CVE-2025-50537","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2025-50537","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2025-50537","description":"Stack overflow vulnerability in eslint before 9.26.0 when serializing objects with circular references in eslint/lib/shared/serialization.js. The exploit is triggered via the RuleTester.run() method, which validates test cases and checks for duplicates. During validation, the internal function checkDuplicateTestCase() is called, which in turn uses the isSerializable() function for serialization checks. When a circular reference object is passed in, isSerializable() enters infinite recursion, ultimately causing a stack overflow.","status":"published","published":"2026-01-26T00:00:00Z","modified":"2026-01-26T16:16:34.731Z","cvss":[{"version":"3.1","score":5.5,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H","level":"medium","assessor":"adp"}],"cwes":["CWE-674"],"updated_at":"2026-11-02T14:32:52.526476Z"}],"euvd":[{"id":"EUVD-2025-206359","description":"Stack overflow vulnerability in eslint before 9.26.0 when serializing objects with circular references in eslint/lib/shared/serialization.js. The exploit is triggered via the RuleTester.run() method, which validates test cases and checks for duplicates. During validation, the internal function checkDuplicateTestCase() is called, which in turn uses the isSerializable() function for serialization checks. When a circular reference object is passed in, isSerializable() enters infinite recursion, ultimately causing a stack overflow.","status":"published","published":"2026-01-26T00:00:00Z","modified":"2026-01-26T16:16:34Z","cvss":[{"version":"3.1","score":5.5,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H","level":"medium"}],"updated_at":"2026-11-02T19:48:47.68467Z"}],"ghsa":[{"id":"GHSA-p5wg-g6qr-c7cg","title":"Withdrawn Advisory: eslint has a Stack Overflow when serializing objects with circular references","description":"## Withdrawn Advisory\nThis advisory has been withdrawn because RuleTester is used for testing rules during development and results in a error rather than crashing the application.\n\n## Original Description\n\nThere is a Stack Overflow vulnerability in eslint before 9.26.0 when serializing objects with circular references in `eslint/lib/shared/serialization.js`. The exploit is triggered via the `RuleTester.run()` method, which validates test cases and checks for duplicates. During validation, the internal function `checkDuplicateTestCase()` is called, which in turn uses the `isSerializable()` function for serialization checks. When a circular reference object is passed in, `isSerializable()` enters infinite recursion, ultimately causing a Stack Overflow.","status":"withdrawn","published":"2026-01-26T18:31:29Z","modified":"2026-02-03T17:43:57Z","cvss":[{"version":"3.1","score":5.5,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H","level":"medium"}],"cwes":["CWE-674"],"updated_at":"2026-11-02T14:39:21.558748Z"}],"nvd":[{"id":"CVE-2025-50537","description":"Stack overflow vulnerability in eslint before 9.26.0 when serializing objects with circular references in eslint/lib/shared/serialization.js. The exploit is triggered via the RuleTester.run() method, which validates test cases and checks for duplicates. During validation, the internal function checkDuplicateTestCase() is called, which in turn uses the isSerializable() function for serialization checks. When a circular reference object is passed in, isSerializable() enters infinite recursion, ultimately causing a stack overflow.","status":"published","published":"2026-01-26T16:15:58.33Z","modified":"2026-06-17T09:35:09.353Z","cvss":[{"version":"3.1","score":5.5,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H","level":"medium","assessor":"secondary"}],"cwes":["CWE-674"],"updated_at":"2026-11-02T14:11:59.073638Z"}],"osv":[{"id":"CVE-2025-50537","description":"Stack overflow vulnerability in eslint before 9.26.0 when serializing objects with circular references in eslint/lib/shared/serialization.js. The exploit is triggered via the RuleTester.run() method, which validates test cases and checks for duplicates. During validation, the internal function checkDuplicateTestCase() is called, which in turn uses the isSerializable() function for serialization checks. When a circular reference object is passed in, isSerializable() enters infinite recursion, ultimately causing a stack overflow.","status":"published","published":"2026-01-26T00:00:00Z","modified":"2026-10-28T02:30:31.968399651Z","cvss":[{"version":"3.1","score":5.5,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H","level":"medium"}],"updated_at":"2026-11-02T15:44:50.037003Z"},{"id":"DEBIAN-CVE-2025-50537","description":"Stack overflow vulnerability in eslint before 9.26.0 when serializing objects with circular references in eslint/lib/shared/serialization.js. The exploit is triggered via the RuleTester.run() method, which validates test cases and checks for duplicates. During validation, the internal function checkDuplicateTestCase() is called, which in turn uses the isSerializable() function for serialization checks. When a circular reference object is passed in, isSerializable() enters infinite recursion, ultimately causing a stack overflow.","status":"withdrawn","published":"2026-01-26T16:15:58.33Z","modified":"2026-02-06T16:53:57.61981Z","cvss":[{"version":"3.1","score":5.5,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H","level":"medium"}],"updated_at":"2026-11-02T15:45:47.378563Z"},{"id":"GHSA-p5wg-g6qr-c7cg","title":"Withdrawn Advisory: eslint has a Stack Overflow when serializing objects with circular references","description":"## Withdrawn Advisory\nThis advisory has been withdrawn because RuleTester is used for testing rules during development and results in a error rather than crashing the application.\n\n## Original Description\n\nThere is a Stack Overflow vulnerability in eslint before 9.26.0 when serializing objects with circular references in `eslint/lib/shared/serialization.js`. The exploit is triggered via the `RuleTester.run()` method, which validates test cases and checks for duplicates. During validation, the internal function `checkDuplicateTestCase()` is called, which in turn uses the `isSerializable()` function for serialization checks. When a circular reference object is passed in, `isSerializable()` enters infinite recursion, ultimately causing a Stack Overflow.","status":"withdrawn","published":"2026-01-26T18:31:29Z","modified":"2026-09-10T03:50:33.50682996Z","cvss":[{"version":"3.1","score":5.5,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H","level":"medium"}],"cwes":["CWE-674"],"updated_at":"2026-11-02T15:46:52.891208Z"},{"id":"UBUNTU-CVE-2025-50537","description":"Stack overflow vulnerability in eslint before 9.26.0 when serializing objects with circular references in eslint/lib/shared/serialization.js. The exploit is triggered via the RuleTester.run() method, which validates test cases and checks for duplicates. During validation, the internal function checkDuplicateTestCase() is called, which in turn uses the isSerializable() function for serialization checks. When a circular reference object is passed in, isSerializable() enters infinite recursion, ultimately causing a stack overflow.","status":"published","published":"2026-01-26T16:15:00Z","modified":"2026-10-17T12:57:06.129139644Z","cvss":[{"version":"3.1","score":5.5,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H","level":"medium"}],"updated_at":"2026-11-02T16:55:50.31802Z"},{"id":"ROOT-APP-NPM-CVE-2025-50537","title":"CVE-2025-50537 in @rootio/eslint - Patched by Root","description":"Root has patched CVE-2025-50537 in the @rootio/eslint package for Root:npm. Multiple fixed versions available.","status":"published","published":"2026-06-04T19:49:14Z","modified":"2026-06-05T01:30:11.999619527Z","updated_at":"2026-11-02T15:53:27.362922Z"}]}}
