
Règle YARA et script Python pour détecter les exploits potentiels de la vulnérabilité CVE-2026-21509 dans MS Office
Ce dépôt contient une règle YARA pour détecter les documents RTF avec une exploitation potentielle de CVE-2026-21509,
et un script Python pour vérifier si les fichiers MS Office contiennent des objets OLE Shell.Explorer.1, ce qui est
lié à cette vulnérabilité.
Voir https://decalage.info/CVE-2026-21509/ pour plus de détails techniques.
Cette règle correspond aux documents RTF contenant des objets OLE Shell.Explorer.1, qui sont utilisés pour
exploiter la vulnérabilité CVE-2026-21509. Elle détecte tous les échantillons téléversés sur
MalwareBazaar : https://bazaar.abuse.ch/browse/tag/CVE-2026-21509/
Il n'y a aucune bonne raison pour qu'un document légitime intègre un tel objet OLE (qui est utilisé pour intégrer le moteur Internet Explorer dans d'autres applications), il devrait donc y avoir très peu de faux positifs.
La règle YARA existe en deux versions :
CVE-2026-21509_RTF.yar qui autorise les caractères d'espacement entre chaque caractère de la chaîne CLSID.
C'est plus lent, mais cela se comporte comme l'analyseur RTF de MS Word qui autorise de tels espaces.CVE-2026-21509_RTF_nows.yar sans espaces. Cette règle est plus rapide, mais elle peut manquer certaines
détections si des espaces ou des caractères de nouvelle ligne sont insérés dans la chaîne CLSID.Selon l'avis MS https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-21509
la vulnérabilité CVE-2026-21509 est liée au CLSID EAB22AC3-30C1-11CF-A7EB-0000C05BAE0B,
correspondant à l'objet COM "Shell.Explorer.1", qui peut être utilisé pour ouvrir l'ancien
moteur Internet Explorer (alias Trident/MSHTML) depuis n'importe quelle application.
Ainsi, pour exploiter CVE-2026-21509 depuis un document MS Office, on pourrait utiliser soit un objet OLE de type "Shell.Explorer.1", soit utiliser une relation externe avec une URL spéciale qui déclencherait l'utilisation du moteur Internet Explorer, comme c'était le cas pour CVE-2021-40444 avec les URL "mhtml:".
Ce script tente simplement d'identifier les deux cas.