Bug 2446309 (CVE-2026-31808)

Summary: CVE-2026-31808 file-type: file-type: Denial of Service due to infinite loop in ASF file parsing
Product: [Other] Security Response Reporter: OSIDB Bzimport <bzimport>
Component: vulnerabilityAssignee: Product Security DevOps Team <prodsec-dev>
Status: NEW --- QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: unspecifiedCC: aazores, abarbaro, alizardo, anthomas, bbrownin, caswilli, cmah, dschmidt, eaguilar, ebaron, ehelms, erezende, eric.wittmann, ggainey, janstey, jcantril, jchui, jhe, jlanda, jolong, juwatts, kaycoth, kshier, ktsao, mhulan, nboldt, nipatil, nmoumoul, osousa, pantinor, pcreech, pjindal, psrna, rchan, rkubis, rojacob, sdawley, simaishi, smallamp, smcdonal, stcannon, teagle, tmalecek, yguenane
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: ---
Doc Text:
A flaw was found in file-type, a library for detecting file types. A remote attacker can exploit this by providing a specially crafted ASF (Advanced Systems Format) file. When parsing the file, a zero-sized sub-header can trigger an infinite loop, leading to a Denial of Service (DoS). This can stall the Node.js event loop, preventing the application from processing further requests.
Story Points: ---
Clone Of: Environment:
Last Closed: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 2446348, 2446349, 2446350, 2446352, 2446351    
Bug Blocks:    

Description OSIDB Bzimport 2026-03-10 23:01:36 UTC
file-type detects the file type of a file, stream, or data. Prior to 21.3.1, 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 size field of zero, the parser enters an infinite loop. The payload value becomes negative (-24), causing tokenizer.ignore(payload) to move the read position backwards, so the same sub-header is read repeatedly forever. Any application that uses file-type to detect the type of untrusted/attacker-controlled input is affected. An attacker can stall the Node.js event loop with a 55-byte payload. Fixed in version 21.3.1.