🔍 Contexte
Publié le 20 avril 2026 sur le blog de Doyensec par Adrian Denkiewicz, cet article détaille une campagne de fuzzing menée contre CFITSIO, la bibliothèque C de référence pour le traitement du format astronomique FITS, maintenue par la NASA/HEASARC. La recherche a été conduite en deux rounds distincts, le second ciblant spécifiquement la surface d’attaque Extended Filename Syntax (EFS).
🛠️ Méthodologie
Le chercheur a utilisé AFL++ comme fuzzer principal, combiné à GPT-5-Codex pour :
- Générer le code de harness et les dictionnaires de tokens EFS
- Analyser automatiquement les crashs (root cause analysis)
- Proposer et valider des correctifs
- Automatiser un pipeline complet : patch → rebuild → re-run ASAN → confirmation
L’outil AFLtriage a été utilisé pour le tri des crashs uniques.
🐛 Vulnérabilités découvertes
- Premier round : 6 bugs (advisory séparé)
- Second round : 16 vulnérabilités uniques dans le parseur EFS (version cfitsio-4.6.3)
- Catégories principales : mauvaise gestion de chaînes C (
strncatmal dimensionné), pointeursreallocobsolètes, débordements d’entiers dans les calculs de tableaux - Résultat : stack overflows et heap overflows
🔎 Exemple détaillé : CFITSIO-EFS-01
Dans la fonction ffifile2, un bug de précédence d’opérateurs C rend une vérification de débordement de buffer toujours fausse. L’expression ternaire ?: est mal parenthésée, ce qui fait que la condition de protection n’est jamais évaluée correctement. Des noms de fichiers FITS spécialement forgés permettent à strncat d’écrire au-delà du buffer rowfilterx sur la pile.
📡 Surface d’attaque EFS
L’Extended Filename Syntax est un mini-langage interprété par CFITSIO avant même l’ouverture du fichier (via fits_open_file). Toute application acceptant des noms de fichiers FITS depuis une entrée non fiable et appelant cette fonction est potentiellement exposée.
📬 Divulgation
L’advisory complet, les patches, fichiers de crash et étapes de reproduction ont été transmis à l’équipe HEASARC/NASA le 17 novembre 2025. Les correctifs générés par Codex ont été jugés utiles par l’équipe, certains appliqués sans modification.
📄 Type d’article
Il s’agit d’une publication de recherche technique combinant rapport de vulnérabilités et présentation d’une méthodologie de fuzzing assistée par LLM, destinée à la communauté sécurité et aux mainteneurs de logiciels scientifiques.
🧠 TTPs et IOCs détectés
TTP
- T1203 — Exploitation for Client Execution (Execution)
Malware / Outils
- AFL++ (tool)
- AFLtriage (tool)
🔴 Indice de vérification factuelle : 23/100 (basse)
- ⬜ blog.doyensec.com — source non référencée (0pts)
- ✅ 12084 chars — texte complet (15pts)
- ⬜ aucun IOC extrait (0pts)
- ⬜ pas d’IOC à vérifier (0pts)
- ✅ 1 TTP(s) MITRE (8pts)
- ⬜ date RSS ou approximée (0pts)
- ⬜ aucun acteur de menace nommé (0pts)
- ⬜ pas de CVE à vérifier (0pts)
🔗 Source originale : https://blog.doyensec.com/2026/04/20/cfitsio-fuzzing.html
🖴 Archive : https://web.archive.org/web/20260420070250/https://blog.doyensec.com/2026/04/20/cfitsio-fuzzing.html