Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain local host access
-
DeliverySupply crafted JavaScript to Escargot-embedding application
-
ExploitTrigger edge-case construct (TypedArray resize coercion or nested eval/throw/finally)
-
ExecutionInteger underflow or null pointer dereference in engine internals
-
ImpactEngine process crashes (DoS)
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Exception handling framework
|
| Exploitation Conditions | Local access to the target host is required (AV:L); remote exploitation over a network is not possible per the CVSS vector. User interaction is required (UI:R), meaning a user or local process must invoke an application that embeds Escargot and passes attacker-influenced JavaScript to the engine - for example, a smart TV app that evaluates user-supplied or network-fetched scripts locally. Three specific JavaScript constructs are needed to trigger the respective crash paths: (1) a TypedArray.copyWithin() call on a TypedArray whose backing ResizableArrayBuffer is resized during argument coercion (requires ResizableArrayBuffer support enabled); (2) a nested eval() containing throw inside a finally block that causes GC allocation, producing a null error value; (3) an array spread literal of sufficient size to cause setArrayLength() to demote the array from fast mode to slow mode mid-operation. No authentication bypass is involved, and confidentiality and integrity are unaffected per CVSS C:N/I:N. |
| Impact | CVSS 5.5 Medium with vector AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H reflects a locally-triggered, user-interaction-dependent crash with no confidentiality or integrity impact - this is a DoS-only vulnerability. The attack complexity is Low and no privileges are required, but the local-only attack vector and mandatory user interaction significantly bound real-world risk to environments where an adversary can influence JavaScript input to an Escargot-embedding application. EPSS data is not available in the provided intelligence. The vulnerability is not listed in CISA KEV, and no public exploit code has been identified. Notably, the metadata tags include 'Information Disclosure', which directly conflicts with the CVSS C:N rating; this discrepancy is unresolved and the CVSS vector should be treated as authoritative until the vendor clarifies. The batch nature of fixes in PR #1565 suggests these are clustered edge-case stability bugs rather than a single targeted attack surface, further reducing the likelihood of opportunistic exploitation. |
| Exploit ScenarioDerived | An attacker with local access to a Samsung smart TV or IoT appliance application that embeds Escargot crafts a JavaScript payload that calls TypedArray.copyWithin() on a TypedArray backed by a ResizableArrayBuffer, then triggers a buffer resize during argument coercion. This causes len - startIndex to evaluate to a negative number, which wraps to a massive size_t value, producing an out-of-bounds memory operation that crashes the JavaScript engine process. A separate path involves constructing a nested eval() with a throw statement inside a finally block that triggers garbage collection, producing a null error value that is subsequently dereferenced in resultOrErrorToString(), causing a null pointer dereference crash. No public exploit code has been identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – May 19, 2026
Denial of service in Samsung Escargot JavaScript engine at commit 590345cc6258317c5da850d846ce6baaf2afc2d3 stems from multiple improper exceptional-condition handling paths exposed during JavaScript execution: a null pointer dereference when resolving error values in nested eval/throw/finally scenarios, an integer underflow in TypedArray.copyWithin() triggered by resizable ArrayBuffer coercion, and an unguarded assertion failure when array objects transition unexpectedly from fast to slow mode. Attack vector is local and requires user interaction (UI:R), with impact confined entirely to availability - crashing the host process. No public exploit code has been identified at time of analysis, and the vulnerability is not listed in CISA KEV.
RemediationAI
Apply the upstream fix available in GitHub PR #1565 at https://github.com/Samsung/escargot/pull/1565, which patches all four identified exceptional-condition handling defects. Note that this is a pull request or commit-level fix; a tagged stable release incorporating this patch has not been independently confirmed at time of analysis, so organizations building Escargot from source should cherry-pick or merge PR #1565 directly. As a compensating control where patching is not immediately possible, restrict the Escargot embedding process to execute only trusted JavaScript and run the embedding process in an isolated sandbox (e.g., a separate process or container) so that a crash does not propagate to critical system components - this limits the blast radius of the availability impact but does not prevent the crash itself. Disabling user-controlled JavaScript input to Escargot-hosted features until patched is the most effective interim measure.
Affected VersionsENISA
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
Escargot is Samsung's open-source embeddable JavaScript engine, commonly used in Samsung smart TV and IoT appliance contexts (reporter tagged as samsung.tv_appliance). The root cause class is CWE-703 (Improper Check or Handling of Exceptional Conditions), and the PR #1565 diff reveals at least four distinct failure paths. First, EscargotPublic.cpp lacked a null guard before dereferencing error.value() in resultOrErrorToString(), which can be invalid during nested eval() with throw inside a finally block that triggers GC allocation. Second, BuiltinTypedArray.cpp computed copy counts for TypedArray.copyWithin() without clamping: after a ResizableArrayBuffer is resized during argument coercion, the expression len - startIndex or len - targetIndex can go negative, and casting a negative double to size_t produces an enormous value causing an out-of-bounds operation. Third, ByteCodeInterpreter.cpp assumed via ASSERT that an array remains in fast mode after setArrayLength(), but setArrayLength() can silently demote arrays to slow mode when thresholds are exceeded, causing an assertion failure in debug builds and undefined behavior in release builds. Fourth, Heap.cpp had no deterministic out-of-memory handler; the fix installs a GC OOM callback that calls abort() for predictable failure. The CPE is cpe:2.3:a:samsung_open_source:escargot:*:*:*:*:*:*:*:* at the specific affected commit.
Know when Samsung Open Source 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
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Primary rating from NVD · only source for this CVE.
CVSS VectorNVD
Lifecycle Timeline
2DescriptionNVD
Improper Check or Handling of Exceptional Conditions vulnerability in Samsung Open Source Escargot allows Input Data Manipulation.
This issue affects Escargot: 590345cc6258317c5da850d846ce6baaf2afc2d3.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
More in Samsung Open Source
View allHeap buffer overflow in Samsung's rlottie animation rendering library allows remote denial-of-service via maliciously cr
Uncontrolled resource consumption in Samsung's open-source rlottie library allows a crafted Lottie animation file to tri
OS command injection in the Samsung QA-Board backend allows unauthenticated remote attackers to execute arbitrary operat
Out-of-bounds write in Samsung's Escargot lightweight JavaScript engine (commit 590345cc6258317c5da850d846ce6baaf2afc2d3
Heap-based buffer overflow in Samsung's Escargot JavaScript engine (commit 590345cc6258317c5da850d846ce6baaf2afc2d3) all
Use-after-free memory corruption in Samsung's Escargot JavaScript engine (commit 590345cc6258317c5da850d846ce6baaf2afc2d
Out-of-bounds write in Samsung's Escargot JavaScript engine allows attacker-supplied scripts to corrupt memory through t
Integer overflow in Samsung Escargot JavaScript engine allows remote attackers to trigger buffer overflows without authe
NULL pointer dereference in Samsung's open-source Walrus WebAssembly runtime crashes the parser when processing malforme
NULL pointer dereference in Samsung Open Source Walrus's WebAssembly binary parser causes application-level denial of se
Uncontrolled recursion in Samsung's Escargot JavaScript engine triggers excessive heap allocation, causing a denial-of-s
Denial-of-service in Samsung's Escargot JavaScript engine (commit 590345cc) stems from multiple unhandled exceptional co
EUVD-2026-30846
GHSA-9726-5rh7-2mr9
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB