CVE-2026-107392
ŚrednieCVSS 6.2Streszczenie
W bibliotece music-metadata przed wersją 11.15.0 parser DSF obsługuje nierozpoznany fragment, wywołując tokenizer.ignore bez oczekiwania na zwróconą obietnicę i bez wcześniejszego odrzucenia rozmiaru fragmentu mniejszego niż 12-bajtowy nagłówek. Spreparowane dane wejściowe DSF mogą spowodować ujemną długość ignorowania; w strtok3 10.3.5 lub nowszym wynikowy RangeError jest odłączony od obietnicy parseBuffer i staje się nieobsłużonym odrzuceniem w domyślnym zachowaniu Node.js. Wywołanie parse może wydawać się zakończone sukcesem przed awarią procesu, omijając obsługę try/catch. Wykazany wpływ to jedynie utrata dostępności i wymaga ścieżki parsowania DSF.
Ocena ryzyka
Może wystąpić awaria procesu Node.js, prowadząca do utraty dostępności usługi przetwarzającej pliki DSF.
Rekomendacja
Zaktualizuj music-metadata do wersji 11.15.0 lub nowszej, która naprawia tę podatność.
Inne podatności w music-metadata
Zobacz wszystkie- CVE-2026-107391Średnie
W publicznej wersji rozwojowej music-metadata wprowadzonej po 11.14.0 regresja w gałęzi rozwojowej parsera opisu próbki MP4 stsd pozwala na kontrolowany przez atakującego rozmiar wpisu próbki równy zero, co uniemożliwia przesunięcie kursora StsdAtom.get, podczas gdy kontrolowany przez atakującego entry_count utrzymuje działanie pętli synchronicznej. Spreparowane dane wejściowe z rodziny MP4 mogą zablokować pętlę zdarzeń Node.js i zwiększać tabelę opisu próbek, aż proces zostanie zakończony lub wyczerpie pamięć. Podatna zmiana była obecna w publicznej gałęzi master, ale nie została uwzględniona w music-metadata 11.14.0 ani żadnym wcześniejszym wydaniu npm, a wersja 11.16.0 zawiera poprawkę.
- CVE-2026-107390Średnie
W bibliotece music-metadata przed wersją 11.16.0 parser MP4 akceptuje kontrolowany przez atakującego 64-bitowy rozszerzony rozmiar atomu, konwertuje go na liczbę JavaScript i używa wynikowej długości ładunku do wywołań readToken specyficznych dla atomu, zanim udowodni, że atom mieści się w swoim rodzicu lub dostępnych danych wejściowych. Mały plik z rodziny MP4 może skierować zbyt dużą długość do parsowania ładunku dla atomów takich jak mvhd, stsd, stsz i date, powodując próbę dużej alokacji lub awarię procesu przed walidacją końca danych wejściowych. Aplikacje parsujące niezaufane media z rodziny MP4 mogą w związku z tym doświadczyć odmowy usługi.
- CVE-2026-107389Średnie
W bibliotece music-metadata przed wersją 11.16.0 parser EBML dla Matroska i WebM dekoduje kontrolowaną przez atakującego długość elementu VINT i używa jej do alokacji tokenu ciągu lub Uint8Array, zanim potwierdzi, że liść mieści się w swoim rodzicu lub dostępnych danych wejściowych. Spreparowane dane wejściowe WebM, MKV lub MKA mogą powodować nieproporcjonalne alokacje, odmowę usługi z powodu wyczerpania pamięci lub, w wykazanym przypadku ścieżki parseFile w Node.js 26.7.0, nieprzechwytywalne fatalne przerwanie V8. Dokładny tryb awarii zależy od tokenizera, API parsera i środowiska uruchomieniowego, ale wspólna wada walidacji długości liścia ma wpływ tylko na dostępność.
- CVE-2026-107388Średnie
W bibliotece music-metadata przed wersją 11.16.0 parser ID3v2 ufa polu rozmiaru znacznika syncsafe i alokuje całe ciało znacznika, zanim sprawdzi, czy dane wejściowe zawierają zadeklarowane bajty. Obcięty plik zawierający tylko nagłówek ID3v2 może zażądać alokacji zbliżonej do 268 MiB; alokacja się udaje, kolejny odczyt osiąga koniec strumienia, EndOfStreamError jest przechwytywany wewnętrznie, a wywołujący otrzymuje normalny obiekt metadanych.
- CVE-2026-107387Średnie
Przed wersją 11.16.0 parser APEv2 w bibliotece music-metadata odczytuje rozmiar elementu sterowany przez atakującego i przydziela Uint8Array dla elementu binarnego przed sprawdzeniem, czy zadeklarowany rozmiar mieści się w pozostałych danych. Mały spreparowany plik APE może wywołać nieproporcjonalną alokację pamięci, a wielokrotne lub równoległe parsowanie może wyczerpać pamięć procesu. Problem został naprawiony w wersji 11.16.0.
Oryginalny opis (angielski, źródło NVD)
music-metadata is a metadata parser for audio and video media files. Prior to 11.15.0, the DSF parser handles an unrecognized chunk by calling tokenizer.ignore without awaiting the returned promise and without first rejecting a chunk size smaller than the 12-byte chunk header. A crafted DSF input can produce a negative ignore length; with strtok3 10.3.5 or later, the resulting RangeError is detached from the parseBuffer promise and becomes an unhandled rejection under Node.js default behavior. The parse call can appear to resolve before the process crashes, bypassing per-parse try/catch handling. The demonstrated impact is availability loss only and requires the DSF parsing path. This issue is fixed in version 11.15.0.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

