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.
Advisories
| Source | ID | Title |
|---|---|---|
Github GHSA |
GHSA-f4rq-2259-hv29 | Denial of service via non-terminating SYLT frame parsing loop in tinytag |
Fixes
Solution
No solution given by the vendor.
Workaround
No workaround given by the vendor.
References
History
Fri, 20 Mar 2026 09:00:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Tinytag
Tinytag tinytag |
|
| Vendors & Products |
Tinytag
Tinytag tinytag |
Fri, 20 Mar 2026 03:15:00 +0000
| 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
|
Projects
Sign in to view the affected projects.
Status: PUBLISHED
Assigner: GitHub_M
Published:
Updated: 2026-03-20T02:23:25.079Z
Reserved: 2026-03-16T21:03:44.422Z
Link: CVE-2026-32889
No data.
Status : Received
Published: 2026-03-20T03:15:59.873
Modified: 2026-03-20T03:15:59.873
Link: CVE-2026-32889
No data.
OpenCVE Enrichment
Updated: 2026-03-20T10:37:49Z
Weaknesses
Github GHSA