En bref
- CVE-2026-116580 est une vulnérabilité ÉLEVÉE (CVSS 7.3) touchant seroval.
- Probabilité d'exploitation dans les 30 prochains jours (EPSS) : 0.34%, plus élevée que 27.7% des vulnérabilités.
- Correctif : mettre à jour vers 1.6.8 ou plus récent.
| Package | Affected versions | Patched versions |
|---|
| seroval npm | < 1.6.8
| 1.6.8
|
Description
Summary
When fromJSON rebuilt an async iterator, it called on() on the iterator's source without checking that the source was a seroval stream. A crafted payload could pick another value as the source, such as a function returned by an application plugin. The deserializer then called that value's on method.
This is a variant of GHSA-mv8w-475r-vwqw. That fix covered the promise and stream control nodes but not the async iterator node.
Impact
An application that passes untrusted input to fromJSON with plugins that return callable values can have those callables invoked during deserialization. What this allows depends on what the plugin's values do.
Affected versions
- Versions up to 1.6.3 accept any value as the source.
- 1.6.4 rejects the reported payload.
- 1.6.5 to 1.6.7 check the source by node type, which a payload can get around by reusing a node id.
- All versions up to 1.6.7 should be treated as affected.
Patches
Fixed in [email protected]. Streams and sequences are now internal class instances. The deserializer checks the source value with instanceof, so plain data and plugin values are rejected no matter which node id they use.
Workarounds
Avoid plugins whose deserialize returns functions or objects with an on method when decoding untrusted input. Upgrading to 1.6.8 is recommended.
NVD description
Seroval facilitates JavaScript value stringification, including complex structures beyond JSON.stringify capabilities. Prior to 1.6.8, fromJSON rebuilds an AsyncIteratorFactoryInstance by calling source.on(listener) without requiring source to be a genuine internal stream. With untrusted Seroval input and an application plugin that returns a callable value or an object exposing an on method, a crafted node can reuse an identifier so the deserializer invokes the plugin-produced value. This is an incomplete-fix variant of CVE-2026-59940. The resulting confidentiality, integrity, or availability impact depends on the behavior exposed by the application plugin. This issue is fixed in version 1.6.8.
Running one of these products? Scan your site to see whether it exposes a vulnerable version.
Scan my site free