☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ VENDOR STATS ]
CVSS: 7.7 CVSS:3.1/AV:L/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H 🐛 CWE-787
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2021-43814

CVE-2021-43814 — Heap-based OOB write when parsing dwarf DIE info in Rizin
📅 PUBLISHED: 2021-12-13 00:00 UTC 🔄 UPDATED: 2026-09-23 20:19 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.85%
👁️
0.85% probability
21.1× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1203
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 7.7
AV: L Attack Vector Local
AC: H Attack Complexity High
PR: N Privileges Required None
UI: R User Interaction Required
S: U Scope Unchanged
C: H Confidentiality High
I: H Integrity High
A: H Availability High
7.7
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2021-43814 is a heap-based out-of-bounds (OOB) write vulnerability in the DWARF debugging information parser of Rizin, a UNIX-like reverse engineering framework. The flaw exists in the parse_die() function and affects Rizin versions up to and including 0.3.1. Successful exploitation requires a victim to open a crafted AMD64 ELF binary containing malicious DWARF debug information, potentially leading to a crash or arbitrary code execution within the context of the Rizin process. With a CVSS score of 7.7 (High) and an EPSS score of 0.00846 (54.7% percentile), this vulnerability poses a moderate exploitation likelihood but carries significant integrity and availability impacts.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Technical Analysis

Rizin is a reverse engineering framework that provides binary analysis capabilities similar to radare2. The vulnerability resides in the DWARF parsing component, specifically in the parse_die() function, which is responsible for processing Debugging Information Entries (DIEs) from the .debug_info section of ELF binaries.

The flaw is a heap-based out-of-bounds write. When Rizin parses DWARF debug information from a malformed AMD64 ELF binary, the parse_die() function fails to properly validate the size and bounds of data read from the heap-allocated buffer. Specifically, the function may write data beyond the allocated heap buffer boundaries when processing certain DIE structures or attributes, leading to memory corruption.

The attack surface is the file-parsing pipeline of Rizin. When a user invokes Rizin's analysis tools (e.g., the command-line interface or automated analysis scripts) on a maliciously crafted ELF binary, the DWARF parser is automatically triggered if the binary contains debug information. This makes the vulnerability particularly dangerous in environments where analysts routinely process untrusted binaries from external sources.

The heap OOB write is not limited to simple memory corruption. Depending on the heap layout at the time of exploitation, an attacker could potentially overwrite adjacent heap metadata or function pointers, leading to arbitrary code execution. The root cause is insufficient arithmetic validation during DIE parsing, where offsets and lengths are not checked against the actual buffer size before write operations occur.

No exploitation details or publicly disclosed proof-of-concept are available at the time of this report. The NVD description notes that no workarounds are known and users are advised to upgrade, though no patched version has been confirmed in the tracked patch sources.

Exploitation Scenarios

The attack chain for CVE-2021-43814 is inferred from the vulnerability class and the NVD description. No public PoC is available, and the attack chain is described at a high level based on the heap OOB write mechanism.

Step 1: Reconnaissance and Target Identification

The attacker targets security analysts, malware researchers, or any individual or system that uses Rizin for binary analysis. The attacker crafts a malicious AMD64 ELF binary containing deliberately malformed DWARF debug information designed to trigger the out-of-bounds write in parse_die(). The binary is delivered through common distribution channels: direct download, email attachment, malicious repository submission, or bundled with other software.

Step 2: Triggering the Vulnerability Class

For the heap-based OOB write in the DWARF DIE parser to be triggered, the victim must open the malicious ELF binary with a vulnerable Rizin version (<= 0.3.1). Once the binary is loaded, Rizin initiates DWARF parsing to extract debug symbols. The malformed DIE structures in the .debug_info section cause parse_die() to perform a write operation that exceeds the allocated heap buffer boundaries. This is a classic memory corruption primitive triggered by malformed input data.

Step 3: Payload and Execution Method

At the vulnerability-class level, heap OOB writes can be leveraged for arbitrary code execution by carefully crafting the overflow to overwrite critical heap metadata or function pointers. An attacker would need to groom the heap to place sensitive data adjacent to the overflow buffer. Given that this is a local, user-assisted exploitation scenario (the victim must open the malicious file), the attacker's goal is likely to execute code within the Rizin process context. The written data is controlled by the DWARF content in the malicious binary, providing a potential primitive to redirect control flow.

Step 4: Post-Exploitation Impact

If exploited successfully, the attacker could achieve arbitrary code execution with the privileges of the user running Rizin. This could lead to data theft (e.g., exfiltration of files the analyst is working with), lateral movement within a network if the compromised machine has access to sensitive resources, or establishing persistence on the target system. Alternatively, the attacker may simply trigger a denial-of-service by causing Rizin to crash, disrupting the victim's analysis workflow. Since analysis machines often hold long-term access to sensitive infrastructure, the pivot potential from this type of compromise is significant.

Impact Assessment

CVE-2021-43814 affects all Rizin users performing analysis on AMD64 ELF binaries, which encompasses a broad segment of the reverse engineering and security analysis community. The vulnerability has a CVSS base score of 7.7 (High), with the impact vector indicating High confidentiality, High integrity, and High availability impacts. However, the attack complexity is rated High, and user interaction is required, meaning an attacker cannot exploit this remotely without victim cooperation.

The primary business impact is on organizations that process untrusted binaries as part of their security operations — malware analysis teams, incident responders, and threat intelligence groups. A successful exploit could compromise the analysis environment, potentially exposing sensitive research data, credentials, and internal tooling. The lack of a confirmed patch creates an ongoing exposure risk.

The blast radius is moderate, limited to the local system where Rizin runs. The heap corruption is contained to the Rizin process unless the attacker escalates privileges, but the exposure of reverse engineering results and automated analysis pipeline compromise represent tangible business risks. With no known workarounds, affected organizations face a difficult choice between accepting risk and halting analysis operations.

Detection Guidance

Sigma Rule

title: CVE-2021-43814 Rizin DWARF Parse Die Heap Overflow Attempt
id: 8f3b4a1c-2d5e-4f7a-9b3c-1e6a8d2c4f5a
status: experimental
description: Detects suspicious Rizin process crashes or abnormal behavior when parsing ELF binaries with DWARF debug info, potentially indicating exploitation of CVE-2021-43814.
references:
    - https://nvd.nist.gov/vuln/detail/CVE-2021-43814
author: Valtersit Security
date: 2024/12/05
logsource:
    category: process_creation
    product: linux
detection:
    selection_rizin:
        Image|endswith:
            - '/rizin'
            - '/r2'
    selection_crash:
        EventID:
            - 1000  # crash event
            - 1001  # application error
    condition: selection_rizin and selection_crash
level: medium
falsepositives:
    - Legitimate crashes due to malformed binaries during research
    - Rizin version specifically at 0.3.1 or earlier

YARA Rule

rule CVE_2021_43814_Rizin_DWARF_Malicious_ELF {
    meta:
        author = "Valtersit Security"
        description = "Detects ELF binaries with suspicious DWARF DIE structures associated with CVE-2021-43814 exploitation"
        date = "2024-12-05"
        cve = "CVE-2021-43814"
    strings:
        $elf_magic = { 7F 45 4C 46 }                    // \x7FELF
        $dwarf_abbrev = ".debug_abbrev" ascii
        $dwarf_info = ".debug_info" ascii
        $dwarf_die = { 00 00 00 00 }                    // potential malformed DIE header (null tag)
    condition:
        $elf_magic at 0 and
        ($dwarf_abbrev or $dwarf_info) and
        #dwarf_die > 5
}

Suricata IDS Rule

alert http any any -> any any (msg:"CVE-2021-43814 - Potential Malicious ELF with DWARF Debug Info Download"; flow:established,from_client; content:"|7f|ELF"; depth:4; content:".debug_info"; nocase; threshold:type both, track by_src, count 1, seconds 300; reference:cve,2021-43814; classtype:attempted-user; sid:2021438; rev:1;)

Elastic Detection

event.category: process
AND process.name: (rizin OR r2)
AND event.kind: alert
AND event.outcome: failure
AND message: "*segfault*" OR message: "*heap*" OR message: "*abort*"
AND signal.rule.name: "CVE-2021-43814 DWARF Parser OOB Write"

Splunk SPL Query

index=process sourcetype=linux_audit OR sourcetype=syslog
  (process_name="rizin" OR process_name="r2")
  AND (signal="SEGV" OR signal="SIGABRT" OR signal="SIGSEGV")
  AND (msg="*mmap*" OR msg="*segfault at*" OR msg="*heap overflow*")
  | table _time, host, process_name, cmdline, signal, msg
  | eval severity="high"
  | sort - _time
  | head 100

Wazuh OSSEC Rule

<rule id="883352" level="10">
    <decoded_as>syslog</decoded_as>
    <description>CVE-2021-43814 - Potential Rizin DWARF Parser Heap Overflow Exploitation</description>
    <match>rizin|r2</match>
    <regex>segfault|SIGSEGV|heap corruption|mmap region</regex>
    <group>memory_corruption,vulnerability,rizin,</group>
    <mitre>
        <id>T1203</id>
    </mitre>
    <options>no_full_log</options>
    <info>Rizin process detected crashing with memory corruption indicators, potentially exploiting CVE-2021-43814</info>
</rule>

Mitigation & Patch Guidance

Patch Confidence: 0/4 — UNPATCHED

No official patch has been identified across any tracked source. The NVD description states that no workarounds are known and users are advised to upgrade, but no specific patched version beyond 0.3.1 has been confirmed in the patch sources. This is a critical gap in remediation.

Immediate Mitigations

  1. Isolate Analysis Environments: Run Rizin and all binary analysis tools in a sandboxed virtual machine or container with no network access and restricted host filesystem access. This contains potential exploitation.
  2. Disable Automatic Analysis: If Rizin's command-line tools auto-parse DWARF debug info upon file load, disable this feature in configuration files to prevent the vulnerable code path from being triggered.
  3. Monitor File Sources: Implement strict controls on binaries entering the analysis pipeline. Pre-scan files with alternative tools (e.g., readelf, objdump) that do not contain this vulnerability.
  4. Access Control: Limit the user accounts that can run Rizin and restrict file access to trusted analysts only.

Patch/Upgrade Steps

  1. Monitor Rizin's official GitHub repository and mailing lists for a security release that addresses CVE-2021-43814.
  2. When a patched version (beyond 0.3.1) is released, upgrade immediately through the preferred installation method (package manager, source build, or binary distribution).
  3. Verify the upgraded version contains a fix in the DWARF parsing module, specifically in parse_die().

Long-Term Hardening

  1. Input Validation: Implement file-type validation before feeding binaries to Rizin. Reject binaries with unexpected DWARF structures.
  2. Memory Safety: Consider using memory-safe parsing tools or Fuzzing frameworks to continuously test Rizin's parsers for similar defects.
  3. Monitoring and Detection: Deploy the detection rules provided above to detect exploitation attempts and crashes across the network.
  4. Vendor Communication: Actively communicate with Rizin maintainers regarding patch availability and request accelerated remediation.
  5. Alternative Tools: Temporarily migrate analysis workloads to alternative frameworks with confirmed security posture for DWARF parsing.

References

  1. NVD Entry: https://nvd.nist.gov/vuln/detail/CVE-2021-43814
  2. Rizin Official Site: https://rizin.re/ — Monitor for security advisories and release notes.
  3. Rizin GitHub Repository: https://github.com/rizinorg/rizin — Monitor for patched versions, security updates, and commit history related to DWARF parsing fixes.
  4. EPSS (First.org): https://www.first.org/epss/ — EPSS score 0.00846 (54.7% percentile) for CVE-2021-43814.
  5. CISA KEV Catalog: CVE-2021-43814 is NOT listed in the CISA Known Exploited Vulnerabilities catalog as of this report, indicating no confirmed in-the-wild exploitation.

No known threat actor campaigns or exploit-in-the-wild evidence have been reported for this CVE. The absence of a publicly available PoC and confirmed patch should not be interpreted as low risk; the vulnerability class (heap OOB write in a widely-used security tool) remains attractive to threat actors targeting security researchers and analysts.

👁️ SHODAN DORKS (THREAT HUNTING)

What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.

rizin
cutter rizin
rizin reverse engineering framework
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2021-43814/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.