
PoC
CryptoLib fournit une solution uniquement logicielle utilisant le protocole CCSDS Space Data Link Security Protocol - Extended Procedures (SDLS-EP) pour sécuriser les communications entre un engin spatial exécutant le core Flight System (cFS) et une station au sol. Dans les versions 1.3.3 et antérieures, une vulnérabilité de débordement de tas se produit dans la fonction Crypto_TM_ProcessSecurity (crypto_tm.c:1735:8). Lors du traitement de la longueur de l'en-tête secondaire d'un paquet de protocole TM, si la longueur de l'en-tête secondaire dépasse la longueur totale du paquet, un débordement de tas est déclenché lors de l'opération memcpy qui copie les données du paquet dans le tampon alloué dynamiquement p_new_dec_frame. Cela permet à un attaquant d'écraser la mémoire de tas adjacente, pouvant potentiellement conduire à une exécution de code arbitraire ou à une instabilité du système.
Impact : Un paquet malveillant peut déclencher une corruption de la mémoire de tas lors des opérations memcpy dans le tampon p_new_dec_frame, pouvant potentiellement conduire à :
Version corrigée : 810fd66d592c883125272fef123c3240db2f170f
poc.py - Script Python à double mode :
./poc.py generate [overflow_amount]
Paramètres :
overflow_amount : Octets à déborder (par défaut : 1024)Exemple :
# Generate packet with 2048-byte overflow
./poc.py generate 2048 > evil_packet.hex
./poc.py check <hex_packet>
Paramètres :
<hex_packet> : Chaîne hexadécimale du paquet TMExemple :
# Analyze generated packet
./poc.py check $(cat evil_packet.hex)
[6-byte Primary Header][2-byte Secondary Header Length][Payload]
Le script crée des paquets où :
Secondary Header Length > (Longueur totale du paquet - Décalage d'en-tête)memcpy tente de copier plus d'octets que disponibleavailable_space = total_length - (offset + length_field_size)
if claimed_length > available_space:
trigger_alert()
Ce logiciel est destiné à :
Ne PAS utiliser sur des systèmes de production ou sans autorisation explicite. Les mainteneurs déclinent toute responsabilité en cas d'utilisation abusive de cet outil.