CVE-2025-50537
Withdrawn Advisory: eslint has a Stack Overflow when serializing objects with circular references
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.
Attack profile
How easy it is to exploit
- Attack vector
- Local
- Complexity
- Low
- Privileges needed
- None
- User interaction
- Required
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
5.5
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.
- Record
CVE-2025-50537- CVSS 3.1
- 5.5 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H - Weakness
- CWE-674
- Updated
- 2026-11-02
EUVDEUVD-2025-206359
5.5
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.
- Record
EUVD-2025-206359- CVSS 3.1
- 5.5 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-p5wg-g6qr-c7cg
5.5
Withdrawn Advisory: eslint has a Stack Overflow when serializing objects with circular references
Withdrawn Advisory
This advisory has been withdrawn because RuleTester is used for testing rules during development and results in a error rather than crashing the application.
Original Description
There 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.
- Record
GHSA-p5wg-g6qr-c7cg- CVSS 3.1
- 5.5 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H - Weakness
- CWE-674
- Updated
- 2026-11-02
NVD
5.5
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.
- Record
CVE-2025-50537- CVSS 3.1
- 5.5 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H - Weakness
- CWE-674
- Updated
- 2026-11-02
OSV
5.5
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.
- Record
CVE-2025-50537- CVSS 3.1
- 5.5 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVDEBIAN-CVE-2025-50537
5.5
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.
- Record
DEBIAN-CVE-2025-50537- CVSS 3.1
- 5.5 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVGHSA-p5wg-g6qr-c7cg
5.5
Withdrawn Advisory: eslint has a Stack Overflow when serializing objects with circular references
Withdrawn Advisory
This advisory has been withdrawn because RuleTester is used for testing rules during development and results in a error rather than crashing the application.
Original Description
There 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.
- Record
GHSA-p5wg-g6qr-c7cg- CVSS 3.1
- 5.5 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H - Weakness
- CWE-674
- Updated
- 2026-11-02
OSVUBUNTU-CVE-2025-50537
5.5
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.
- Record
UBUNTU-CVE-2025-50537- CVSS 3.1
- 5.5 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVROOT-APP-NPM-CVE-2025-50537 No score
CVE-2025-50537 in @rootio/eslint - Patched by Root
Root has patched CVE-2025-50537 in the @rootio/eslint package for Root:npm. Multiple fixed versions available.
- Record
ROOT-APP-NPM-CVE-2025-50537- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
@rootio/eslintRoot:npm |
before 7.32.0-root.io.1 | 7.32.0-root.io.19.16.0-root.io.19.16.0-root.io.27.32.0-root.io.29.16.0-root.io.3 |
eslintRoot:npm |
before 7.32.0-aikido.2 | 7.32.0-aikido.29.16.0-aikido.3 |
eslintUbuntu:20.04:LTS |
All versions, plus listed versions 5.0.1~dfsg-4build25.0.1~dfsg-4build3 |
None known |
eslintUbuntu:22.04:LTS |
All versions, plus listed versions 5.16.0~dfsg+~4.16.8-55.16.0~dfsg+~4.16.8-65.16.0~dfsg+~4.16.8-75.16.0~dfsg+~4.16.8-86.4.0~dfsg+~6.1.9-2 |
None known |
eslintUbuntu:24.04:LTS |
All versions, plus listed versions 6.4.0~dfsg+~6.1.9-76.4.0~dfsg+~6.1.9-11build3 |
None known |
eslintUbuntu:25.10 |
All versions, plus listed versions 6.4.0~dfsg+~6.1.9-12 |
None known |
eslintUbuntu:26.10 |
All versions, plus listed versions 6.4.0~dfsg+~6.1.9-126.4.0~dfsg+~6.1.9-136.4.0~dfsg+~6.1.9-14 |
None known |
eslintUbuntu:26.04:LTS |
All versions, plus listed versions 6.4.0~dfsg+~6.1.9-12 |
None known |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected | ||
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2025-50537 is a medium vulnerability (CVSS 5.5) in Openjsf Eslint, published January 26, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.20%, the 9th percentile. Fixed in @rootio/eslint 7.32.0-root.io.1.
References
github.com/eslint/eslint/issues/19646
gist.github.com/lyyffee/2ee1815e5c2da82c05e9838b9bfefbbc
nvd.nist.gov/vuln/detail/CVE-2025-50537
github.com/eslint/eslint/commit/d683aebc8e0792e4f80bd1488c705c90f22c317e
github.com/advisories/GHSA-p5wg-g6qr-c7cg
github.com/CVEProject/cvelistV5/tree/main/cves/2025/50xxx/CVE-2025-50537.json