CVE-2019-8158

9.8 CRITICAL

📋 TL;DR

This vulnerability allows attackers to perform XPath entity injection via crafted GET requests to Magento's page cache block rendering module. It affects Magento 2.2 and 2.3 installations, potentially exposing underlying XML data to unauthorized access.

💻 Affected Systems

Products:
  • Magento Commerce
  • Magento Open Source
Versions: Magento 2.2 prior to 2.2.10, Magento 2.3 prior to 2.3.3 or 2.3.2-p1
Operating Systems: All platforms running Magento
Default Config Vulnerable: ⚠️ Yes
Notes: Affects all Magento installations within the vulnerable version ranges regardless of configuration.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could extract sensitive data from XML files, potentially including configuration data, user information, or other system details stored in XML format.

🟠

Likely Case

Limited data exposure from XML files accessible to the application, potentially revealing configuration details or partial data structures.

🟢

If Mitigated

With proper input validation and XML parsing restrictions, impact is limited to error generation or no access to sensitive data.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Exploitation requires crafting specific GET requests to vulnerable endpoints, which is relatively straightforward for attackers with basic web application testing knowledge.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Magento 2.2.10, Magento 2.3.3, or Magento 2.3.2-p1

Vendor Advisory: https://magento.com/security/patches/magento-2.3.3-and-2.2.10-security-update

Restart Required: Yes

Instructions:

1. Backup your Magento installation and database. 2. Update Magento via Composer: composer require magento/product-community-edition=2.3.3 --no-update. 3. Run composer update. 4. Clear cache: php bin/magento cache:clean. 5. Deploy static content: php bin/magento setup:static-content:deploy. 6. Restart web server.

🔧 Temporary Workarounds

Input Validation Filter

all

Implement custom input validation to filter or reject suspicious GET parameters containing XML entity references.

Implement in application code - no single command

🧯 If You Can't Patch

  • Implement WAF rules to block requests containing XML entity injection patterns in GET parameters
  • Restrict access to page cache rendering endpoints via network ACLs or authentication requirements

🔍 How to Verify

Check if Vulnerable:

Check Magento version via admin panel or run: php bin/magento --version

Check Version:

php bin/magento --version

Verify Fix Applied:

Confirm version is 2.2.10, 2.3.3, or 2.3.2-p1 or higher, and test with known exploit patterns that should be blocked.

📡 Detection & Monitoring

Log Indicators:

  • Unusual GET requests with XML-like parameters to cache-related endpoints
  • Errors in application logs related to XML parsing failures

Network Indicators:

  • HTTP GET requests containing %3C, %3E, %26, or other XML entity encodings in parameter values

SIEM Query:

web_access_logs | where url contains "page_cache/block/render" and (url contains "%3C" or url contains "%3E" or url contains "%26")

🔗 References

📤 Share & Export