Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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
mirth-connect-security-poc — PoCs fonctionnels pour trois vulnérabilités de NextGen Connect 4.5.2. | Kitploit
Outils/GitHubGitHub/abhinavagarwal07/mirth-connect-security-poc
Outils DéfensifsAnalyse des VulnérabilitésExploitationExploitation d'Applications WebVirtualisation de SécuritéTests d'IntrusionApprentissage et Éducation
GitHubabhinavagarwal07/mirth-connect-security-poc

mirth-connect-security-poc

PoCs fonctionnels pour trois vulnérabilités de NextGen Connect 4.5.2.

Voir le dépôt
5il 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

PoC de vulnérabilités NextGen Connect 4.5.2

Preuves de concept fonctionnelles pour trois vulnérabilités accessibles par le réseau dans NextGen Connect (Mirth Connect) 4.5.2. Les harnais exécutent l'image de conteneur officielle, ne créent que la configuration de canal nécessaire à la découverte, exécutent l'attaque depuis un conteneur séparé, et échouent à moins que l'effet de sécurité revendiqué ne soit observé.

Cette revue a utilisé la méthodologie publique Refute-or-Promote et son playbook d'orchestration open-source. La méthode sépare la génération de candidats de la revue adversariale à contexte neuf et exige une preuve empirique avant promotion. Le code source vulnérable 4.5.2 et la méthode de revue sont tous deux publics : toute personne disposant d'un accès ordinaire à un modèle, du code source, et de la capacité de valider en toute sécurité dans un laboratoire peut appliquer le même processus, et aurait pu découvrir ces classes de bugs de manière indépendante. La confidentialité autour d'un rapport ne rend pas la capacité de revue sous-jacente privée.

Ce sont de véritables exploits, pas des tests unitaires de parseur. Ils récupèrent un hash de mot de passe actif via une injection SQL, exfiltrent le contenu de fichiers locaux à la cible via deux chemins XML non authentifiés distincts, et bloquent les opérations adossées à Derby jusqu'au redémarrage.

CVEDécouverteAttaquantImpact démontréCVSS 3.1 / 4.0PoC
CVE-2026-82583Injection selectLimit dans _getTablesUtilisateur API authentifiéExport de la table des mots de passe vers la racine web publique ; gel de Derby jusqu'au redémarrage8.3 / 7.2sql-selectlimit-injection/
CVE-2026-78224XXE dans l'étape XSLTClient de canal non authentifiéLecture OOB d'un fichier local à la cible ; DoS par entité lente local au canal8.2 / 8.8xslt-step-xxe/
CVE-2026-82578XXE dans l'adaptateur XML BatchClient de canal non authentifiéLecture OOB d'un fichier local à la cible7.5 / 8.7xml-batch-xxe/

CVSS 3.1 et 4.0 sont des standards différents ; les scores appariés ne constituent pas une comparaison avant/après.

Les trois ont été reproduits contre :

root@kitploit:~
nextgenhealthcare/connect:4.5.2
sha256:4afa295cfe7c5ffd596efee69594157fea87202e33d66bb4a98a52db4598f836

NextGen a signalé en privé que le problème XSLT a été corrigé dans la version 4.7.1 et que l'injection SQL et les problèmes XML Batch ont été corrigés dans la version 4.7.2. L'avis CISA ICSMA-26-253-01 considère 4.7.1 et antérieures comme affectées et recommande 4.7.2 ou ultérieure. Les versions postérieures à 4.5 sont propriétaires, il n'existe donc pas d'image corrigée publique à partir de laquelle ce dépôt pourrait fournir le même type de contrôle négatif reproductible utilisé pour une version corrective open-source.

Ce qu'un attaquant obtient

CVE-2026-82583 : exposition de la base de données et des secrets d'intégration

Un pied dans la place authentifié sur l'API administrative devient un accès à des données que le compte n'était pas censé exporter. L'exploit fourni écrit la ligne active PERSON_PASSWORD sous public_html et prouve que le fichier résultant est téléchargeable sans authentification. L'étape qui compte est de passer d'une action API restreinte à un fichier sur disque qui n'a plus du tout besoin de la session de l'attaquant.

Dans un environnement d'intégration réel, la base de données peut décrire des canaux, des points de terminaison et des identifiants utilisés pour atteindre des bases de données, des serveurs SFTP, des relais de messagerie, des API et d'autres systèmes cliniques. Un test contrôlé séparé a récupéré un mot de passe de connecteur délibérément implanté à partir du XML de canal exporté. Cela rend la primitive utile pour la cartographie d'environnement et le vol de secrets ; l'utilisation de tout identifiant récupéré contre un système en aval n'a pas été testée et n'est pas revendiquée.

Le volet optionnel de déni de service gèle la base de données Derby intégrée. Les appels API adossés à la base de données expirent alors, la même injection ne peut pas dégeler son propre point d'entrée, et un redémarrage du processus est nécessaire. C'est une charge de récupération pratique pour les installations adossées à Derby, pas la preuve que des bases de données de production externes se comportent de la même manière.

CVE-2026-78224 : divulgation de fichiers serveur non authentifiée et interruption de canal

Une fois qu'un canal XSLT affecté est déployé, l'attaquant n'a besoin d'aucun compte Mirth. Le XML entrant fait que le service lit un fichier local à la cible et envoie son contenu à un callback contrôlé par l'attaquant. C'est utile même lorsque la réponse normale du canal ne contient pas les données transformées et que l'attaquant ne peut pas lire l'historique des messages.

Le client autonome accepte une URI file: monoligne choisie par l'appelant. Des fichiers tels que des identifiants d'hôte, des jetons, des fragments de configuration ou des identifiants sont pratiquement précieux si le compte de service Mirth peut les lire et que le serveur peut atteindre le callback. La preuve fournie n'utilise qu'un canari généré et ne revendique pas la récupération universelle de fichiers arbitraires, le transport multiligne, ou un accès au-delà du compte de service.

Une entité externe lente occupe également le canal victime par défaut à un seul thread. Cela peut retarder ou arrêter l'interface clinique spécifique mappée à ce canal jusqu'à ce que l'entité soit libérée. Le canal de contrôle et l'API administrative restent sains, il s'agit donc d'une perturbation locale au canal plutôt que d'une panne de tout le serveur.

CVE-2026-82578 : exfiltration aveugle de fichiers via l'entrée batch

Lorsqu'un mode batch XML affecté est activé, un expéditeur non authentifié peut utiliser le corps batch brut pour déclencher le même type de divulgation de fichier sortante. Le serveur renvoie HTTP 500, mais l'attaquant dispose déjà du contenu du fichier cible uniquement via le callback OOB. Cela rend la faille pratiquement utile comme chemin d'exfiltration aveugle même lorsqu'un test basé uniquement sur le code de réponse rejetterait la requête comme un échec de parseur.

Le traitement batch est désactivé par défaut, le mode split doit atteindre le parseur adossé à XPath, et une sortie réseau serveur est requise. Ce dépôt ne revendique pas de déni de service démontré pour CVE-2026-82578.

Exécution

Prérequis : Bash, Docker, Linux x86-64, et un accès réseau pour le pull initial de l'image. Les deux images sont épinglées par digest. Aucun port hôte n'est publié ; la cible et l'attaquant communiquent uniquement sur un bridge Docker interne spécifique à la tâche.

root@kitploit:~
./run-all.sh

Ou exécuter une seule découverte :

root@kitploit:~
./sql-selectlimit-injection/poc/run.sh
./xslt-step-xxe/poc/run.sh
./xml-batch-xxe/poc/run.sh

Chaque invocation crée des conteneurs nommés de manière unique et un réseau bridge, enregistre evidence/current-run.log, et supprime ses propres ressources de laboratoire en sortie. Les fichiers evidence/vulnerable-4.5.2.log versionnés sont des transcriptions d'un rejeu sur Linux x86-64.

Ce qui est et n'est pas revendiqué

  • L'injection SQL est démontrée via le véritable point d'entrée REST et la base de données Derby intégrée. Le PoC exporte la ligne active PERSON_PASSWORD et récupère le fichier sans authentification. Son volet optionnel de laboratoire invoque SYSCS_FREEZE_DATABASE, après quoi les appels API adossés à la base de données cessent de répondre jusqu'au redémarrage de la cible.
  • Le PoC XSLT utilise une transformation identité fixe, installée par l'administrateur. L'attaquant ne contrôle que le message entrant non authentifié. Le contenu des fichiers revient via un callback DTD externe. Son client autonome accepte une URI file: monoligne locale à la cible ; le wrapper de laboratoire utilise un canari aléatoire et une assertion exacte. La même exécution prouve l'indisponibilité locale au canal avec un second canal sain et l'API admin, puis vérifie la récupération.
  • Le PoC XML Batch active le mode batch XML ordinaire Element Name du produit. L'attaquant ne contrôle que le corps batch non authentifié. Son client autonome a le même mode --file-uri et la même limitation OOB monoligne.
  • Aucun produit de santé en aval, dossier patient, ou système tiers n'a été testé. Les références à d'éventuelles PHI ou identifiants en aval décrivent des conséquences de déploiement, pas des victimes supplémentaires démontrées.
  • Le candidat de chemin d'export dans le checkout de recherche est intentionnellement absent. L'API est conçue pour l'export côté serveur et le matériel fourni n'a pas prouvé de violation portable de frontière de privilèges ni de chaîne complète d'exécution de code.

Sécurité

À exécuter uniquement dans un laboratoire jetable que vous possédez. Le PoC SQL gèle délibérément la base de données cible ; la récupération nécessite de redémarrer la cible. Les PoC XXE lisent un canari monté par défaut, mais leurs clients autonomes acceptent des URL d'écoute arbitraires et des URI de fichiers monolignes locales à la cible. Ne les dirigez jamais vers des systèmes sans autorisation.

Atténuation

Selon la CISA, mettre à niveau vers Connect 4.7.2 ou ultérieure. Lorsqu'une mise à niveau immédiate n'est pas possible, restreindre l'API administrative aux réseaux de gestion de confiance, supprimer les étapes XSLT inutiles, désactiver le traitement batch XML là où il n'est pas requis, et bloquer la sortie réseau serveur non nécessaire. Ces mesures réduisent l'exposition mais ne réparent pas le code vulnérable.

Crédit

Les découvertes 1 et 3 doivent être créditées à Abhinav Agarwal. La découverte 2 a été indépendamment découverte par Abhinav Agarwal et signalée pour la première fois à NextGen par Youngdu. NextGen a coordonné les correctifs et l'attribution des CVE.

Usage défensif prévu

Ce dépôt est destiné à aider les défenseurs à transformer le texte d'un avis en comportement observable et testable. Dans une copie isolée d'un environnement, les défenseurs peuvent l'utiliser pour :

  • déterminer si le comportement public de la 4.5.2 est présent et comprendre les prérequis exacts de configuration ;
  • valider que les contrôles du plan de gestion empêchent les comptes non fiables d'atteindre l'opération Database Connector ;
  • confirmer que le filtrage de sortie bloque le chemin de callback XXE testé ;
  • construire des détections pour les requêtes _getTables suspectes, les procédures inattendues d'export ou de gel de Derby, les nouveaux fichiers sous public_html, le XML entrant contenant un DOCTYPE, et les callbacks provenant de Mirth après des erreurs de listener ;
  • prioriser la rotation des identifiants de connecteur lorsqu'un plan administratif affecté a pu être compromis ; et
  • réexécuter les mêmes assertions contre une version corrigée fournie par l'éditeur comme contrôle négatif local, même si cette version ne peut pas être distribuée ici.

Chaque PoC s'exécute dans un conteneur, épingle ses images par digest, et échoue en mode fermé à moins qu'un canari aléatoire ne revienne. Un défenseur peut reproduire la véritable frontière de sécurité plutôt que de se fier à une capture d'écran ou à un numéro de sévérité. Il existe pour aider les gens à découvrir ce qu'ils exécutent, à le tester, et à confirmer qu'un correctif a fonctionné. Il n'est pas là pour être pointé vers un hôpital.

Télécharger l’outil