
Proof of Concept per CVE-2026-65761 - SQL Injection non autenticata in EasyStore Pro tramite `filter_sortby`
filter_sortbyQuesto repository fornisce una prova di concetto educativa per CVE-2026-65761, una vulnerabilità di SQL injection non autenticata che interessa le versioni da 1.0.0 a 2.0.2 (incluse) dell'estensione Joomla EasyStore. È interessata solo la versione Pro del plugin, poiché il parametro filter_sortby è soggetto a licenza.
La PoC (poc.py) dimostra l'iniezione SQL nel parametro di richiesta filter_sortby nel flusso di ricerca prodotti (option=com_easystore&view=products&task=search) tramite un controllo basato su errori.
Questo progetto e gli stack Docker sono destinati esclusivamente a test di sicurezza locali e a scopo educativo.
Non eseguire questo strumento contro sistemi che non possiedi o per cui non hai esplicitamente il permesso di testare.
Il percorso del codice vulnerabile si trova in una funzionalità solo Pro. Per rendere il percorso del codice verificabile in un laboratorio locale riproducibile, questo repository applica una monkeypatch temporanea nel container in modo che il percorso di ordinamento/filtro limitato alla versione Pro possa essere esercitato.
Questo non è fornito come tecnica di bypass delle licenze e non deve essere utilizzato per accedere a funzionalità a pagamento in distribuzioni reali. Il suo unico scopo è consentire la ricerca difensiva in ambito sicurezza e la validazione coordinata delle vulnerabilità in un ambiente di test locale isolato.
.
├── backup.sql.gz
├── poc.py
├── vulnerable/
│ ├── docker-compose.yaml
│ └── setup.sh
└── patched/
├── docker-compose.yaml
└── setup.sh
poc.py: PoC dell'exploit.vulnerable/docker-compose.yaml: stack di laboratorio vulnerabile su http://127.0.0.1:9999.patched/docker-compose.yaml: stack di laboratorio patchato su http://127.0.0.1:9999.backup.sql.gz: dump di bootstrap con un dataset minimale di negozio EasyStore richiesto da questa PoC (2 prodotti, 1 categoria, impostazioni base del negozio).vulnerable/setup.sh e patched/setup.sh: importano backup.sql.gz nel container MariaDB in esecuzione.pip install requests
Avvia l'ambiente vulnerabile:
docker compose -f vulnerable/docker-compose.yaml up -d
Quindi prepara i dati di test EasyStore richiesti:
cd vulnerable
./setup.sh
cd ..
Esegui la PoC:
python3 poc.py
Il risultato atteso per l'ambiente vulnerabile include:
[!] Target is vulnerable to CVE-2026-65761!
Ferma prima lo stack vulnerabile (se in esecuzione):
docker compose -f vulnerable/docker-compose.yaml down -v
Avvia l'ambiente patchato:
docker compose -f patched/docker-compose.yaml up -d
Quindi prepara gli stessi dati di test EasyStore richiesti:
cd patched
./setup.sh
cd ..
Esegui la stessa PoC:
python3 poc.py
Il risultato atteso per l'ambiente patchato è:
[-] Target is not vulnerable to CVE-2026-65761
In poc.py, l'URL di destinazione predefinito è http://localhost:9999.
Modificalo se esegui il laboratorio su un host o una porta diversi.