CVE-2026-38739 — ezpublish-legacy
HIGHCVE-2026-38739 is a high-severity (CVSS 7.1) vulnerability in ezsystems/ezpublish-legacy. No vendor fix is recorded yet; mitigation options are listed below.
ezsystems/ezpublish-legacy has a SQL injection in dfscleanup
Real-World Exposure
ezsystems/ezpublish-legacyReal-time download stats are indexed for npm and PyPI packages. This vulnerability affects Packagist packages — download data is not available via public APIs for these ecosystems.
Description
NB: All tags and branches in this repository are past their end of life, so the vulnerability will not be fixed. The advisory is posted on the request of the researcher, for the information of anyone who might still use this software.
Impact
There is a security vulnerability in eZ Publish Legacy, affecting the dfscleanup.php script and the _getFileList function of the eZDFSFileHandlerMySQLiBackend class (kernel/private/classes/clusterfilehandlers/dfsbackends/mysqli.php). The vulnerability allows an attacker with local shell access and sufficient privileges to run dfscleanup.php to perform a union-based SQL injection against the eZ Publish MySQL database, potentially exposing sensitive data such as user credentials.
It is known to affect the branch 2019.03, and it may well affect other branches.
Credit
The issue was found and reported by security auditor Timothé Ridel from Advens: https://www.advens.com/
Patches
None, the software is past its end of life.
Workarounds
None.
Resources
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 🐘Packagist | ezsystems/ezpublish-legacy | all versions | No fix |
Detection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for ezsystems/ezpublish-legacy, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Remediation status
No patched version of ezsystems/ezpublish-legacy has shipped for CVE-2026-38739 yet. Where your build allows, override or pin the dependency away from the vulnerable range, and apply any maintainer-recommended mitigation.
Mitigate without a patch
Until you can upgrade, make sure every query built from user input uses parameterised statements or a prepared-statement API rather than string concatenation, and reduce the database account's privileges so an injected query cannot read or alter data beyond what the feature needs.
Frequently Asked Questions
Is CVE-2026-38739 in your dependencies?
Find it across Packagist, including transitive dependencies.