Skip to main content

Jsish CVE-2025-65570

CRITICAL
Access of Resource Using Incompatible Type (Type Confusion) (CWE-843)
2025-12-29 cve@mitre.org
9.8
CVSS 3.1 · Vendor: mitre
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Deliver crafted JavaScript to jsish 2.0
  2. Delivery
    Use array-element instanceof inside for-in loop
  3. Exploit
    OP_INSTANCEOF leaves stray array reference on stack
  4. Execution
    OP_NEXT reads invalid iterCmd function pointer
  5. Impact
    Crash or arbitrary code execution via heap grooming

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Type safety enforcement
MITRE ATT&CK

1 technique across 1 tactic: Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires the attacker to get attacker-controlled JavaScript executed by jsish 2.0; the specific trigger is a script in which an 'instanceof' expression uses an array element access as its left-hand operand inside a for-in loop, which leaves a stray array reference that OP_NEXT then misuses as an iterCmd function pointer. Limiting factors: the attacker must be able to supply/run arbitrary script source, so if jsish is used as a local tool this is effectively a local-access condition rather than remote; and achieving code execution (as opposed to a crash) is not guaranteed - it depends on favorable heap layout, requiring heap grooming for reliability. No special non-default configuration is named in the description, but exploitation is bounded to the exact jsish 2.0 interpreter processing the malicious script.

Impact

The input CVSS 3.1 base score of 9.8 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) paints this as a maximally critical, network-reachable, unauthenticated RCE, but the multi-source signals do not support that urgency. EPSS is only 0.53% (43rd percentile), the CVE is NOT on the CISA KEV list, and there is no evidence of active exploitation - only a single publicly available exploit/writeup. So the signals conflict: CVSS says 'drop everything,' while EPSS and the absence of KEV say 'low probability of widespread exploitation.' The CVSS AV:N rating is also questionable for a JavaScript interpreter bug (CWE-843 type confusion in the OP_NEXT/OP_INSTANCEOF opcode handling): exploitation fundamentally requires the attacker to get attacker-controlled JavaScript executed by jsish, which is typically a local/script-supply condition unless jsish is deployed as a service evaluating untrusted scripts over a network - verify the deployment context with the operator. The description's own wording ('potentially causing a crash or enabling code execution depending on heap layout') indicates reliable code execution is NOT guaranteed and depends on heap grooming, undercutting the AC:L rating. Net assessment: this is a genuine memory-corruption bug with a public POC, but given the obscure/niche product, low EPSS, and no KEV listing, it is a high-CVSS-but-realistically-low-priority issue outside of environments that actually run jsish on untrusted input.

Exploit ScenarioDerived

An attacker who can supply or influence JavaScript executed by a jsish 2.0 interpreter crafts a script containing an 'instanceof' expression whose left-hand operand is an array element access, placed inside a for-in loop. When executed, OP_INSTANCEOF fails to consume an array reference, leaving it on the stack so OP_NEXT misinterprets the array as an iterator and dereferences an attacker-influenced iterCmd function pointer, crashing the process or - depending on heap layout - executing arbitrary code. A public exploit/writeup already exists demonstrating the technique.

Act Now Prioritize within 24-48h. Why: CRITICAL severity + public POC available.
No patch listed yet 0.5% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 13, 2026

Type confusion in the jsish 2.0 JavaScript interpreter lets a crafted script reach the OP_NEXT opcode with an unintended array reference left on the stack, which the VM then dereferences as an iterator's iterCmd function pointer, causing a crash and potentially enabling code execution where heap layout permits. Exploitation is bounded rather than maximal: the assessed vector is local with high complexity (AV:L/AC:H/PR:N/UI:N), requires the attacker to get attacker-controlled JavaScript executed by jsish 2.0, and code execution is not guaranteed without heap grooming, though publicly available exploit code exists (a public writeup) and no CISA KEV entry confirms active exploitation. EPSS is 0.53% (43rd percentile), and the input 9.8 network-vector score is not supported by the multi-source signals.

RemediationAI

No vendor-released patch identified at time of analysis, and no fixed version is named in the supplied data. Because exploitation requires attacker-controlled JavaScript to be executed by the jsish 2.0 interpreter, the most effective near-term control is to stop running untrusted or third-party scripts through jsish 2.0 and to isolate any execution that must continue: run jsish under a low-privilege account inside an OS-level sandbox (seccomp, AppArmor/SELinux, container or VM) that blocks file, network, and process-creation access, accepting the trade-off that legitimate scripts needing those capabilities will break. Enabling ASLR and heap randomization on the host raises the difficulty of converting the invalid iterCmd dereference into code execution, but it does not prevent the crash (denial-of-service) path and does not fix the underlying type confusion. As a detection rather than prevention measure, scan script sources for the trigger pattern - an instanceof whose left-hand operand is an array element access inside a for-in loop - and treat any such script as untrusted, since the construct is syntactically valid JavaScript and cannot be reliably filtered by input validation.

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

jsish is a compact C-implemented, embeddable JavaScript engine that compiles scripts to bytecode executed by a stack-based VM; CVE-2025-65570 is a CWE-843 type confusion arising from a stack-discipline mismatch between the OP_INSTANCEOF and OP_NEXT opcodes. When an instanceof expression uses an array element access as its left-hand operand inside a for-in loop, the generated instructions leave an extra array reference on the stack that OP_INSTANCEOF fails to consume; the subsequent OP_NEXT interprets that array as an iterator object and reads the iterCmd function pointer from an invalid structure, producing an invalid function-pointer dereference. That dereference crashes the interpreter and, depending on heap layout, can be steered toward code execution, though reliable code execution requires heap grooming. The only provided reference is a public writeup (blog.mcsky.ro, 'inline8') that corresponds to the public exploit-availability signal, and the supplied CPE cpe:2.3:a:jsish:jsish:2.0:*:*:*:*:*:*:* pins the issue to jsish 2.0 specifically.

Know when Jsish gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (mitre) PRIMARY 9.8 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 7.4 HIGH

Requires supplying attacker-controlled script to the interpreter (AV:L, no privileges so PR:N), and reliable code execution depends on heap layout (AC:H); full C/I/A loss on code execution.

3.1 AV:L/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
4.0 AV:L/AC:H/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (mitre).

CVSS VectorVendor: mitre

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

DescriptionCVE.org

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.

Executive ViewAI

Why It Matters

A type-confusion defect in the jsish 2.0 JavaScript interpreter allows a crafted script to corrupt interpreter state and crash the process, with code execution possible only under favorable heap conditions. Because the practical attack path is local, high-complexity, and requires an attacker to get their script executed by jsish, the reported 9.8 network-vector rating overstates real-world exposure; the realistic risk falls on engineering, QA, or tooling teams that run untrusted or third-party JavaScript through this interpreter. Leadership should care because there is no vendor patch and publicly available exploit code exists, so any environment accepting untrusted scripts into jsish 2.0 carries unmitigable-by-patch risk until the component is isolated or replaced.

Business Impact: Medium
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: refuse to execute untrusted, third-party, or user-supplied JavaScript in jsish 2.0; run the interpreter in a hardened container or sandbox with seccomp/AppArmor profiles, no network egress, read-only filesystem, and a dedicated low-privilege service account; restrict filesystem and process access; disable or remove jsish 2.0 from any externally reachable or multi-tenant path; monitor for interpreter crashes and anomalous child-process or file activity; and migrate affected workloads to a maintained JavaScript runtime where feasible.

Threat Intelligence Overview

EPSS Score
0.5%
Top 57% exploitable
Prevalence
Rare
jsish is an obscure embeddable JS interpreter with negligible enterprise footprint
Exploit
POC
Public exploit code exists
Data Quality
3 sources
Confidence: Low

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC Yes
EPSS 0.5%
Patch available No
Active threat No
Deciding rule
CRITICAL severity + public POC available
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
Poc
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
Medium

Priority Score

70
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +49
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Memory corruption occurs when a program writes data beyond the boundaries of allocated memory regions or accesses memory in unintended ways, violating the integrity of the process's address space.

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

Affected Products (CPE)CVE.org

cpe:2.3:a:jsish:jsish:2.0:*:*:*:*:*:*:*

More in Jsish

View all
CVE-2024-24188 CRITICAL POC
9.8 Feb 07

Jsish v3.5.0 was discovered to contain a heap-buffer-overflow in ./src/jsiUtils.c. Rated critical severity (CVSS 9.8), t

CVE-2024-24186 CRITICAL POC
9.8 Feb 07

Jsish v3.5.0 (commit 42c694c) was discovered to contain a stack-overflow via the component IterGetKeysCallback at /jsish

CVE-2019-1010177 CRITICAL POC
9.8 Jul 24

Jsish 2.4.70 2.047 is affected by: Use After Free. Rated critical severity (CVSS 9.8), this vulnerability is remotely ex

CVE-2019-1010173 HIGH POC
7.5 Jul 23

Jsish 2.4.84 2.0484 is affected by: Reachable Assertion. Rated high severity (CVSS 7.5), this vulnerability is remotely

CVE-2019-1010171 HIGH POC
7.5 Jul 23

Jsish 2.4.83 2.0483 is affected by: Nullpointer dereference. Rated high severity (CVSS 7.5), this vulnerability is remot

CVE-2019-1010170 HIGH POC
7.5 Jul 23

Jsish 2.4.77 2.0477 is affected by: Use After Free. Rated high severity (CVSS 7.5), this vulnerability is remotely explo

CVE-2019-1010169 HIGH POC
7.5 Jul 23

Jsish 2.4.77 2.0477 is affected by: Out-of-bounds Read. Rated high severity (CVSS 7.5), this vulnerability is remotely e

CVE-2018-1000655 MEDIUM POC
6.5 Aug 20

Jsish version 2.4.65 contains a CWE-476: NULL Pointer Dereference vulnerability in Function jsi_ValueCopyMove from jsiVa

CVE-2024-24189 CRITICAL
9.8 Feb 07

Jsish v3.5.0 (commit 42c694c) was discovered to contain a use-after-free via the SplitChar at ./src/jsiUtils.c. Rated cr

CVE-2019-1010162 MEDIUM POC
5.5 Jul 23

jsish 2.4.74 2.0474 is affected by: CWE-476: NULL Pointer Dereference. Rated medium severity (CVSS 5.5), this vulnerabil

CVE-2019-1010172 HIGH
7.5 Jul 25

Jsish 2.4.84 2.0484 is affected by: Uncontrolled Resource Consumption. Rated high severity (CVSS 7.5), this vulnerabilit

CVE-2018-1000668 MEDIUM
6.5 Sep 06

jsish version 2.4.70 2.047 contains a CWE-125: Out-of-bounds Read vulnerability in function jsi_ObjArrayLookup (jsiObj.c

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy