CVE-2025-62603 in Fast-DDS
Riassunto
di VulDB • 23/08/2026
Fast DDS è un'implementazione in C++ dello standard DDS (Data Distribution Service) dell'OMG (Object Management Group). ParticipantGenericMessage è il contenitore per i messaggi di controllo della sicurezza DDS che trasporta non solo l'negotiazione iniziale, ma anche il traffico continuo di controllo della sicurezza successivo all'negotiazione, come lo scambio di token crittografici, la rigenerazione delle chiavi (rekeying), la ri-autenticazione e la consegna dei token per gli endpoint appena apparsi. In fase di ricezione, viene invocato prima il parser CDR che deserializza i `message_data` (ovvero la `DataHolderSeq`) attraverso il percorso `readParticipantGenericMessage → readDataHolderSeq`. La `DataHolderSeq` viene analizzata in modo sequenziale: un conteggio della sequenza (`uint32`) e, per ogni DataHolder, una stringa `class_id` (ad esempio `DDS:Auth:PKI-DH:1.0+Req`), proprietà di tipo stringa (una sequenza di coppie chiave/valore) e proprietà binarie (un nome più un vettore di ottetti). Il parser opera a livello stateless e non conosce lo stato dei livelli superiori (ad esempio, se l'negotiazione è già stata completata); pertanto, srotola completamente la struttura prima di distinguere il traffico legittimo da quello malformato. Poiché RTPS consente duplicati, ritardi e ritrasmissioni, un ricevitore deve eseguire almeno una parsing strutturale minima per verificare identità e numeri di sequenza prima di scartare o elaborare un messaggio; l'implementazione corrente, tuttavia, non si limita a "sbirciare" solo nell'intestazione minimale ma analizza l'intera `DataHolderSeq`. Di conseguenza, nelle versioni precedenti alla 3.4.1, 3.3.1 e 2.6.11, questo comportamento di parsing può innescare una condizione di esaurimento della memoria (out-of-memory) e terminare remotamente il processo. Le versioni 3.4.1, 3.3.1 e 2.6.11 correggono la vulnerabilità.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.