En juillet 2023, nos règles de comportement proactives se sont déclenchées lors d’une tentative de chargement d’un pilote nommé pskmad_64.sys (Panda Memory Access Driver) sur une machine protégée. Le pilote appartenait à Panda Security et était utilisé dans plusieurs de ses produits.
En raison de l’augmentation des abus légitimes de pilotes dans le but de désactiver les produits EDR (un problème que nous avons analysé dans notre article sur les pilotes signés Microsoft compromis il y a plusieurs mois) et du contexte dans lequel ce pilote a été chargé, nous avons commencé à investiguer et à approfondir nos recherches concernant ce fichier.
Après une réévaluation et l’implication du client, l’incident de départ a été identifié comme étant un test de simulation APT. Notre investigation a cependant conduit à la découverte de trois vulnérabilités distinctes que nous avons signalées à l’équipe sécurité de Panda. Ces vulnérabilités, désormais identifiées sous les noms CVE-2023-6330, CVE-2023-6331 et CVE-2023-6332, ont depuis été corrigées par Panda. Des informations de Panda sur les vulnérabilités et les correctifs correspondants peuvent être trouvées comme indiqué pour chaque CVE ci-dessous.
Résultats pour chaque CVE
CVE-2023-6330 (Registry)
Description
Le registre ‘hive’ \\REGISTRY\\MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion contient plusieurs informations utiles utilisées pour déterminer la version du système d’exploitation. Le CSDVersion représente le niveau de Service Pack du système d’exploitation. CSDBuildNumber est le numéro du build correspondant.
Le pilote pskmad_64.sys ne valide pas correctement le contenu de ces valeurs de registre. Un attaquant peut placer du contenu malveillant dans CSDBuildNumber ou CSDVersion, entraînant ainsi un dépassement de mémoire non paginée.
Impact
L’impact minimum est un déni de service. Avec des recherches supplémentaires, un attaquant pourrait être en mesure de déclencher une RCE en combinant CVE-2023-6330 avec d’autres vulnérabilités. Le score de base CVSS pour cette vulnérabilité est de 6,4 et Panda l’évalue comme ayant un impact potentiel moyen.
L’avis complet concernant ce problème est disponible sur le site WatchGuard sous le numéro WGSA-2024-00001, “WatchGuard Endpoint pskmad_64.sys Pool Memory Corruption Vulnerability“.
CVE-2023-6331 (OutOfBoundsRead)
Description
En envoyant un paquet malveillant au pilote via une requête IRP avec le code IOCTL 0xB3702C08, un attaquant peut déclencher un dépassement de zone mémoire non paginée, entraînant ainsi une écriture hors limites de la mémoire. La vulnérabilité existe en raison d’une vérification des limites manquantes lors du déplacement de données via memmove vers un pool de mémoire non paginée.
Impact
L’impact minimum est un déni de service. Avec des recherches supplémentaires, un attaquant pourrait être en mesure d’exécuter du code à distance lorsque CVE-2023-6331 est combinée avec d’autres vulnérabilités. Le score de base CVSS pour cette vulnérabilité est également de 6,4, mais Panda l’évalue comme ayant un impact potentiel élevé.
L’avis complet concernant ce problème est disponible sur le site WatchGuard sous le numéro WGSA-2024-00002, “WatchGuard Endpoint pskmad_64.sys Out of Bounds Write Vulnerability“.
CVE-2023-6332 (Arbitrary Read)
Description
En raison d’une validation insuffisante au niveau du pilote du noyau, un attaquant pourrait envoyer une requête IOCTL avec le code 0xB3702C08 pour lire directement à partir de la mémoire du noyau, entraînant ainsi une vulnérabilité de lecture arbitraire.
Impact
L’attaquant pourrait utiliser cette vulnérabilité pour divulguer des données sensibles, ou la combiner avec d’autres vulnérabilités afin de créer un exploit plus sophistiqué et à plus fort impact. Le score de base CVSS pour cette vulnérabilité est de 4,1 et Panda l’évalue comme ayant un impact potentiel moyen.
L’avis complet concernant ce problème est disponible sur le site WatchGuard sous le numéro WGSA-2024-00003, “WatchGuard Endpoint pskmad_64.sys Arbitrary Memory Read Vulnerability“.
Produits affectés
Le fichier que nous avons étudié possède la valeur SHA256 suivante : 2dd05470567e6d101505a834f52d5f46e0d0a0b57d05b9126bbe5b39ccb6af68 et la version de fichier est 1.1.0.21. Avec la plus grande prudence, pendant que Panda menait sa propre investigation, nous avons traité toutes les versions antérieures du fichier comme potentiellement vulnérables en attendant les résultats de Panda : leur investigation a finalement confirmé cette approche.
Comme indiqué dans les avis de Panda, le pilote concerné est inclus dans les produits suivants :
- WatchGuard EPDR (EPP, EDR, EPDR) et Panda AD360 jusqu’à la version 8.00.22.0023.
- Panda Dome jusqu’à la version 22.02.01 (versions Essential, Advanced, Complete et Premium).
La version corrigée de Panda Dome, le produit grand public, est la 22.02.01. La version fixe de WatchGuard EPDR et AD360, le produit entreprise, est la 8.0.22.0023.
Chronologie
28/08/2023 : Preuve de concept et description détaillée envoyées à l’équipe sécurité de Panda.
21/09/2023 : L’équipe sécurité de Panda a répondu en confirmant la bonne réception de notre rapport.
30/10/2023 : L’équipe sécurité de Panda nous a informés de ses plans pour résoudre les problèmes.
06/12/2023 : Panda nous informe des trois CVE attribuées à ces problématiques.
18/01/2024 : Les correctifs ont été publiés.
Billet inspiré de Multiple vulnerabilities discovered in widely used security driver, sur le Blog Sophos.