🔍 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 (strncat mal dimensionné), pointeurs realloc obsolè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