
Proof of Concept for CVE-2026-65761 - EasyStore Pro Unauthenticated SQL Injection via `filter_sortby`
filter_sortby (Proof-of-Concept)Dieses Repository stellt ein rein zu Bildungszwecken dienendes Proof-of-Concept für CVE-2026-65761 bereit, eine nicht authentifizierte SQL-Injection-Schwachstelle, die Versionen 1.0.0 bis einschließlich 2.0.2 der Joomla-Erweiterung EasyStore betrifft. Nur die Pro-Version des Plugins ist betroffen, da der Parameter filter_sortby lizenzbeschränkt ist.
Der PoC (poc.py) demonstriert eine SQL-Injection im Request-Parameter filter_sortby im Produktsuchablauf (option=com_easystore&view=products&task=search) über einen fehlerbasierten Check.
Dieses Projekt und die Docker-Stacks sind nur für lokale Sicherheitstests und Bildungszwecke bestimmt.
Führen Sie dies nicht gegen Systeme aus, die Ihnen nicht gehören oder für die Sie nicht ausdrücklich die Erlaubnis zum Testen haben.
Der angreifbare Codepfad befindet sich in einem nur in der Pro-Version verfügbaren Feature. Um den Codepfad in einem reproduzierbaren lokalen Labor prüfbar zu machen, wendet dieses Repository einen temporären Monkeypatch im Container an, sodass der Pro-beschränkte Sortier-/Filterpfad ausgeführt werden kann.
Dies wird nicht als Technik zur Lizenzumgehung bereitgestellt und darf nicht verwendet werden, um in echten Bereitstellungen auf kostenpflichtige Funktionen zuzugreifen. Der alleinige Zweck ist es, defensive Sicherheitsforschung und koordinierte Schwachstellenvalidierung in einer isolierten lokalen Testumgebung zu ermöglichen.
.
├── backup.sql.gz
├── poc.py
├── vulnerable/
│ ├── docker-compose.yaml
│ └── setup.sh
└── patched/
├── docker-compose.yaml
└── setup.sh
poc.py: Exploit-PoC.vulnerable/docker-compose.yaml: Verwundbarer Labor-Stack unter http://127.0.0.1:9999.patched/docker-compose.yaml: Gepatchter Labor-Stack unter http://127.0.0.1:9999.backup.sql.gz: Bootstrap-Dump mit einem minimalen EasyStore-Shop-Datensatz, der für diesen PoC erforderlich ist (2 Produkte, 1 Kategorie, grundlegende Shopeinstellungen).vulnerable/setup.sh und patched/setup.sh: importieren backup.sql.gz in den laufenden MariaDB-Container.pip install requests
Starten Sie die verwundbare Umgebung:
docker compose -f vulnerable/docker-compose.yaml up -d
Stellen Sie dann die erforderlichen EasyStore-Testdaten bereit:
cd vulnerable
./setup.sh
cd ..
Führen Sie den PoC aus:
python3 poc.py
Das erwartete Ergebnis für die verwundbare Umgebung enthält:
[!] Target is vulnerable to CVE-2026-65761!
Stoppen Sie zuerst den verwundbaren Stack (falls er läuft):
docker compose -f vulnerable/docker-compose.yaml down -v
Starten Sie die gepatchte Umgebung:
docker compose -f patched/docker-compose.yaml up -d
Stellen Sie dann dieselben erforderlichen EasyStore-Testdaten bereit:
cd patched
./setup.sh
cd ..
Führen Sie denselben PoC aus:
python3 poc.py
Das erwartete Ergebnis für die gepatchte Umgebung ist:
[-] Target is not vulnerable to CVE-2026-65761
In poc.py ist die Ziel-URL standardmäßig http://localhost:9999.
Passen Sie sie an, wenn Sie das Labor auf einem anderen Host oder Port ausführen.