CVE-2020-1914: Always-Incorrect Control Flow Implementation in Facebook Hermes
9.8
CVSS Score
3.1
Basic Information
CVE ID
GHSA ID
EPSS Score
0.73865%
CWE
Published
5/24/2022
Updated
1/27/2023
KEV Status
No
Technology
JavaScript
Technical Details
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
---|---|---|---|
hermes-engine | npm | <= 0.7.1 | 0.7.2 |
Vulnerability Intelligence
Miggo AI
Root Cause Analysis
The vulnerability stemmed from improper instruction pointer handling in the interpreter loop for SaveGeneratorLong
. The pre-patch code used a shared code path (doSaveGen
) that set 'ip = NEXTINST(SaveGenerator
)' regardless of whether the original instruction was SaveGenerator
or SaveGeneratorLong
. This failed to account for the longer instruction format, causing incorrect IP calculation. The patch specifically addresses this by using NEXTINST
with the correct instruction type for each case.