Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft malicious Lua 5.3 bytecode file
-
DeliveryDeliver sample to analyst
-
ExploitVictim opens file in radare2
-
ExecutionParser reads metadata past buffer boundary
-
ImpactInvalid results or process crash (DoS)
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, read limits
MITRE ATT&CK
1 technique across 1 tactic: Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires a victim running radare2 prior to 6.2.0 to open or inspect an attacker-supplied, crafted Lua 5.3 bytecode file in which the function-name string ends exactly at the input-buffer boundary (so the parser's subsequent reads of two integers and three one-byte metadata fields fall past the allocation). Limiting factors: the vector is local (AV:L) and requires user interaction (UI:R) - the analyst must actively load the malicious file; there is no network-triggerable path, no privilege escalation, and no code execution or data disclosure, so the realistic outcome is limited to crashing the analyst's own radare2 process. |
| Impact | This is a genuinely low-priority issue whose signals are internally consistent. The CVSS 3.1 vector (AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:L, base 3.3) describes a local, user-interaction-gated out-of-bounds READ (CWE-125) with impact limited to availability - the description explicitly states 'no attacker-observable memory disclosure has been demonstrated,' which is why C:N and I:N are correct. There is no EPSS score, no CISA KEV listing, and no public exploit identified at time of analysis; the worst realistic outcome is a crash of the radare2 process while an analyst inspects a crafted file. The only mild tension in the input is between the metadata Tags ('Buffer Overflow', 'Information Disclosure') and the actual technical facts: the vulnerability is an over-READ of two integers and three one-byte fields past the input buffer that yields invalid results or termination - NOT a memory-disclosure primitive and not a write overflow. Net: a real but very low-severity robustness bug in a file parser, not an exploitation priority. |
| Exploit ScenarioDerived | An attacker crafts a malicious Lua 5.3 bytecode file whose function-name string terminates exactly at the input-buffer boundary and distributes it (e.g., as a sample submitted for analysis). When a reverse engineer opens or inspects the file in radare2 prior to 6.2.0, the Lua parser reads fixed function-metadata fields past the allocated buffer, producing corrupted parse output or terminating the process. No public exploit code is identified, and impact is confined to denial of service against the analyst's local tool; no code execution or memory disclosure has been demonstrated. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 22, 2026
Out-of-bounds read in radare2's Lua 5.3 bytecode function parser affects all versions prior to 6.2.0, allowing a crafted input file to push parser reads past the end of the allocated buffer. Exploitation is local and requires user interaction: an analyst must open or inspect an attacker-supplied Lua 5.3 bytecode file whose function-name string ends exactly at the input-buffer boundary, after which the parser reads two integers and three one-byte metadata fields beyond the allocation, producing invalid parser results or terminating the process. Per the CVSS 3.1 vector (AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:L) there is no memory disclosure, no code execution, and no privilege escalation - the realistic outcome is a crash of the analyst's own radare2 instance - and there is no public exploit identified at time of analysis and no confirmed active exploitation. The flaw is fixed in radare2 6.2.0.
RemediationAI
Upgrade to radare2 6.2.0 or later - vendor-released patch: 6.2.0 (see https://github.com/radareorg/radare2/releases/tag/6.2.0, advisory GHSA-96m5-hvwp-674c, and fix commit 26c2eac360033458e9d266e5e30667d1f8d642e3) - which both adds the missing remaining-length check and repairs the offset handling that produced corrupt parser state. Because the CVSS vector is AV:L/PR:N/UI:R, the only attack path is an analyst deliberately loading a malicious Lua 5.3 bytecode file, so interim compensating controls are practical: avoid opening or scripting analysis of untrusted Lua 5.3 bytecode in radare2 (trade-off: loss of that analysis capability until patched), run radare2 in a disposable container or VM with no access to sensitive host data (trade-off: extra setup and slower workflow, but it confines any crash to a throwaway environment), and supervise batch/automated radare2 pipelines with restart-on-crash and file-timeout handling so a crafted sample cannot stall a long-running triage job (trade-off: added orchestration complexity). Note that network-facing isolation is not required here since the vector is local and non-escalating; no configuration flag disables the Lua bytecode parser separately, so version upgrade remains the definitive fix.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The issue is a CWE-125 out-of-bounds read in libr/bin/format/lua/lua.c, specifically in lua53parseFunction(), the routine that parses function prototypes out of Lua 5.3 precompiled bytecode. Lua 5.3 bytecode stores each function as a variable-length structure beginning with a function-name string followed by fixed-width metadata (source/line-defined flags, line numbers, and the counts and offsets of code, constants, upvalues and nested prototypes, encoded using the header's configured integer size). The vulnerable code read those fixed fields immediately after the name string without first verifying that the remaining buffer length covered them, so a bytecode file deliberately truncated so the name string ends exactly at the allocation boundary caused two integer reads and three single-byte reads to land past the mapped input buffer, yielding garbage offsets/counts and often a fault. The upstream fix in commit 26c2eac360033458e9d266e5e30667d1f8d642e3 adds a guard (if (!offset || offset > size || size - offset < lh->intSize * 2 + 3)) and routes failures through a beach: cleanup label that frees the partially constructed function before returning 0. The same diff also corrects follow-on parsing so that subsequent integer reads use the resolved code_offset/const_offset/upvalue_offset/protos_offset fields rather than the raw cursor, improving parser robustness beyond the bounds check itself. The affected component is reachable through radare2's binary-format detection layer (the CPE cpe:2.3:a:radareorg:radare2:*:*:*:*:*:*:*:* covers all builds before 6.2.0).
Know when Radare2 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:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:L
Local file must be opened by the victim (AV:L, UI:R), no auth to craft the file (PR:N); impact is an out-of-bounds read causing crash only, so C:N/I:N and A:L.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
radare2 is a UNIX-like reverse engineering framework and command-line toolset. Prior to 6.2.0, radare2's Lua 5.3 bytecode function parser was vulnerable because the Lua 5.3 bytecode function parser read fixed function-metadata fields immediately after a function-name string without checking the remaining buffer length. The vulnerability is triggered by opening or inspecting a crafted Lua 5.3 bytecode file whose function-name string ends at the input-buffer boundary. The parser read two integers and three one-byte fields beyond the allocated input buffer. This can cause invalid parser results or process termination; no attacker-observable memory disclosure has been demonstrated. This issue is fixed in version 6.2.0.
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
A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.
An out-of-bounds read in radare2 v.5.8.9 and before exists in the print_insn32 function of libr/arch/p/nds32/nds32-dis.h
An out-of-bounds read in radare2 v.5.8.9 and before exists in the print_insn32_fpu function of libr/arch/p/nds32/nds32-d
Heap-based Buffer Overflow in GitHub repository radareorg/radare2 prior to 5.9.0. Rated critical severity (CVSS 9.8), th
OS command injection in radare2-mcp (the Model Context Protocol server that bridges the radare2 reverse-engineering fram
Out-of-bounds Read in GitHub repository radareorg/radare2 prior to 5.7.0. Rated critical severity (CVSS 9.1), this vulne
Out-of-bounds Read in r_bin_ne_get_entrypoints function in GitHub repository radareorg/radare2 prior to 5.6.8. Rated cri
Out-of-bounds read in `r_bin_ne_get_relocs` function in GitHub repository radareorg/radare2 prior to 5.6.8. Rated critic
Heap-based Buffer Overflow in GitHub repository radareorg/radare2 prior to 5.9.0. Rated high severity (CVSS 8.8), this v
Command injection in radare2's PDB parser (versions <6.1.4) enables arbitrary command execution when analysts process ma
Command injection in radare2 PDB parser (versions before 6.1.4) enables arbitrary OS command execution when users analyz
In radare 2.0.1, a memory corruption vulnerability exists in store_versioninfo_gnu_verdef() and store_versioninfo_gnu_ve
In radare2 2.0.1, an integer exception (negative number leading to an invalid memory access) exists in store_versioninfo
EUVD-2026-84472
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB