Skip to main content

radare2 CVE-2026-81883

| EUVDEUVD-2026-84472 LOW
Out-of-bounds Read (CWE-125)
2026-09-22 GitHub_M
3.3
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Craft malicious Lua 5.3 bytecode file
  2. Delivery
    Deliver sample to analyst
  3. Exploit
    Victim opens file in radare2
  4. Execution
    Parser reads metadata past buffer boundary
  5. Impact
    Invalid 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.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

radare2 < 6.2.0

Affected Packages

euvd radare2 fix: 6.2.0

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

Vendor (GitHub_M) PRIMARY 3.3 LOW
AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:L
vuln.today AI 3.3 LOW

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.

3.1 AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:L
4.0 AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Local
Attack Complexity
Low
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
Low

Lifecycle Timeline

1
Patch available
Sep 22, 2026 - 16:20 EUVD

DescriptionCVE.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

EPSS Score
0.2%
Top 94% exploitable
Prevalence
Low
niche open-source reverse-engineering framework, security-researcher userbase, not production-deployed
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity LOW
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation
Poc
System Exposure· derived
Small
Automatable
No
Human Impact· derived
Low
Technical Impact
Partial

Priority Score

16
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +16
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

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.

CVE-2023-46570 CRITICAL POC
9.8 Oct 28

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

CVE-2023-46569 CRITICAL POC
9.8 Oct 28

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

CVE-2023-4322 CRITICAL POC
9.8 Aug 14

Heap-based Buffer Overflow in GitHub repository radareorg/radare2 prior to 5.9.0. Rated critical severity (CVSS 9.8), th

CVE-2026-6942 CRITICAL POC
9.3 Apr 23

OS command injection in radare2-mcp (the Model Context Protocol server that bridges the radare2 reverse-engineering fram

CVE-2022-1899 CRITICAL POC
9.1 May 26

Out-of-bounds Read in GitHub repository radareorg/radare2 prior to 5.7.0. Rated critical severity (CVSS 9.1), this vulne

CVE-2022-1297 CRITICAL POC
9.1 Apr 11

Out-of-bounds Read in r_bin_ne_get_entrypoints function in GitHub repository radareorg/radare2 prior to 5.6.8. Rated cri

CVE-2022-1296 CRITICAL POC
9.1 Apr 11

Out-of-bounds read in `r_bin_ne_get_relocs` function in GitHub repository radareorg/radare2 prior to 5.6.8. Rated critic

CVE-2023-5686 HIGH POC
8.8 Oct 20

Heap-based Buffer Overflow in GitHub repository radareorg/radare2 prior to 5.9.0. Rated high severity (CVSS 8.8), this v

CVE-2026-40499 HIGH POC
8.4 Apr 15

Command injection in radare2's PDB parser (versions <6.1.4) enables arbitrary command execution when analysts process ma

CVE-2026-40517 HIGH POC
8.4 Apr 22

Command injection in radare2 PDB parser (versions before 6.1.4) enables arbitrary OS command execution when users analyz

CVE-2017-16357 HIGH POC
7.8 Nov 01

In radare 2.0.1, a memory corruption vulnerability exists in store_versioninfo_gnu_verdef() and store_versioninfo_gnu_ve

CVE-2017-15932 HIGH POC
7.8 Oct 27

In radare2 2.0.1, an integer exception (negative number leading to an invalid memory access) exists in store_versioninfo

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy