Skip to main content

getID3 CVE-2026-94106

| EUVDEUVD-2026-83726 HIGH
OS Command Injection (CWE-78)
2026-09-20 VulnCheck GHSA-7c6f-jc48-6hfq
8.7
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain low-privilege access to embedding app
  2. Delivery
    Upload/supply file with shell-metacharacter filename
  3. Exploit
    Trigger getID3 write/shorten shell-out handler
  4. Execution
    Unescaped filename injected into command string
  5. Impact
    Execute arbitrary OS commands as process user

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization OS command sanitization, avoid shell exec
MITRE ATT&CK

2 techniques across 1 tactic: Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires all of: (1) the host application invoking getID3's shell-out functions - WriteVorbisComment/WriteMetaFLAC (write.vorbiscomment.php / write.metaflac.php) or the shorten Analyze path (module.audio.shorten.php); (2) the corresponding external helper binaries installed and on GETID3_HELPERAPPSDIR/PATH (vorbiscomment, metaflac, or shorten); and (3) attacker ability to control the filename passed to getID3 so it can contain shell metacharacters. This LIMITS realistic exposure: consumers that only read metadata (the common getID3 use, including WordPress core) do not reach these write/shorten paths, and hosts without the helper binaries cannot trigger the shell-out. PR:L per the vendor vector indicates some authenticated/low-privilege access to the embedding application is needed; there is no user-interaction requirement.

Impact

The vendor CVSS 4.0 score of 8.7 (AV:N/AC:L/PR:L/UI:N/VC:H/VI:H/VA:H) reflects high technical impact - arbitrary OS command execution as the embedding process user - but the raw score overstates real-world risk because it does not capture the deployment preconditions. Exploitation is confined to getID3's shell-out code paths: the tag-WRITE handlers WriteMetaFLAC/DeleteMetaFLAC (write.metaflac.php), WriteVorbisComment (write.vorbiscomment.php), and the shorten Analyze path (module.audio.shorten.php). All three require external helper binaries (metaflac, vorbiscomment, shorten) to be installed and the host application to actually invoke these write/shorten functions with an attacker-influenced filename - not the common read-only metadata path that consumers like WordPress core use. There is no EPSS score, no CISA KEV listing, and no public proof-of-concept exploit - only the vendor patch diff serves as source evidence. The vendor sets AT:N/AC:L; I dispute this: the helper-binary and code-path dependency is a genuine condition beyond attacker control, mapping to AT:P (4.0) / AC:H (3.1). Net: a legitimately high-impact code-execution flaw, but likely a targeted/config-dependent issue rather than a broadly automatable one - prioritize where an application is known to use getID3's write or shorten functions on untrusted filenames.

Exploit ScenarioDerived

An application that embeds getID3 and lets users influence stored filenames (e.g. an upload/media-management feature) calls a tag-writing function (WriteVorbisComment/WriteMetaFLAC) or the shorten analyzer, with the corresponding helper binary installed. An attacker supplies a filename containing shell metacharacters (e.g. ; wget ...; ) which is concatenated unescaped into the shell command, causing injected commands to execute with the web/process user's privileges. No public exploit code is identified, but the vendor patch diff clearly demonstrates the vulnerable concatenation and the escapeshellarg() fix.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 1.7% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 20, 2026

OS command injection in getID3 versions before 1.9.26 allows an attacker who controls the filename passed to the library's shell-out handlers to execute arbitrary operating-system commands with the privileges of the embedding process. The vulnerable code paths build shell command lines around filenames using simple double quotes instead of escaping them, and they are reached through the shorten audio analyzer (module.audio.shorten.php) and the Vorbis comment / MetaFLAC write helpers (write.vorbiscomment.php, write.metaflac.php). Practical exposure is constrained: the host application must call those write or shorten routines and must have the vorbiscomment, metaflac, or shorten helper binaries installed and on GETID3_HELPERAPPSDIR or PATH, and low-privilege access to the embedding application is required per the vendor vector; the flaw is fixed in 1.9.26, and no public exploit code has been identified at time of analysis.

RemediationAI

Upgrade to getID3 1.9.26 or later (vendor-released patch: 1.9.26), which applies escapeshellarg() to filenames and temp comment files in getid3/write.vorbiscomment.php, getid3/write.metaflac.php, and getid3/module.audio.shorten.php; the corresponding fixes are in commits ce598c4f3823441d878c5a7a2a9f2f703a3e10b6 and 2c6f3f96546f05746405872848114754ed7fe9b4, with release notes at the v1.9.26 tag. If immediate upgrade is not possible, the most effective compensating control is to remove or rename the external helper binaries (vorbiscomment, metaflac, shorten) or keep them off GETID3_HELPERAPPSDIR and PATH so the vulnerable shell-out cannot be reached - the trade-off is loss of tag-writing and shorten-decoding functionality while metadata reading continues to work. Additionally, avoid passing attacker-controlled filenames into the getID3 write APIs: store uploads under server-generated names, strip or reject shell metacharacters before the path reaches the library, and run the PHP process under a low-privilege account with a restricted working directory so any residual injection has limited blast radius. Verify exposure first - installations that use getID3 only for read-only metadata parsing are not exploitable and do not need emergency change.

Affected VersionsENISA

getid3 0 <1.9.26

Affected Packages

euvd getid3 fix: 1.9.26

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

getID3 is a widely used, pure-PHP media metadata parsing and tagging library (maintained by James Heinrich) that is frequently embedded in larger PHP applications and CMSs. For certain formats it does not implement encoding natively but instead shells out to external helper binaries - shorten for decoding, and vorbiscomment/metaflac for tag writing - constructing a command-line string that included the media filename wrapped in double quotes. Because the filename was concatenated without escapeshellarg() (CWE-78, Improper Neutralization of Special Elements used in an OS Command), a filename containing shell metacharacters (for example quoting or command-substitution sequences) breaks out of the quoted argument and injects additional commands run by the parent shell as the process user. The fixing commits replace the naive '"'.$filename.'"' pattern with escapeshellarg() for both the media filename and the temporary comment filename, and additionally replace hard-coded backslash path separators with DIRECTORY_SEPARATOR. An accompanying change in demos/demo.mysqli.php likewise switches from a forced '\\' replacement to DIRECTORY_SEPARATOR, indicating the vulnerable shell-out logic assumed Windows-style paths. The vendor CVSS 4.0 vector (CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H) reflects high technical impact but does not model the deployment preconditions; our independent assessment (CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H) captures them via AC:H.

Know when Getid3 gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (VulnCheck) PRIMARY 8.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
vuln.today AI 7.5 HIGH

AC:H and PR:L because exploitation needs the embedding app to use the write/shorten shell-out paths with non-default helper binaries plus attacker-controlled filename; full command execution yields C/I/A:H.

3.1 AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

getID3 before 1.9.26 contains an OS command injection vulnerability in shell-out handlers that fail to escape filenames in command strings. Attackers can craft malicious filenames containing shell metacharacters to inject arbitrary commands executed with the privileges of the process embedding getID3.

Technical POC Analysis

CWE-78 (Improper Neutralization of Special Elements used in an OS Command).

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

A high-severity command injection vulnerability in the getID3 media parsing library (all versions before 1.9.26) can allow an attacker with low-privileged access to an application that embeds the library to execute operating-system commands under that application's own privileges. Exposure is limited to services that process media files and have the vorbiscomment, metaflac, or shorten helper binaries installed and reachable, but where those conditions are met the consequence is potential host compromise, data exposure, or service disruption. The vendor has released a fixed version, making this a straightforward dependency upgrade rather than a containment problem.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
1.7%
Top 25% exploitable
Prevalence
High
getID3 is a ubiquitous PHP media library, bundled in WordPress core and many CMS
Social Media
1
Sightings
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment CIRCL GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 1.7%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

46
Low Medium High Critical
KEV: 0
EPSS: +2
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

OS command injection occurs when an application passes unsanitized user input directly into system shell commands.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy