CVE-2020-23319

7.5 HIGH

📋 TL;DR

CVE-2020-23319 is an assertion failure vulnerability in JerryScript's parser that could lead to denial of service or potentially arbitrary code execution. It affects systems running JerryScript 2.2.0, which is a lightweight JavaScript engine commonly embedded in IoT devices and resource-constrained environments. Attackers could trigger this vulnerability by providing specially crafted JavaScript input to the parser.

💻 Affected Systems

Products:
  • JerryScript
Versions: 2.2.0
Operating Systems: All platforms running JerryScript
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects JerryScript 2.2.0; earlier and later versions are not vulnerable

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Remote code execution leading to complete system compromise of affected devices

🟠

Likely Case

Denial of service causing application crashes or device instability

🟢

If Mitigated

Application restart required after crash with no data loss

🌐 Internet-Facing: HIGH if JerryScript processes untrusted JavaScript input from external sources
🏢 Internal Only: MEDIUM if only trusted JavaScript code is processed internally

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Proof of concept available in GitHub issue; exploitation requires ability to inject JavaScript into JerryScript parser

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 2.3.0 and later

Vendor Advisory: https://github.com/jerryscript-project/jerryscript/issues/3834

Restart Required: Yes

Instructions:

1. Upgrade JerryScript to version 2.3.0 or later. 2. Recompile any applications using JerryScript. 3. Restart affected services or devices.

🔧 Temporary Workarounds

Input validation and sanitization

all

Implement strict input validation for JavaScript code processed by JerryScript

Process isolation

all

Run JerryScript in isolated containers or sandboxes to limit impact of crashes

🧯 If You Can't Patch

  • Implement network segmentation to isolate vulnerable devices
  • Deploy web application firewall rules to block suspicious JavaScript patterns

🔍 How to Verify

Check if Vulnerable:

Check JerryScript version: if version is exactly 2.2.0, system is vulnerable

Check Version:

jerry --version or check build configuration

Verify Fix Applied:

Verify JerryScript version is 2.3.0 or later

📡 Detection & Monitoring

Log Indicators:

  • Application crashes with assertion failure messages
  • JerryScript process termination
  • Error logs containing 'parser_emit_cbc_backward_branch'

Network Indicators:

  • Unusual JavaScript payloads sent to JerryScript endpoints
  • Repeated connection attempts to JerryScript services

SIEM Query:

process_name:"jerry" AND (event_type:"crash" OR exit_code:139)

🔗 References

📤 Share & Export