CVE-2017-16558 is a critical-severity (CVSS 9.8) SQL Injection vulnerability in contao/contao. A fix is available for contao/contao — see the affected versions and patch details below.
Contao SQL injection in the backend and listing module
EPSS Exploitation Probability
Probability of exploitation in the next 30 days, from FIRST.org EPSS.
How urgent is this, really
Where this sits among everything scored
Real-World Exposure
contao/contao🐘contao/contao🐘contao/core-bundle🐘contao/listing-bundle🐘contao/core-bundle🐘contao/listing-bundleReal-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
Contao 3.0.0 to 3.5.30 and 4.0.0 to 4.4.7 contains an SQL injection vulnerability in the back end as well as in the listing module.
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 🐘Packagist | contao/contao | ≥ 3.0.0 | No fix |
| 🐘Packagist | contao/contao | ≥ 4.0.0&&< 4.4.8 | 4.4.8composer require contao/contao:^4.4.8 |
| 🐘Packagist | contao/core-bundle | ≥ 4.0.0&&< 4.4.8 | 4.4.8composer require contao/core-bundle:^4.4.8 |
| 🐘Packagist | contao/listing-bundle | ≥ 4.0.0&&< 4.4.8 | 4.4.8composer require contao/listing-bundle:^4.4.8 |
| 🐘Packagist | contao/core-bundle | ≥ 3.0.0 | No fix |
| 🐘Packagist | contao/listing-bundle | ≥ 3.0.0 | No fix |
Affected Products
contao cmscontaoDetection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for contao/contao, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
A fix is available for CVE-2017-16558; check the affected-versions list above or the advisory for the patched release of contao/contao, then make sure no transitive dependency still pins the vulnerable range.
Workarounds
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-2017-16558 in your dependencies?
Find it across Packagist, including transitive dependencies.