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

CVE-2026-6069

CVE-2026-6069
📅 PUBLISHED: 2026-04-10 00:00 UTC 🔄 UPDATED: 2026-10-02 19:31 UTC
[ ZERO-DAY / UNPATCHED ] [ DEFENSE PATCH ↓ ]
💣 PoC: Public
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.46%
👁️
0.46% probability
11.6× 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: 3.02
CVSS VECTOR BREAKDOWN 7.5
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: N Privileges Required None
UI: N User Interaction None
S: U Scope Unchanged
C: N Confidentiality None
I: N Integrity None
A: H Availability High
7.5
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-6069 is a stack-based buffer overflow in NASM's disasm() function, triggered when assembling or disassembling untrusted binary input where the slen parameter exceeds the stack buffer capacity used to format disassembly output. The flaw enables an attacker to cause an out-of-bounds write, leading to memory corruption. While the CVSS vector scores this as a network-exploitable, unauthenticated, low-complexity issue (7.5 High, Availability impact only), the real-world attack surface is narrow: NASM is a command-line assembler/disassembler, so exploitation typically requires processing malicious input files (e.g., during malware analysis, firmware reverse engineering, or in CI/CD build pipelines that compile untrusted assembly). No patch is currently available from any tracked source, and no exploit code has been published — only a public PoC reference exists. Organizations using NASM to handle untrusted binaries should treat this as a high-priority availability risk and restrict its use until a fix is released.

⚡ 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

The vulnerability resides in NASM’s disasm() routine — the code path responsible for converting machine code bytes back into human-readable assembly mnemonics. The NVD description states that a stack-based buffer overflow occurs "when formatting disassembly output," specifically when the value of slen (the length of the source instruction stream being processed) exceeds the capacity of a fixed-size stack buffer allocated for the formatted output string.

The mechanism is a classic CWE-787 (out-of-bounds write) flaw:

  1. disasm() receives a pointer to an input byte stream and a length parameter (slen) indicating how many bytes to decode.
  2. Internally, the function writes formatted mnemonics, operands, and prefixes into a stack-allocated character buffer.
  3. If slen is manipulated (either by a malformed input file that declares a larger instruction length than the buffer can hold, or by an instruction sequence that causes disasm() to write formatting data proportional to input length), the write operation exceeds the buffer's boundary.
  4. This overwrites adjacent stack data — including the function's saved return address and local variables — enabling memory corruption.

Because NASM is written in C and performs no inherent bounds checking on the formatted string output within disasm(), the overflow is triggered purely by malformed input rather than by an error in the caller's validation logic. The NVD description does not specify the exact buffer size, the precise instruction opcode that triggers the overflow, or whether the overflow occurs on a single instruction decode or across multiple iterations — insufficient technical detail is available in the public advisory to identify the specific triggering opcode sequence.

Attack surface considerations:

  • Local file ingestion: NASM is commonly used to disassemble raw binary blobs (e.g., nasm -f bin for assembling, or tools wrapping the disasm() library function). An attacker who can supply a malicious .bin, .obj, or firmware image to a victim's NASM invocation triggers the overflow.
  • Library usage: If disasm() is exposed through NASM's internal API or via bindings (e.g., in third-party reverse engineering tools), the attack surface expands to any application that calls this function with untrusted input.
  • Network reachability: The CVSS vector assumes AV:N (network). This is only realistic if NASM (or a wrapper) is embedded in a network-facing service that accepts uploaded binaries for disassembly — an uncommon deployment but present in some malware-analysis sandboxes or online assembly playgrounds.
  • No authentication required (PR:N) and no user interaction (UI:N) — consistent with file-based attacks where a victim simply runs a command on a downloaded file.

The absence of patch data (confidence 0/4, no vendor fix) indicates that certcc (the CNA) has not yet released a patched version, and no independent fork or distribution has published a backport. The OSV entry (b1ee0338a3f8027cf6886ca21ee31d444c615373→unfixed) confirms the vulnerable commit remains current.

Exploitation Scenarios

Note: No public exploit code exists — only a PoC reference. The attack chain below is inferred strictly from the vulnerability class and CVE description.

Scenario A — Malware Analyst / Reverse Engineering (Likely)

  1. Reconnaissance: An attacker crafts a malicious binary (PE, ELF, or raw shellcode blob) that contains a specific instruction sequence. The malicious bytes are engineered so that when disasm() processes them, the computed slen value exceeds the stack buffer. The attacker hosts this file on a website, forum, or as an email attachment, targeting security researchers and reverse engineers.
  2. Trigger: The victim runs NASM's disassembly functionality on the file (e.g., ndisasm malicious.bin or via a wrapper library). The disasm() function parses the instruction stream; the malformed length metadata causes it to write formatting strings past the stack buffer boundary.
  3. Execution: At the vulnerability-class level, the out-of-bounds write corrupts the saved return address on the stack. A classic stack-smashing payload overwrites this address with a pointer to attacker-controlled shellcode (e.g., embedded in the same file). Because no exploit code is public, practical exploitation likely requires the attacker to perform additional ROP-chain development to bypass modern stack canaries — NASM may not be compiled with stack protector enabled by default, which increases feasibility.
  4. Post-exploitation: Successful exploitation yields arbitrary code execution in the context of the victim user. For a malware analyst on a sandboxed machine, this could pivot to the host; in a CI/CD pipeline, this could compromise build infrastructure.

Scenario B — Network-Attached Disassembly Service (Lower Likelihood but Matches CVSS AV:N)

  1. Reconnaissance: An attacker identifies an online service (e.g., a web-based disassembler) that accepts uploaded binaries and processes them with NASM's disasm().
  2. Trigger: Attacker uploads a crafted binary via the service's HTTP API.
  3. Execution: The service parses the file, invoking disasm(); the overflow triggers as above. If the service runs NASM as a subprocess, the attacker crashes the worker (availability impact); if NASM is linked as a library in the service's process, the attacker gains code execution.
  4. Post-exploitation: Code execution on the server could expose other users' uploaded samples, source code, or cloud credentials.

Scenario C — Build Pipeline (Supply Chain)

  1. An attacker compromises a source repository or package that is then compiled by a downstream build system invoking NASM on untrusted assembly files. The disasm() overflow corrupts the assembler process, potentially allowing the attacker to inject code into the build output (if the overflow is leveraged to execute during the assembly phase).

In all scenarios, the practical impact per CVSS is availability (C:N/I:N/A:H) — the most likely near-term outcome is a crash (denial of service), with code execution remaining theoretical until public exploit development.

Impact Assessment

  • CVSS 7.5 (High) — driven by Network vector (0.85), Low complexity, No privileges, No user interaction, and High availability impact. The confidentiality and integrity scores are 0, reflecting that this is a memory-corruption flaw without direct data exposure or tampering.
  • Affected systems: Any NASM installation built from the vulnerable commit (unfixed). Given that no version range is published and the vulnerability exists in core disasm() functionality, this likely affects all NASM releases up to the date of this report.
  • Business impact:
    • Availability: Immediate crash or hang when processing crafted binaries — disrupts malware-analysis workflows, build pipelines, and firmware-auditing processes.
    • Integrity (latent): If code execution is achieved, the attacker can modify binaries being assembled/disassembled (e.g., trojanize firmware images), violating trust in build outputs.
    • Confidentiality (latent): Code execution on a disassembly workstation could expose proprietary reverse-engineering findings or source code.
  • Blast radius: The vulnerability is only exploitable when NASM processes untrusted input. Environments with strict allow-listing of input files or that use NASM only on trusted source code face minimal exposure. High-risk groups: security tool vendors embedding NASM, malware sandbox operators, and CI/CD systems that compile assembly from external contributors.
  • EPSS score of 0.00443 (37.1% percentile): Low probability of exploitation in the wild within 30 days — this CVE is unlikely to be actively exploited soon, likely due to the absence of public exploit code and the niche nature of the attack surface.
  • CISA KEV: No — not known to be exploited in the wild, and not on CISA's Known Exploited Vulnerabilities list.

Detection Guidance

The following rules target behaviors consistent with exploitation or the presence of malicious input files, since no network IOCs are known.

Sigma Rule

title: NASM Disasm Stack Buffer Overflow - Suspicious Input Processing
id: 6d0fcea3-8a2c-4b6f-9e5f-1a2b3c4d5e6f
status: experimental
description: Detects NASM disassembly runs on unusually large or malformed binary files, which may trigger CVE-2026-6069.
author: Valtersit Threat Intel
date: 2026/01/15
logsource:
    category: process_creation
    product: windows
detection:
    selection_nasm:
        Image|endswith: '\nasm.exe'
        CommandLine|contains|all:
            - '-f'  # output format flag, often necessary for disasm
            - 'bin' # raw binary output - common target for malicious use
    selection_large_input:
        # Files > 10 MB or with unusual entropy may contain trigger payload
        CommandLine|contains:
            - '*.img'
            - '*.bin'
            - '*.raw'
    condition: selection_nasm and selection_large_input
level: medium
tags:
    - attack.t1203
    - cve.2026.6069

Note: The Sigma rule focuses on heuristic detection. Process creation telemetry from a disassembler is not inherently suspicious; the rule needs tuning for your environment.

YARA Rule

rule NASM_CVE_2026_6069_Exploit_Heuristic {
    meta:
        author = "Valtersit Threat Intel"
        description = "Heuristic detection of crafted binaries that may trigger the disasm() stack overflow in NASM (CVE-2026-6069)."
        cve = "CVE-2026-6069"
        date = "2026-01-15"
        severity = "medium"
    strings:
        // A malicious file must decode as a valid instruction stream; no reliable
        // byte signature exists yet without public PoC.
        // Heuristic: file claims to be a binary object and contains long
        // sequences of NOP (0x90) or 0xCC (int3) that could serve as a sled,
        // followed by a large data block.
        $nop_sled = { 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 }
        $int3_sled = { CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC }
        $pe_magic = "MZ"
        $elf_magic = { 7F 45 4C 46 }
    condition:
        filesize > 1MB and
        (uint16(0) == 0x5A4D or uint32(0) == 0x464C457F) and  // PE or ELF header
        (1 of ($sleds)) and
        // Large section of contiguous data above the first 1KB (indicative of
        // an embedded trigger payload)
        (filesize - 1024 > 10000)
}

Suricata IDS Rule

alert http any any -> any any (msg:"CVE-2026-6069 NASM Disasm Upload Attempt - Potential Malicious Binary Download"; flow:established,to_client; file.magic:"PE32 executable" or file.magic:"ELF"; file.size:>1000000; content:"Content-Disposition"; nocase; threshold:type both, track by_src, count 1, seconds 60; classtype:attempted-admin; sid:20266069; rev:1;)

Note: This rule flags downloads of large PE/ELF files — a heuristic that may be over-broad. In a network-only sensor, direct detection of NASM overflow is impractical; this rule targets the delivery channel of the malicious input file.

Elastic Detection

# EQL rule for Elastic Security
sequence by process.entity_id with maxspan=5m
  [process where event.action == "exec" and process.name == "nasm.exe"]
  [file where event.action in ("open", "read") and file.extension in ("bin", "img", "raw")]

Alternative — If NASM crashes:

# Detects NASM process termination due to stack overflow
event.category: process and event.type: end and process.name: nasm.exe and process.exit_code: -1073741819

(-1073741819 = 0xC0000005 = STATUS_ACCESS_VIOLATION)

Splunk SPL Query

index=endpoint sourcetype=WinEventLog:Security EventCode=4688
| where ProcessName LIKE "%nasm.exe%" AND CommandLine LIKE "* -f bin*"
| eval trigger_indicators = if(match(CommandLine, "\.(bin|img|raw|exe|elf)"), "potential_malicious_input", "benign_use")
| stats count by host, ProcessName, CommandLine, trigger_indicators
| where trigger_indicators == "potential_malicious_input"

For Linux-based telemetry (Sysmon/auditd):

index=linux sourcetype=auditd comm=nasm
| eval large_file = if(msg LIKE "%size=1000000%" OR msg LIKE "%size=10000000%", "suspicious", "normal")
| stats count by host, comm, exe, large_file

Wazuh OSSEC Rule

<group name="nasm,cve_2026_6069,">
  <rule id="20266069" level="10">
    <decoded_as>syslog</decoded_as>
    <field name="program_name" >nasm|ndisasm</field>
    <description>NASM process terminated abnormally - potential stack buffer overflow (CVE-2026-6069)</description>
    <group>vulnerability</group>
    <mitre>
      <id>T1203</id>
    </mitre>
  </rule>
</group>

Mitigation & Patch Guidance

Patch confidence: 0/4 — UNPATCHED. No vendor fix, no commit references, no backport from certcc. Treat NASM as vulnerable until a new release or patch commit is published.

  1. Immediate mitigations (until patch):

    • Do not run NASM or ndisasm on untrusted binaries — this is the only full mitigation. Implement an allow-list: only process files that originate from trusted internal builds or verified upstream sources.
    • If NASM must process external files, run it inside a dedicated, disposable virtual machine or container, with no host filesystem mounts, network egress blocked, and a memory limit (ulimit -v, Docker --memory). Monitor for non-zero exit codes or abnormal termination.
    • For CI/CD pipelines: scan all incoming assembly/source artifacts for size anomalies (>10MB is rare for source) and quarantine them for manual review before invoking NASM.
    • Use an alternative disassembler (e.g., objdump, Capstone, radare2) for untrusted file analysis until the patch is available.
  2. Patch/upgrade steps:

    • Monitor certcc’s release channel (official NASM repository) for a version bump. The OSV entry tracks the vulnerable commit b1ee0338a3f8027cf6886ca21ee31d444c615373; check for any commit that modifies the disasm() function and adds boundary checks to the formatting logic.
    • As soon as a patched version is published (likely NASM 2.17.xx or later), upgrade all instances — including those embedded in third-party tools. Verify the fix by disassembling the PoC file if it becomes available.
    • Rebuild statically-linked NASM binaries that may be buried in other applications.
  3. Long-term hardening:

    • Enable compile-time hardening for any local NASM build: -fstack-protector-all -D_FORTIFY_SOURCE=2 -pie -fPIE. Do not rely on the vendor's default compile flags.
    • Perform periodic security audits of any toolchain component (assemblers, compilers, linkers) that processes external data.
    • Subscribe to certcc's CVE notifications and the NASM mailing list for early patch announcements.
    • If NASM is embedded as a library in your product, plan to vendor-patch the disasm() function yourself by adding a check that slen cannot exceed the allocated output buffer — this is a straightforward bounds check that does not require understanding the full decoder.

References

  1. NVD Entry — https://nvd.nist.gov/vuln/detail/CVE-2026-6069 (CVSS 7.5, CWE-787, current status)
  2. OSV.dev Advisory — https://osv.dev/vulnerability/CVE-2026-6069 (Affected commit tracking: b1ee0338a3f8027cf6886ca21ee31d444c615373 → unfixed)
  3. Public PoC reference — [CVE-2026-6069 PoC repository] (generic reference — exact URL unavailable in source data)
  4. CWE-787 (Out-of-bounds Write) — https://cwe.mitre.org/data/definitions/787.html
  5. certcc CNA coordination — vendor-notification channel (no public advisory URL available at time of writing)

Threat actor activity: No known campaigns exploiting CVE-2026-6069 in the wild. CISA KEV status: NO. EPSS score (0.00443) confirms below-average exploitation likelihood. This CVE is a strategic-preparation target — exploit developers may weaponize it for use against reverse engineering and malware analysis communities, but no evidence of active exploitation exists.

👁️ 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.

http.title:

💣 PoC CODE AVAILABLE

Exploit code for this CVE is tracked in our database. Access poc_code via API Pro.

[ API_PRO ] →
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-6069/ · 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.