GHSA-97r2-qh9m-474h: High severity npm/seroval vulnerability

Published Oct 28, 2026
·
Updated

Summary

fromJSON and fromCrossJSON used two node fields without checking them.

- 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. - A sequence node's done index was not checked. A crafted value produced an iterator that never finished.

Impact

A service that passes untrusted input to fromJSON or fromCrossJSON can be made unavailable by an unauthenticated request.

- The array case blocks the thread while the decoder runs. - The sequence case makes any code that reads the resulting iterator to the end run forever.

Patches

Fixed in seroval@1.6.8.

- Element lists must be arrays. - A sequence node's throw and done indices must be integers from -1 up to the last element index.

Invalid input throws SerovalMalformedNodeError.

Workarounds

None. Upgrade to 1.6.8.

Affected Software

1 affected componentFixes available
npm/seroval<=1.6.7
1.6.8

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade npm/seroval to a version that resolves this vulnerability.

    Fixed in 1.6.8
  2. Upgrade

    Upgrade seroval to a version that resolves this vulnerability.

    Fixed in 1.6.8

Event History

Oct 28, 2026
Advisory Published
via GitHub·09:17 PM
Data Sourced
via GitHub·09:17 PM
DescriptionSeverityWeaknessAffected Software

Frequently Asked Questions

1

Which deployments are exposed?

Services are exposed if they pass untrusted input to seroval's fromJSON or fromCrossJSON functions. An unauthenticated request can trigger the issue when it reaches either decoder.

2

What is required to exploit the issue?

The attacker needs to supply a crafted node to a reachable decoder. In the array case, the payload can cause the decoder loop to block the thread; in the sequence case, code that consumes the resulting iterator to completion can run indefinitely.

3

What can be done if an immediate patch is not possible?

No workaround is provided. Upgrade seroval to version 1.6.8, which rejects malformed element lists and invalid sequence throw or done indices with SerovalMalformedNodeError.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203