CVE-2026-47143
ŚrednieCVSS 5.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 7 - wyżej niż 7% wszystkich znanych CVE
Streszczenie
Podatność w Capstone przed wersjami 6.0.0-Alpha8 i 5.0.8. W buildach z flagą `-DCAPSTONE_X86_REDUCE` podczas deasemblacji instrukcji 3DNow! (`0F 0F`) dochodzi do dereferencji null pointera w funkcjach `modRMRequired()` i `decode()`, co pozwala zdalnemu atakującemu na crash aplikacji.
Ocena ryzyka
Atakujący może zdalnie spowodować crash aplikacji używającej biblioteki Capstone (tryb zredukowany X86) poprzez dostarczenie spreparowanego wejścia.
Rekomendacja
Zaktualizuj Capstone do wersji 6.0.0-Alpha8 lub 5.0.8. Jeśli aktualizacja nie jest możliwa, unikaj używania buildów z flagą `-DCAPSTONE_X86_REDUCE`.
Inne podatności w Capstone
Zobacz wszystkie- CVE-2026-55894Średnie
Capstone to framework do deasemblacji. W wersjach 6.0.0-Alpha9 i wcześniejszych funkcja sh_disassemble() w arch/SH/SHDisassembler.c oblicza wartość idx z surowej 16-bitowej instrukcji bez sprawdzenia, czy mieści się ona w tabeli wskaźników funkcji decode[] zależnej od trybu. Aplikacja używająca CS_ARCH_SH z CS_MODE_SH2A lub CS_MODE_SH4A oraz CS_MODE_SHFPU może przekazać spreparowany kod przez cs_disasm_iter() lub cs_disasm(), co powoduje odczyt poza tabelą i zakończenie procesu błędem segmentacji. Nie wykazano wykonania kodu ani ujawnienia informacji. Problem naprawiono w wersji 6.0.0-Alpha10.
- CVE-2026-55893Wysokie
Capstone to framework do deasemblacji. W wersji 6.0.0-Alpha9 i wcześniejszych, dekodery zmiennoprzecinkowe SH (np. opFADD, opFMUL, opFSUB) wywołują set_reg() i set_reg_n() bez sprawdzania rozmiaru tablicy operands[], co prowadzi do przepełnienia sterty o 4 bajty. Może to spowodować awarię procesu lub umożliwić wykonanie kodu. Problem naprawiono w wersji 6.0.0-Alpha10.
- CVE-2026-49282Średnie
W Capstone przed wersją 6.0.0-Alpha9, publiczne API cs_insn_name() przekazuje identyfikatory instrukcji do backendów M68K i RISCV bez odpowiednich kontroli zakresu, co może prowadzić do odczytu poza zakresem i awarii procesu.
- CVE-2026-49263Niskie
Capstone to framework do deasemblacji. Przed wersją 6.0.0-Alpha9 backend WebAssembly w Capstone akceptuje sterowane przez atakującego surowe bajty instrukcji WASM przez publiczne API `cs_disasm()` i `cs_disasm_iter()`. Dla dużej, ale dobrze sformowanej instrukcji `br_table`, dekoder WASM gromadzi długość w szerszej zmiennej lokalnej, ale zwraca ją przez ścieżkę rozmiaru instrukcji `uint16_t`. Gdy zakodowana długość instrukcji wynosi dokładnie 65 536 bajtów, rozmiar zawija się do zera i `cs_disasm()` może wielokrotnie dekodować tę samą instrukcję bez przesuwania wskaźnika. Dla większych długości `cs_disasm_iter()` przesuwa się w środek danych `br_table` i dekoduje docelowe bajty jako kolejne instrukcje. Jest to problem dostępności i integralności parsera. Wersja 6.0.0-Alpha9 naprawia ten problem.
Oryginalny opis (angielski, źródło NVD)
Capstone is a disassembly framework. Versions prior to 6.0.0-Alpha8 and 5.0.8 have a NULL pointer dereference in `modRMRequired()` and `decode()` when disassembling 3DNow! opcodes (`0F 0F`) in builds compiled with `-DCAPSTONE_X86_REDUCE`, allowing a remote attacker to crash any application using the reduced X86 Capstone library by supplying a crafted input containing the 4-byte sequence `0F 0F <modrm> <imm8>`. Versions 6.0.0-Alpha8 and 5.0.8 patch the issue.

