CVE-2026-32889

tinytag: Denial of Service via non-terminating SYLT frame parsing loop

Published Mar 20, 2026 CVSS 3.1 · 6.5 Medium EPSS < 1% KEV · Not listed
Description
tinytag is a Python library for reading audio file metadata. Version 2.2.0 allows an attacker who can supply MP3 files for parsing to trigger a non-terminating loop while the library parses an ID3v2 SYLT (synchronized lyrics) frame. In server-side deployments that automatically parse attacker-supplied files, a single 498-byte MP3 can cause the parsing operation to stop making progress and remain busy until the worker or process is terminated. The root cause is that _parse_synced_lyrics assumes _find_string_end_pos always returns a position greater than the current offset. That assumption is false when no string terminator is present in the remaining frame content. This issue has been fixed in version 2.2.1.

Remediation

No solution or workaround provided in the CVE record

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Github GHSA Github GHSA GHSA-f4rq-2259-hv29 Denial of service via non-terminating SYLT frame parsing loop in tinytag
History
Type Values Removed Values Added
CPEs cpe:2.3:a:tinytag_project:tinytag:2.2.0:*:*:*:*:python:*:* cpe:2.3:a:tinytag:tinytag:2.2.0:*:*:*:*:python:*:*
Vendors & Products Tinytag Project
Tinytag Project tinytag
Type Values Removed Values Added
First Time appeared Tinytag Project
Tinytag Project tinytag
CPEs cpe:2.3:a:tinytag_project:tinytag:2.2.0:*:*:*:*:python:*:*
Vendors & Products Tinytag Project
Tinytag Project tinytag
Type Values Removed Values Added
References
Metrics threat_severity

None

ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

threat_severity

Moderate

Type Values Removed Values Added
First Time appeared Tinytag
Tinytag tinytag
Vendors & Products Tinytag
Tinytag tinytag
Type Values Removed Values Added
Description tinytag is a Python library for reading audio file metadata. Version 2.2.0 allows an attacker who can supply MP3 files for parsing to trigger a non-terminating loop while the library parses an ID3v2 SYLT (synchronized lyrics) frame. In server-side deployments that automatically parse attacker-supplied files, a single 498-byte MP3 can cause the parsing operation to stop making progress and remain busy until the worker or process is terminated. The root cause is that _parse_synced_lyrics assumes _find_string_end_pos always returns a position greater than the current offset. That assumption is false when no string terminator is present in the remaining frame content. This issue has been fixed in version 2.2.1.
Title tinytag: Denial of Service via non-terminating SYLT frame parsing loop
Weaknesses CWE-835
References
Metrics cvssV3_1

{'score': 6.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H'}

Weaknesses

Sources

Status
PUBLISHED
Assigner
GitHub_M
Published
Updated
Mar 21, 2026, 2:59 AM
Reserved
Mar 16, 2026, 9:03 PM
Status
Analyzed
Published
Mar 20, 2026, 3:15 AM
Modified
Jun 17, 2026, 10:36 AM
Severity
Moderate
Public date
Mar 20, 2026, 2:23 AM