Medium severity · published Jul 24, 2020
CVE-2020-15945
Lua 5.4.0 (fixed in 5.4.1) has a segmentation fault in changedline in ldebug.c (e.g., when called by luaG_traceexec) because it incorrectly expects that an oldpc value is always…
5.5
CVSS
0.5%
EPSS
No
On KEV
Description
Lua 5.4.0 (fixed in 5.4.1) has a segmentation fault in changedline in ldebug.c (e.g., when called by luaG_traceexec) because it incorrectly expects that an oldpc value is always updated upon a return of the flow of control to a function.
CVSS vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Attack vector
Local
Complexity
Low
Privileges
Low
User interaction
None
Confidentiality
None
Integrity
None
Availability
High
Scope
Unchanged
Exploitation
Is it being used?
Exploit prediction (EPSS)0.5% · higher than 46% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
LU
Lua · Lua
5.3.1 before 5.4.0 · source: NVD
References
NVD
https://nvd.nist.gov/vuln/detail/CVE-2020-15945
CVE.org
https://www.cve.org/CVERecord?id=CVE-2020-15945
Exploit
http://lua-users.org/lists/lua-l/2020-07/msg00123.html
Patch
https://github.com/lua/lua/commit/a2195644d89812e5b157ce7bac35543e06db05e3
www.lua.org
https://www.lua.org/bugs.html#5.4.0-8
More from Lua
9.8
CVE-2020-15889
Lua 5.4.0 has a getobjname heap-based buffer over-read because youngcollection in lgc.c uses markold for an insufficient number of list members
9.1
CVE-2022-28805
singlevar in lparser.c in Lua from (including) 5.4.0 up to (excluding) 5.4.4 lacks a certain luaK_exp2anyregup call, leading to a heap-based buffer over-read that might affect a…
8.8
CVE-2020-15888
Lua through 5.4.0 mishandles the interaction between stack resizes and garbage collection, leading to a heap-based buffer overflow, heap-based buffer over-read, or use-after-free
7.8
CVE-2020-24342
Lua through 5.4.0 allows a stack redzone cross in luaO_pushvfstring because a protection mechanism wrongly calls luaD_callnoyield twice in a row
7.5
CVE-2021-45985
In Lua 5.4.3, an erroneous finalizer called during a tail call leads to a heap-based buffer over-read
