file-type affected by infinite loop in ASF parser on malformed input with zero-size sub-header
Moderate severity
GitHub Reviewed
Published
Mar 9, 2026
in
sindresorhus/file-type
•
Updated Mar 10, 2026
Description
Published by the National Vulnerability Database
Mar 10, 2026
Published to the GitHub Advisory Database
Mar 10, 2026
Reviewed
Mar 10, 2026
Last updated
Mar 10, 2026
Impact
A denial of service vulnerability exists in the ASF (WMV/WMA) file type detection parser. When parsing a crafted input where an ASF sub-header has a
sizefield of zero, the parser enters an infinite loop. Thepayloadvalue becomes negative (-24), causingtokenizer.ignore(payload)to move the read position backwards, so the same sub-header is read repeatedly forever.Any application that uses
file-typeto detect the type of untrusted/attacker-controlled input is affected. An attacker can stall the Node.js event loop with a 55-byte payload.Patches
Fixed in version 21.3.1. Users should upgrade to >= 21.3.1.
Workarounds
Validate or limit the size of input buffers before passing them to
file-type, or run file type detection in a worker thread with a timeout.References
Reporter
crnkovic@lokvica.com
References