| Gói / sản phẩm | Phiên bản bị ảnh hưởng | Phiên bản đã vá |
|---|---|---|
| music-metadata | < 11.12.3 | 11.12.3 |
| music-metadata | < 11.12.3 | 11.12.3 |
music-metadata's ASF parser (parseExtensionObject() in lib/asf/AsfParser.ts:112-158) enters an infinite loop when a sub-object inside the ASF Header Extension Object has objectSize = 0.
When objectSize is 0:
remaining = 0 - 24 = -24tokenizer.ignore(-24) moves the read position backward by 24 bytesextensionSize -= 0 (loop counter never decreases)while (extensionSize > 0) never exitsThis is the same pattern as CVE-2026-31808 (GHSA-5v7r-6r5c-r473) in file-type — strtok3's AbstractTokenizer.ignore() accepts negative values without validation.
parseFile() — HANGS (FileTokenizer inherits vulnerable ignore())parseBuffer() — HANGS (BufferTokenizer inherits vulnerable ignore())parseStream() — NOT affected (ReadStreamTokenizer has own ignore() that throws RangeError)A 100-byte crafted .asf file permanently hangs any application using parseFile() or parseBuffer(). music-metadata has 2.2M weekly npm downloads.
Validate objectSize >= minimumHeaderSize before calculating the payload. Or fix strtok3's AbstractTokenizer.ignore() to reject negative values.
Bạn đang dùng một trong các sản phẩm này? Quét site để biết có đang lộ phiên bản có lỗ hổng không.
Quét site miễn phí