Vulnerability DatabaseCVE-2026-104266

CVE-2026-104266: 
Python vulnerability analysis and mitigation

Overview

CVE-2026-104266 is a denial-of-service vulnerability in tinytag, a Python library for reading audio file metadata. Affecting versions 2.0.0 through 2.3.0 (exclusive), the flaw allows a crafted M4A file containing a sub-atom with a size of zero inside a ---- (custom field) atom to cause the metadata parser to enter an infinite loop, halting any program that processes the file. The vulnerability was reported by seankohjs, disclosed on October 15, 2026, and fixed in tinytag 2.3.0. It carries a CVSS v3.1 base score of 6.5 (Medium) (GitHub Advisory, Red Hat CVE).

Technical details

The root cause is classified as CWE-835 (Loop with Unreachable Exit Condition / Infinite Loop). In the vulnerable _parse_custom_field method, the code iterates over sub-atoms within a ---- atom by reading an 8-byte header and computing the next position by subtracting the header length from the atom size. When a sub-atom declares a size of zero, the computed advance is negative or zero, so the file handle never moves forward, and the loop condition is never satisfied. The fix in PR #326 refactored atom parsing to use a unified _read_atom_header() helper that explicitly validates atom sizes and returns None for invalid (zero or undersized) atoms, terminating the loop safely. Exploitation requires user interaction — a victim application or user must open or process the malicious M4A file (GitHub Advisory, Patch Commit).

Impact

Successful exploitation causes the affected application to hang indefinitely while processing the malicious M4A file, resulting in a complete denial of service for the parsing process. There is no impact on confidentiality or data integrity — only availability is affected. Applications that process user-supplied audio files (e.g., media servers, music players, or metadata indexers using tinytag) are at risk of becoming unresponsive or requiring manual intervention to recover (GitHub Advisory).

Exploitability

No public proof-of-concept exploit code is known to exist, and there is no evidence of in-the-wild exploitation at this time. The EPSS score is 0.0, indicating very low probability of exploitation in the near term. The vulnerability is not listed in the CISA Known Exploited Vulnerabilities catalog. Exploitation requires an attacker to supply a crafted M4A file to a target application using a vulnerable version of tinytag, which necessitates user interaction (GitHub Advisory, Red Hat CVE).

Exploitation steps

  1. Craft malicious M4A file: Create an M4A file containing a ---- (custom field) atom with at least one sub-atom whose size field is set to zero. This can be done with a hex editor or a custom script that constructs the binary atom structure manually.
  2. Deliver the file to the target: Distribute the crafted M4A file to a system or service that uses tinytag (versions 2.0.0–2.2.x) to parse audio metadata — for example, by uploading it to a media server, sharing it via a file-sharing platform, or sending it to a user who will open it with an affected application.
  3. Trigger parsing: The target application calls tinytag to read the file's metadata (e.g., TinyTag.get('malicious.m4a')).
  4. Infinite loop triggered: The _parse_custom_field method reads the zero-size sub-atom header, computes a zero or negative advance, and loops indefinitely without making progress through the file, consuming 100% CPU and hanging the process.
  5. Denial of service achieved: The application becomes unresponsive for the duration of the loop, requiring a process kill or restart to recover (GitHub Advisory, Patch Commit).

Indicators of compromise

  • Process: A Python process running an application that uses tinytag consuming 100% CPU for an extended or indefinite period while processing an M4A file.
  • File System: Presence of an unexpected or externally supplied M4A file with a malformed ---- atom (zero-size sub-atom); test sample files named mp4_invalid_size_zero.m4a or empty_custom_field.m4a may indicate testing activity.
  • Logs: Application logs showing a metadata parsing call that never completes or times out when processing a specific M4A file; absence of a return value or exception from TinyTag.get() for a given file.
  • Network: Unusual upload of M4A files to services that perform server-side metadata extraction using tinytag, particularly files that are structurally minimal but trigger high CPU usage.

Mitigation and workarounds

The only remediation is to upgrade tinytag to version 2.3.0 or later, which fixes the infinite loop by refactoring atom parsing to use a unified header-reading function with proper size validation. No workarounds exist for vulnerable versions. As a defense-in-depth measure, operators should consider running metadata parsing in isolated processes with CPU time limits or timeouts to contain the impact of any denial-of-service attempt (GitHub Advisory, Release 2.3.0).

Additional resources

Linux Distribution fix status

Fix availability across major Linux distributions and their releases.

Debian

Fixed

sid

python-tinytag: 2.3.0-1

Fixed

Ubuntu

Unknown

devel

python-tinytag

Unknown

RHEL / CentOS

Unknown

Source: This report was generated using AI

Related Python vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-57496CRITICAL9.6
  • Python logoPython
  • netlicensing-mcp
NoYesOct 15, 2026
CVE-2026-55787HIGH7.1
  • Python logoPython
  • flyto-core
NoYesOct 14, 2026
CVE-2026-62322MEDIUM6.5
  • Python logoPython
  • social-auth-core
NoYesOct 15, 2026
CVE-2026-104266MEDIUM6.5
  • Python logoPython
  • tinytag
NoYesOct 15, 2026
CVE-2026-68549LOW3.3
  • Python logoPython
  • clickmigrate
NoYesOct 16, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management