Podatność typu type confusion w interpreterze Jsish 2.0 pozwala na nieprawidłowy przepływ sterowania podczas wykonywania opcode OP_NEXT. W zależności od układu sterty może prowadzić do awarii procesu lub zdalnego wykonania kodu (RCE).
▸ Pokaż oryginał (EN)
A type confusion in jsish 2.0 allows incorrect control flow during execution of the OP_NEXT opcode. When an “instanceof” expression uses an array element access as the left-hand operand inside a for-in loop, the instructions implementation leaves an additional array reference on the stack rather than consuming it during OP_INSTANCEOF. As a result, OP_NEXT interprets the array as an iterator object and reads the iterCmd function pointer from an invalid structure, potentially causing a crash or enabling code execution depending on heap layout.
Gdy wyrażenie 'instanceof' używa dostępu do elementu tablicy jako lewostronnego operandu wewnątrz pętli for-in, implementacja opcode OP_INSTANCEOF pozostawia na stosie dodatkowe odwołanie do tablicy zamiast je skonsumować. Następnie opcode OP_NEXT błędnie interpretuje tę tablicę jako obiekt iteratora i odczytuje wskaźnik funkcji iterCmd z nieprawidłowej struktury. Prowadzi to do sytuacji, w której interpreter operuje na danych o niewłaściwym typie (CWE-843: type confusion), co otwiera możliwość kontrolowanego nadpisania przepływu sterowania.
Atakujący może doprowadzić do awarii interpretera lub — w zależności od układu sterty — do wykonania dowolnego kodu z uprawnieniami procesu uruchamiającego Jsish. Pełna triada CIA jest zagrożona (poufność, integralność, dostępność).
Należy zastosować patche dostępne u producenta zgodnie z referencjami. Do czasu pojawienia się łatki zaleca się unikanie uruchamiania niezaufanego kodu JavaScript w środowisku Jsish 2.0 oraz ograniczenie dostępu do interpretera wyłącznie do zaufanych użytkowników.
Jsish w wersji 2.0
Szczegółowy writeup techniczny opisujący podatność dostępny jest pod adresem https://blog.mcsky.ro/writeups/2025/11/15/inline8-writeup.html (data publikacji writeupa: 15 listopada 2025).
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HJsish
APPJsish2.0
Powiązane podatności
Use-after-free w Jsish v3.5.0 — podatność krytyczna w SplitChar
Heap-buffer-overflow w Jsish v3.5.0 — podatność krytyczna RCE
Stack-overflow w Jsish v3.5.0 — przepełnienie stosu w IterGetKeysCallback
Integer overflow vulnerability in function Jsi_ObjArraySizer in jsish before 3.0.8, allows remote attackers to...
Integer overflow vulnerability in function Jsi_ObjSetLength in jsish before 3.0.6, allows remote attackers to ...