CVE-2026-49282
ŚrednieCVSS 5.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 9 - wyżej niż 9% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Ryzyko utraty dostępności aplikacji korzystających z Capstone, które przetwarzają niezaufane identyfikatory instrukcji.
Rekomendacja
Zaleca się aktualizację do wersji 6.0.0-Alpha9 lub nowszej, która zawiera poprawkę.
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-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.
- CVE-2026-47143Średnie
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.
Oryginalny opis (angielski, źródło NVD)
Capstone is a disassembly framework. Prior to version 6.0.0-Alpha9, Capstone's public `cs_insn_name()` API forwards caller-supplied instruction IDs directly to the selected architecture backend. Most backends validate the ID before indexing instruction-name tables, but the M68K and RISCV backends have missing or incomplete bounds checks. On a Capstone handle opened for M68K or RISCV, a caller-controlled invalid instruction ID can trigger an out-of-bounds read and crash the process. The demonstrated impact is availability loss in applications or bindings that expose instruction-name lookup to untrusted IDs. No code execution or data disclosure was demonstrated. Version 6.0.0-Alpha9 patches the issue.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

