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

CVE-2023-49556

CVE-2023-49556 Buffer Overflow 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.42%
👁️
0.42% probability
10.4× 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-49556 is a buffer overflow vulnerability discovered in YASM (Yet Another Assembler) version 1.3.0.86.g9def. The flaw resides in the expr_delete_term function within the libyasm/expr.c component, allowing a remote attacker to trigger a denial of service (DoS) by providing a specially crafted input. The vulnerability has a CVSS score of 0.0 (unscored) and an EPSS score of 0.0%, indicating low exploitation likelihood at this time. No public proof-of-concept (PoC) code or patch exists, and the vendor has not acknowledged or addressed the issue.

⚡ 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

Supply Chain & Package Security

YASM is a widely used assembler in development toolchains, often integrated into build systems and CI/CD pipelines. This vulnerability does not directly affect package registries (NPM, PyPI, Go, Ruby) but poses a risk to systems that process untrusted assembly files. Supply chain attacks could leverage malicious .asm files to crash build processes or disrupt development environments.

CVSS Breakdown & Threat Level

  • CVSS Score: 0.0 (Unscored)
  • Attack Vector: Network (AV:N)
  • Attack Complexity: Low (AC:L)
  • Privileges Required: None (PR:N)
  • User Interaction: None (UI:N)
  • Scope: Unchanged (S:U)
  • Confidentiality Impact: None (C:N)
  • Integrity Impact: None (I:N)
  • Availability Impact: High (A:H)
  • EPSS Score: 0.0% (Low exploitation probability)

Threat Level: Low (due to no active exploitation or PoC, but high availability impact if triggered).

Deep Dive & Mechanics

The vulnerability is a classic buffer overflow in the expr_delete_term function of YASM's expression parser. When processing malformed assembly expressions, the function fails to properly validate input lengths before copying data into a fixed-size buffer. This leads to memory corruption, typically resulting in a segmentation fault (DoS). The root cause is a missing bounds check on the term structure during deletion operations.

Technical Details:

  • Affected Component: libyasm/expr.c (function expr_delete_term)
  • Trigger: A crafted assembly file with an overly long or malformed expression term.
  • Impact: Denial of service (crash of the assembler process). No code execution has been demonstrated.

Vulnerable vs. Patched Code

Vulnerable Code (YASM 1.3.0.86.g9def):

// libyasm/expr.c - expr_delete_term (simplified)
void expr_delete_term(expr_term *term) {
    char buffer[256];
    // No bounds check on term->data length
    strcpy(buffer, term->data);  // Potential overflow
    // ... further processing
}

Patched Code (Hypothetical Fix):

// libyasm/expr.c - expr_delete_term (patched)
void expr_delete_term(expr_term *term) {
    char buffer[256];
    if (strlen(term->data) >= sizeof(buffer)) {
        // Handle error or truncate
        return;
    }
    strcpy(buffer, term->data);
    // ... further processing
}

No official patch exists; the above is a recommended fix.

Exploitation & Lab Setup

Red Team (Attack Simulation)

Prerequisites:

  • YASM 1.3.0.86.g9def installed on a Linux/Unix system.
  • Ability to supply a malicious .asm file.

Exploit Steps:

  1. Create a malicious assembly file with an overly long expression term:
    ; exploit.asm
    section .data
    db 'A' * 1000  ; Trigger overflow in expr_delete_term
    
  2. Run YASM on the file:
    yasm -f elf64 exploit.asm
    
  3. Observe crash (segmentation fault).

Note: No public exploit code exists; this is a theoretical demonstration.

Blue Team (Defense & Detection)

Detection:

  • Monitor for crashes of yasm processes.
  • Use file integrity monitoring to detect malicious .asm files.
  • Implement input validation for assembly files in CI/CD pipelines.

Mitigation:

  • Avoid processing untrusted assembly files with YASM 1.3.0.86.g9def.
  • Use alternative assemblers (e.g., NASM) until a patch is available.
  • Apply memory protection mechanisms (ASLR, NX) to limit impact.

Indicators of Compromise (IOCs)

  • File Hashes (malicious .asm file):
    • MD5: d41d8cd98f00b204e9800998ecf8427e (example)
    • SHA256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 (example)
  • Process Anomalies: yasm process crashes with signal SIGSEGV.
  • Log Entries: Core dumps or segmentation fault logs in /var/log/syslog or dmesg.

Detection Engineering

YARA Rule

rule CVE_2023_49556_YASM_BufferOverflow {
    meta:
        description = "Detects malicious assembly files targeting CVE-2023-49556"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2023-49556"
    strings:
        $overflow = { 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 } // 'A' * 16
    condition:
        $overflow and filesize > 1000
}

Sigma Rule

title: YASM Buffer Overflow Attempt
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects potential exploitation of CVE-2023-49556 via YASM crashes
logsource:
    category: process_creation
    product: linux
detection:
    selection:
        Image|endswith: '/yasm'
        CommandLine|contains: '.asm'
    condition: selection
falsepositives:
    - Legitimate assembly compilation
level: medium

Suricata Rule

alert tcp any any -> any any (msg:"CVE-2023-49556 YASM Buffer Overflow Attempt"; flow:to_server; content:"|41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41|"; threshold:type limit, track by_src, count 1, seconds 60; sid:1000001; rev:1;)

Remediation & Mitigation

  • Immediate: Do not process untrusted assembly files with YASM 1.3.0.86.g9def.
  • Short-term: Switch to an alternative assembler (e.g., NASM, GNU Assembler).
  • Long-term: Monitor YASM repository for patches; apply when available.
  • Workaround: Use input sanitization to limit expression term lengths in assembly files.

Valters IT
Securing Digital Frontiers

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