☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]

CVE-2023-49554

CVE-2023-49554 Use After Free in Yasm
📅 PUBLISHED: 2024-01-02 00:00 UTC 🔄 UPDATED: 2026-09-23 10:16 UTC
⏳ SCORE PENDING — ANALYSIS IN PROGRESS [ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.40%
👁️
0.40% probability
9.9× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
VULNERABLE: UNKNOWN / CHECK VENDOR
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
SOON
PENDING NVD
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2023-49554 is a Use-After-Free (UAF) vulnerability identified in YASM (Yet Another Assembler) version 1.3.0.86.g9def. The flaw resides in the do_directive function within the modules/preprocs/nasm/nasm-pp.c component. A remote attacker can trigger this vulnerability by providing a specially crafted input file, leading to a denial of service (DoS) condition. The vulnerability is currently unpatched, and no public proof-of-concept (PoC) or exploit code has been released. The EPSS score is 0.0%, indicating a very low probability of exploitation in the wild at this time.

⚡ 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

CVSS Breakdown & Threat Level

  • CVSS Score: 0.0 (Unavailable)
  • Attack Vector (AV): Network (likely)
  • Attack Complexity (AC): Low (likely)
  • Privileges Required (PR): None (likely)
  • User Interaction (UI): Required (likely, as the victim must process a malicious file)
  • Scope (S): Unchanged
  • Confidentiality (C): None
  • Integrity (I): None
  • Availability (A): High

Threat Level: Medium (due to DoS impact and lack of patch)

Deep Dive & Mechanics

The vulnerability is a classic Use-After-Free (CWE-416) in the NASM preprocessor module of YASM. The do_directive function is responsible for handling preprocessor directives (e.g., %define, %macro). When processing a malformed or specially crafted input file, the function may free a memory region but continue to hold a dangling pointer to that region. Subsequent access to this freed memory can cause a crash, leading to a denial of service.

Root Cause Analysis:

  • The do_directive function in nasm-pp.c does not properly validate the state of memory after a free operation.
  • An attacker can craft an assembly source file that triggers a specific code path where a pointer is used after the memory it points to has been freed.
  • This results in a segmentation fault or other memory corruption, crashing the YASM process.

Attack Vector:

  • Remote attacker sends a malicious .asm file to a service or user that processes it with YASM.
  • No authentication required.
  • User interaction is required (the victim must open or process the file).

Vulnerable vs. Patched Code

Vulnerable Code (YASM 1.3.0.86.g9def): The vulnerable code is in modules/preprocs/nasm/nasm-pp.c within the do_directive function. The exact vulnerable lines are not publicly disclosed, but the issue is a use-after-free.

// Hypothetical vulnerable pattern
char *ptr = malloc(size);
// ... some processing ...
free(ptr);
// ... later ...
strcpy(ptr, "data"); // Use after free

Patched Code: No official patch is available. The vendor (YASM) has not released a fix. Users are advised to avoid processing untrusted files with this version.

Exploitation & Lab Setup

Red Team

Objective: Trigger a denial of service on a target system running YASM 1.3.0.86.g9def.

Lab Setup:

  1. Install YASM 1.3.0.86.g9def on a test system (Linux recommended).
  2. Create a malicious assembly file that triggers the UAF.

Exploit Steps:

  1. Craft a .asm file with a sequence of NASM preprocessor directives designed to cause a use-after-free in do_directive.
  2. Execute: yasm -f elf64 malicious.asm
  3. Observe the crash (segmentation fault).

Example Malicious Input (Hypothetical):

%macro test 1
    %define %%var %1
    %undef %%var
    %define %%var %1
%endmacro

test 1

Blue Team

Detection:

  • Monitor for crashes of the yasm process.
  • Use file integrity monitoring to detect unexpected .asm files.
  • Implement network filtering to block known malicious file types if not required.

Mitigation:

  • Do not process untrusted assembly files with YASM 1.3.0.86.g9def.
  • Use a sandboxed environment for any YASM processing.
  • Consider using alternative assemblers (e.g., NASM) until a patch is available.

Indicators of Compromise (IOCs)

  • File Hashes: (None available, but any .asm file that causes a crash in YASM 1.3.0.86.g9def)
  • Process Behavior: yasm process crashes with SIGSEGV (signal 11)
  • Log Entries: System logs showing yasm[PID]: segfault at ...
  • Network: No network indicators (local file processing)

Detection Engineering

YARA Rule

rule CVE_2023_49554_YASM_UAF {
    meta:
        description = "Detects malicious assembly files targeting CVE-2023-49554"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2023-49554"
    strings:
        $macro = /%macro\s+\w+\s+\d+/ nocase
        $undef = /%undef\s+\w+/ nocase
        $define = /%define\s+\w+/ nocase
    condition:
        all of them and filesize < 10KB
}

Sigma Rule

title: YASM Process Crash Due to Use-After-Free
id: 8a9b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d
status: experimental
description: Detects crashes of the YASM assembler process, potentially indicating exploitation of CVE-2023-49554.
author: Valters IT
date: 2025-04-10
logsource:
    category: process_creation
    product: linux
detection:
    selection:
        Image|endswith: '/yasm'
        ExitCode: -11
    condition: selection
falsepositives:
    - Legitimate crashes due to malformed files
level: medium

Suricata Rule

alert tcp $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2023-49554 YASM Malicious Assembly File Transfer"; flow:to_server,established; content:"%macro"; content:"%undef"; content:"%define"; classtype:attempted-dos; sid:1000001; rev:1;)

Remediation & Mitigation

  1. Immediate: Do not process untrusted assembly files with YASM 1.3.0.86.g9def.
  2. Short-term: Use an alternative assembler (e.g., NASM, GNU Assembler) until a patch is released.
  3. Long-term: Monitor the YASM project for an official patch. Apply it as soon as it becomes available.
  4. Compensating Controls: Run YASM in a sandboxed environment (e.g., Docker container with limited resources) to contain any DoS impact.

Valters IT
DevSecOps & Cyber Threat Intelligence

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2023-49554/ · 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.