CVE-2020-24344

7.1 HIGH

📋 TL;DR

CVE-2020-24344 is a buffer over-read vulnerability in JerryScript's JavaScript engine affecting versions through 2.3.0. This allows reading memory beyond allocated buffers, potentially exposing sensitive information or causing crashes. Systems using JerryScript for IoT devices, embedded systems, or JavaScript execution are affected.

💻 Affected Systems

Products:
  • JerryScript JavaScript engine
  • IoT devices using JerryScript
  • Embedded systems with JerryScript
Versions: All versions through 2.3.0
Operating Systems: All platforms running JerryScript
Default Config Vulnerable: ⚠️ Yes
Notes: Any application or device using vulnerable JerryScript versions is affected when executing JavaScript code.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Information disclosure of sensitive memory contents, denial of service through application crashes, or potential remote code execution if combined with other vulnerabilities.

🟠

Likely Case

Application crashes or denial of service in JerryScript-based applications, potentially exposing limited memory contents.

🟢

If Mitigated

Controlled crashes without data exposure if memory protections are enabled, though availability impact remains.

🌐 Internet-Facing: MEDIUM - Exploitation requires specific JavaScript execution, but many IoT/embedded devices using JerryScript may be internet-accessible.
🏢 Internal Only: LOW - Requires JavaScript execution in JerryScript environment, which is less common in internal-only systems.

🎯 Exploit Status

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

Exploitation requires crafting specific JavaScript code with function({a=arguments}){const arguments} pattern to trigger the buffer over-read.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: JerryScript 2.4.0 and later

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

Restart Required: Yes

Instructions:

1. Update JerryScript to version 2.4.0 or later. 2. Recompile applications using JerryScript. 3. Restart affected services or devices.

🔧 Temporary Workarounds

Input validation and sanitization

all

Validate and sanitize JavaScript input to prevent execution of malicious patterns

Memory protection controls

linux

Enable ASLR and other memory protection mechanisms to limit impact

🧯 If You Can't Patch

  • Isolate JerryScript execution environments from sensitive systems
  • Implement strict input validation for all JavaScript code processed by JerryScript

🔍 How to Verify

Check if Vulnerable:

Check JerryScript version with 'jerry --version' or examine application dependencies for JerryScript <=2.3.0

Check Version:

jerry --version

Verify Fix Applied:

Verify JerryScript version is 2.4.0 or later and test with known proof-of-concept code

📡 Detection & Monitoring

Log Indicators:

  • Application crashes with memory access violations
  • Unexpected termination of JerryScript processes

Network Indicators:

  • Unusual JavaScript payloads containing function({a=arguments}) patterns

SIEM Query:

Process termination where process_name contains 'jerry' AND exit_code indicates memory violation

🔗 References

📤 Share & Export