CVE-2026-49263
NiskieCVSS 2.0Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 10 - wyżej niż 10% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Podatność może prowadzić do zawieszenia lub nieprawidłowego działania aplikacji używających Capstone do analizy niezaufanego kodu WebAssembly, co może skutkować odmową usługi lub błędną analizą.
Rekomendacja
Zaleca się natychmiastową aktualizację Capstone do wersji 6.0.0-Alpha9 lub nowszej, aby wyeliminować ryzyko związane z tą podatnością.
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-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 WebAssembly backend accepts attacker-controlled raw WASM instruction bytes through the public `cs_disasm()` and `cs_disasm_iter()` APIs. For a large but well-formed `br_table` instruction, the WASM decoder accumulates the immediate length in a wider local variable but returns it through a `uint16_t` instruction-size path. When the encoded instruction length is exactly 65,536 bytes, the size wraps to zero and `cs_disasm()` can repeatedly decode the same instruction without advancing. For larger lengths, `cs_disasm_iter()` advances into the middle of the `br_table` payload and decodes target bytes as subsequent instructions. This is an availability and parser-integrity issue. Version 6.0.0-Alpha9 patches the issue.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

