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é.

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

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-28496-Lab — # Laboratoire Docker pour la reproduction et la validation de CVE-2026-28496, une vulnérabilité d'injection de modèles côté serveur dans le rendu Twig de FOSSBilling, avec des cibles de comparaison vulnérables et corrigées. | Kitploit
Outils/GitHubGitHub/rootdirective-sec/cve-2026-28496-lab
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionApprentissage et ÉducationLabs et Pratique
GitHubrootdirective-sec/cve-2026-28496-lab

CVE-2026-28496-Lab

# Laboratoire Docker pour la reproduction et la validation de CVE-2026-28496, une vulnérabilité d'injection de modèles côté serveur dans le rendu Twig de FOSSBilling, avec des cibles de comparaison vulnérables et corrigées.

Voir le dépôt
12il y a 3 moisPas 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-28496 - Injection de modèles côté serveur dans le rendu Twig de FOSSBilling

Résumé exécutif

Ce dépôt contient un laboratoire Docker local pour reproduire et valider CVE-2026-28496, une vulnérabilité d'injection de modèles côté serveur affectant le comportement de rendu des modèles Twig de FOSSBilling.

FOSSBilling est une plateforme gratuite et open-source de facturation et de gestion des clients. Les versions antérieures à 0.8.0 sont affectées par un comportement de rendu de modèles Twig non sécurisé pouvant évaluer des expressions de modèles fournies. FOSSBilling 0.8.0 est utilisé comme cible de comparaison corrigée dans ce laboratoire.

Ce laboratoire compare deux versions de FOSSBilling :

ServiceVersion de FOSSBillingObjectifURL
vuln0.7.2Cible de comparaison vulnérablehttp://localhost:8081
patched0.8.0Cible de comparaison corrigéehttp://localhost:8082

Le chemin de validation HTTP démontré dans ce laboratoire local est :```text Unauthenticated HTTP request in this local FOSSBilling 0.7.2 lab → POST /api/system/system/string_render → JSON body contains _tpl={{ 7*7 }} → vulnerable target renders the Twig expression → patched target does not expose the same tested API behavior

Dans la cible vulnérable, l'appel API renvoie :```json
{"result":"49","error":null}

Dans la cible corrigée, la même requête renvoie :```json {"result":null,"error":{"message":"Unknown API call system/system/string_render","code":879}}

Ce laboratoire valide le comportement HTTP de la version vulnérable par rapport à la version corrigée, à l'aide de FOSSBilling 0.7.2 et FOSSBilling 0.8.0.

Le laboratoire est volontairement limité aux services Docker locaux. Il ne cible pas de systèmes externes et n'inclut pas de webshells, de malwares, de persistance, de rappels externes, de dump de base de données ni de charges utiles destructrices.

## Faits vérifiés

| Affirmation | Preuve | Comment vérifier dans ce laboratoire |
| ----------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------- |
| CVE-2026-28496 affecte les versions de FOSSBilling antérieures à 0.8.0. | Les métadonnées publiques du CVE et de l'avis de sécurité identifient FOSSBilling antérieur à 0.8.0 comme étant affecté par Twig SSTI. | Consultez la section Références et comparez les versions des cibles vulnérable et corrigée. |
| FOSSBilling 0.7.2 est utilisé comme cible de comparaison vulnérable. | Le service vulnérable est construit à partir de l'image Docker officielle `fossbilling/fossbilling:0.7.2`. | Inspectez `vuln/Dockerfile` et exécutez `docker compose ps -a`. |
| FOSSBilling 0.8.0 est utilisé comme cible de comparaison corrigée. | Le service corrigé est construit à partir de l'image Docker officielle `fossbilling/fossbilling:0.8.0`. | Inspectez `patched/Dockerfile` et exécutez `docker compose ps -a`. |
| Le chemin HTTP vulnérable est `/api/system/system/string_render`. | La cible vulnérable renvoie du JSON avec `result: "49"` pour `_tpl={{ 7*7 }}`. | Exécutez `python3 poc/poc.py --url http://localhost:8081`. |
| La cible corrigée n'expose pas le même comportement HTTP. | La cible corrigée renvoie `Unknown API call system/system/string_render`. | Exécutez `python3 poc/poc.py --url http://localhost:8082`. |
| Le PoC est exclusivement HTTP. | `poc/poc.py` envoie des requêtes HTTP POST et n'appelle ni Docker, ni Docker Compose, ni des commandes shell, ni les API de conteneurs. | Inspectez `poc/poc.py`. |
| Le laboratoire installe automatiquement les deux cibles FOSSBilling au démarrage de Docker Compose. | Les conteneurs sidecar d'installation à usage unique terminent la configuration et se terminent avec le statut 0. | Exécutez `docker compose ps -a` et `docker compose logs installer-vuln installer-patched`. |
| La cible vulnérable rend l'expression Twig inoffensive. | La réponse HTTP du port 8081 est `{"result":"49","error":null}`. | Exécutez la commande PoC pour la version vulnérable. |
| La cible corrigée ne rend pas la même expression via le chemin API testé. | La réponse HTTP du port 8082 est une erreur d'API JSON avec le code `879`. | Exécutez la commande PoC pour la version corrigée. |

## Hypothèses et inconnues

Ce laboratoire utilise FOSSBilling 0.7.2 comme cible de comparaison vulnérable car les recherches publiques sur les vulnérabilités identifient les versions de FOSSBilling antérieures à 0.8.0 comme étant affectées, et 0.7.2 est la dernière version vulnérable utilisée dans la chaîne testée.

Ce laboratoire utilise FOSSBilling 0.8.0 comme cible de comparaison corrigée car les métadonnées publiques de l'avis de sécurité identifient 0.8.0 comme la version corrigée.

Ce laboratoire se concentre sur le comportement HTTP observable de :```text
POST /api/system/system/string_render

avec ce corps JSON:```json {"_tpl":"{{ 7*7 }}"}

Le laboratoire démontre que FOSSBilling 0.7.2 rend l'expression Twig fournie via le chemin de l'API HTTP, tandis que FOSSBilling 0.8.0 n'expose pas le même appel API.

Ce laboratoire ne prétend pas tester toutes les fonctionnalités de rendu de templates de FOSSBilling. CVE-2026-28496 concerne également d'autres contextes de rendu Twig, tels que les fonctionnalités de rendu de templates disponibles dans l'application.

Ce laboratoire ne démontre pas la chaîne complète d'exécution de code à distance non authentifiée. Il valide le comportement HTTP non authentifié observé sur la cible locale FOSSBilling 0.7.2 et le compare avec FOSSBilling 0.8.0. La chaîne publique complète implique un comportement d'autorisation d'API supplémentaire au-delà de la validation sécurisée d'expression Twig présentée ici.

Le laboratoire ne démontre pas :

* l'exécution de commandes à distance,
* l'extraction d'identifiants,
* le dump de base de données,
* l'installation d'extensions,
* l'écriture arbitraire de fichiers,
* la persistance,
* le téléchargement de webshell,
* les rappels externes,
* les attaques contre des systèmes hors laboratoire,
* ou l'activité post-exploitation.

## Résumé de la cause racine

La cause racine de CVE-2026-28496 est un rendu de templates Twig non sécurisé.

FOSSBilling utilise Twig pour rendre les templates dynamiques. Dans les versions vulnérables, une chaîne de template fournie peut être transmise à la logique de rendu Twig sans restrictions de sandbox suffisantes.

Le comportement vulnérable peut être résumé comme suit :```text
Input template string
→ FOSSBilling API receives _tpl
→ System\Api\Admin::string_render() reads _tpl
→ System\Service::renderString() receives the template string
→ Twig creates a template from the supplied string
→ Twig evaluates the expression
→ rendered output is returned in the HTTP response

Pour cette expression de template inoffensive:```twig {{ 7*7 }}

la cible vulnérable évalue l'expression et renvoie :```text
49

Le problème de sécurité ne se limite pas à l'évaluation arithmétique. L'évaluation arithmétique n'est que le signal visible et sûr utilisé dans ce laboratoire.

Le problème le plus sensible en matière de sécurité est que les templates Twig non sandboxés peuvent accéder aux objets et méthodes exposés dans le contexte de template. Des recherches publiques décrivent un chemin d'impact plus élevé où l'exécution de templates Twig peut atteindre les composants internes de l'application, y compris le conteneur d'injection de dépendances, lorsque des objets de contexte de template adaptés sont disponibles.

Télécharger l’outil