OpenMage LTS has a Path Traversal Filter Bypass in Dataflow Module
The Dataflow module in OpenMage LTS uses a weak blacklist filter (str_replace('../', '', $input)) to prevent path traversal attacks. This filter can be bypassed using patterns like ..././ or ....//, which after the replacement still result in ../. An authenticated administrator can exploit this to read arbitrary files from the server filesystem.
| Metric | Value | Justification |
|---|---|---|
| Attack Vector (AV) | Network | Exploitable via admin panel |
| Attack Complexity (AC) | Low | Simple bypass pattern |
| Privileges Required (PR) | High | Requires admin authentication |
| User Interaction (UI) | None | No additional user interaction needed |
| Scope (S) | Unchanged | Impacts the vulnerable component |
| Confidentiality (C) | High | Can read sensitive system files |
| Integrity (I) | None | Read-only vulnerability |
| Availability (A) | None | No impact on availability |
Affected Products
- OpenMage LTS versions < 20.16.1
- All versions derived from Magento 1.x with these code paths
Affected Files
| File | Line | Vulnerable Code |
|---|---|---|
app/code/core/Mage/Dataflow/Model/Convert/Parser/Csv.php |
67 | str_replace('../', '', urldecode(...)) |
app/code/core/Mage/Dataflow/Model/Convert/Parser/Xml/Excel.php |
63 | str_replace('../', '', urldecode(...)) |
Vulnerability Details
The Dataflow module allows administrators to import data from files. The files parameter specifies which file to import from the var/import/ directory. To prevent path traversal, the code uses str_replace() to remove ../ sequences:
$file = Mage::app()->getConfig()->getTempVarDir() . '/import/'
. str_replace('../', '', urldecode(Mage::app()->getRequest()->getParam('files')));
However, str_replace() only performs a single pass, making it trivially bypassable:
Bypass Examples
| Input | After str_replace('../', '', ...) |
Result |
|---|---|---|
..././ |
../ |
Bypass |
....// |
../ |
Bypass |
..././..././..././etc/passwd |
../../../etc/passwd |
File read |
Attack Scenario
- Attacker gains admin access (via compromised credentials, social engineering, etc.)
- Navigate to System > Import/Export > Dataflow Profiles
- Create or modify an import profile
- Set the
filesparameter to:..././..././..././etc/passwd - Run the profile to read the contents of
/etc/passwd
Proof of Concept
# Request to Dataflow with bypass pattern
GET /admin/system_convert_gui/run/id/1/?files=..././..././..././etc/passwd
# The str_replace removes '../' leaving:
# ..././..././..././etc/passwd -> ../../../etc/passwd
# Final path resolves to:
# /var/www/html/var/import/../../../etc/passwd -> /etc/passwd
Remediation
Replace the weak str_replace() filter with basename() to extract only the filename:
// Before (vulnerable)
$file = Mage::app()->getConfig()->getTempVarDir() . '/import/'
. str_replace('../', '', urldecode(Mage::app()->getRequest()->getParam('files')));
// After (fixed)
$file = Mage::app()->getConfig()->getTempVarDir() . '/import/'
. basename(urldecode(Mage::app()->getRequest()->getParam('files')));
Using basename() ensures only the filename portion is used, completely preventing any path traversal regardless of the input pattern.
Workarounds
If immediate upgrade is not possible:
- Restrict admin access: Limit Dataflow access to trusted administrators only
- Disable Dataflow: If not in use, disable the Dataflow module entirely
- Web Application Firewall: Block requests containing path traversal patterns
- File permissions: Ensure the web server user has minimal filesystem permissions
- Monitor admin activity: Alert on suspicious Dataflow profile execution
Impact
An attacker with admin access can read sensitive files including:
/etc/passwd- System user informationapp/etc/local.xml- Database credentials.envfiles - Environment secrets- Log files - Potentially sensitive application data
- Configuration files - Server and application configuration
Credit
This vulnerability was discovered and responsibly disclosed by blackhat2013 through HackerOne.
Timeline
- 2025-12-31: Vulnerability reported via HackerOne
- 2026-01-21: Fix developed and tested
Czego dotyczy
Kliknij technologię, aby zobaczyć wszystkie dotyczące jej podatności.
| Platforma | Paczka | Podatne wersje | Poprawka w wersji |
|---|---|---|---|
| Paczka Composer | openmage/magento-lts | < 20.17.0 | 20.17.0 |
Odnośniki
- https://github.com/OpenMage/magento-lts/security/advisories/GHSA-6vqf-6fhm-7rc6
- https://nvd.nist.gov/vuln/detail/CVE-2026-25525
- https://github.com/OpenMage/magento-lts/pull/5445
- https://hackerone.com/reports/3482926
- https://github.com/OpenMage/magento-lts
- https://github.com/OpenMage/magento-lts/releases/tag/v20.17.0
- Wektor CVSS
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:N/A:N- Słabość (CWE)
CWE-184, CWE-22- Platforma
- Composer
- Paczka
openmage/magento-lts- Ujawniono
- 21.04.2026
- Aktualizacja
- 11.10.2026 10:22
Źródła i licencje
OSV / GitHub Advisory Database - GHSA-6vqf-6fhm-7rc6 - CC BY 4.0
Historia podatności: openmage/magento-lts
Wszystkie opisane podatności tej paczki (Paczka Composer), od najnowszej. Widać, czy to jednorazowa wpadka, czy paczka, której trzeba pilnować.
- Wszystkich wpisów
- 26
- Pierwsza → ostatnia
- 08.2020 05.2026
- Bez poprawki
- 0
- Wykorzystywana w atakach
- 0
Rozkład istotności
- Krytyczna 3
- Wysoka 12
- Średnia 10
- Niska 1
Ujawnienia w latach
- 2020: 2
- 2021: 4
- 2022: 0
- 2023: 8
- 2024: 2
- 2025: 2
- 2026: 8
-
OpenMage LTS has a Path Traversal Filter Bypass in Dataflow Module ten wpis
Dowiedz się, które podatności dotyczą Twojej aplikacji
Po podłączeniu integracji DockRay i włączeniu raportowania oprogramowania DockRay porównuje zgłoszone wersje komponentów ze znanymi podatnościami i powiadamia o potwierdzonych dopasowaniach. Zakres zależy od obsługiwanej technologii i dostępnych biuletynów.