GLPI 11.0.0â11.0.5 : chaĂźne 0-day Blind XSS + SSTI permettant un RCE non authentifiĂ©
đ Contexte PubliĂ© le 3 avril 2026 sur le blog de BZHunt (https://www.bzhunt.fr/blog/cve_glpi/), cet article prĂ©sente lâanatomie complĂšte dâune chaĂźne dâexploitation 0-day dĂ©couverte en fĂ©vrier 2026 dans GLPI, lâoutil ITSM open source largement dĂ©ployĂ© en Europe pour la gestion de parcs informatiques, tickets et inventaires dâactifs. đ VulnĂ©rabilitĂ©s identifiĂ©es Trois CVE ont Ă©tĂ© assignĂ©s, dont deux forment la chaĂźne critique : CVE-2026-26027 (CVSS 7.5 â High) : Blind Stored XSS non authentifiĂ©e via lâendpoint /Inventory. Les champs deviceid, tag et useragent sont stockĂ©s sans assainissement HTML dans Agent::handleAgent() et rendus via le filtre Twig |raw, dĂ©sactivant lâauto-Ă©chappement. PĂ©rimĂštre : GLPI 10.0.0â11.0.5. CVE-2026-26026 (CVSS 9.1 â Critical) : SSTI â RCE via double compilation Twig dans QuestionTypeDropdown.php. Le template Twig est reconstruit en concatĂ©nant du HTML dĂ©jĂ rendu avec un template non rendu, puis resoumis Ă renderFromStringTemplate(). La fonction call() (alias de call_user_func_array()) exposĂ©e par PhpExtension et les superglobales $_GET/$_POST accessibles comme variables Twig permettent lâexĂ©cution de commandes OS. PĂ©rimĂštre : GLPI 11.0.0â11.0.5. CVE-2026-26263 (CVSS 8.1 â High) : SQL Injection non authentifiĂ©e dans le moteur de recherche. IndĂ©pendante de la chaĂźne, fera lâobjet dâun article sĂ©parĂ©. âïž ChaĂźne dâexploitation complĂšte Injection XSS : envoi dâune requĂȘte POST non authentifiĂ©e vers /Inventory avec un payload JavaScript dans le champ tag Account Takeover : lorsquâun administrateur consulte Administration â Agents, le payload sâexĂ©cute dans sa session, contourne la protection CSRF en rĂ©cupĂ©rant dynamiquement le token, et crĂ©e silencieusement un compte super-administrateur SSTI â RCE : avec le compte créé, lâattaquant injecte {{ call(_get.fn, [_get.a]) }} dans une valeur dâoption dropdown, puis dĂ©clenche lâexĂ©cution via /ajax/common.tabs.php?fn=shell_exec&a=id đ„ Impact ExĂ©cution de commandes OS arbitraires sous lâidentitĂ© du serveur web (www-data) Exfiltration de credentials BDD, fichiers de configuration, donnĂ©es utilisateurs Pivot rĂ©seau depuis le serveur GLPI compromis Persistance (web shells, tĂąches cron, clĂ©s SSH, comptes backdoor) Risque supply chain sur lâensemble du parc IT managĂ© đ ïž Fichiers clĂ©s affectĂ©s src/Glpi/Inventory/Conf.php (l.1309) : auth_required = 'none' par dĂ©faut src/Agent.php (l.420â434) : stockage sans sanitisation templates/components/form/fields_macros.html.twig (l.787) : filtre |raw src/Glpi/Form/QuestionType/QuestionTypeDropdown.php (l.205) : double compilation src/Glpi/Application/View/Extension/PhpExtension.php (l.90â106) : call() = call_user_func_array() src/Glpi/Application/View/TemplateRenderer.php (l.127â129) : exposition des superglobales đ Timeline de divulgation FĂ©vrier 2026 : dĂ©couverte et signalement Ă lâĂ©quipe GLPI 3 mars 2026 : publication du patch (GLPI 11.0.6) Mars/Avril 2026 : publication de lâarticle đ Nature de lâarticle Il sâagit dâune analyse technique approfondie (vulnerability research / full disclosure) publiĂ©e par BZHunt aprĂšs patch, incluant des preuves de concept, des extraits de code source, des payloads dâexploitation et une preuve de RCE confirmĂ©e sur GLPI 11.0.5. ...