Nell'infrastruttura OSS Fuzz è stato implementato il supporto per i progetti in linguaggio Lua

Nell'infrastruttura per il fuzzing test continuo di OSS-Fuzz è stata aggiunta la possibilità di testare progetti scritti in Lua, oltre ai linguaggi precedentemente supportati come C/C++, Go, Swift, Rust, Python, JavaScript e Java. L'integrazione è realizzata attraverso il progetto luzer, che sviluppa strumenti specializzati per il fuzzing test del codice in Lua e per le estensioni di Lua scritte in C/C++.

Il progetto utilizza la libreria libFuzzer e può essere utilizzato insieme agli strumenti AddressSanitizer, MemorySanitizer, LeakSanitizer, ThreadSanitizer e Undefined Behavior Sanitizer, che consentono, sulla base dei problemi identificati durante il fuzzing test, di determinare la presenza di vulnerabilità note causate da overflow di buffer, overflow di numeri interi, accessi a aree non inizializzate e liberate, perdite di memoria, dereferenziazioni di puntatori e problemi con l'acquisizione di lock. Il codice del progetto è disponibile con licenza ISC.

Durante il suo funzionamento, luzer esplora possibili combinazioni di dati di input e genera un rapporto su tutti i crash identificati e le eccezioni non gestite. Ad esempio, nel testare la libreria per il parsing del formato MsgPack antirez/lua-cmsgpack utilizzando luzer, è stato rilevato che i dati con un numero elevato di array possono portare a un overflow dello stack.

Nell'ambito del progetto lunapark, lo strumento luzer è utilizzato per testare PUC Rio Lua, il compilatore tracing LuaJIT, un database ad alte prestazioni e server applicazioni Tarantool, oltre che per il test di moduli Lua di terze parti.

Gli sviluppatori di progetti open source possono aggiungere i loro repository per il test, preparando un modello di fuzzing test e inviando una richiesta speciale tramite pull request. In caso di errori, gli sviluppatori ricevono automaticamente una notifica e viene creata una segnalazione privata per la correzione (per evitare la fuga prematura di informazioni sulle vulnerabilità, il ticket è creato nel sistema di tracciamento dei bug con accesso limitato). OSS Fuzz tiene traccia dello stato della correzione del bug e chiude il ticket automaticamente se non è più riproducibile. Le informazioni sul problema diventano pubblicamente accessibili dopo 7 giorni dalla correzione o dopo 90 giorni dalla scoperta del bug, se il problema rimane non corretto.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster