Vladimir Serbinenko, uno dei tre maintainer del bootloader GRUB2, che ha apportato oltre cinquemila modifiche al codice, ha proposto la possibilità di scrivere moduli per GRUB2 utilizzando il linguaggio Rust. Vladimir ha presentato i primi risultati degli esperimenti sull'aggiunta del supporto per Rust in GRUB2 e sulla creazione dei necessari wrapper. Sono state inoltre preparate modifiche per GRUB che consentono di utilizzare librerie condivise ('.so', ET_DYN) per i moduli, piuttosto che effettuare il linking a livello di file oggetto ('.o', ET_REL).
L'iniziativa è al momento posizionata come un esperimento separato che non influenzerà lo sviluppo di GRUB2. Si menziona come applicazione ottimale di Rust in GRUB la scrittura di moduli per i nuovi file system. Non si esclude nemmeno la riscrittura in Rust del codice per la gestione delle partizioni del disco e del GPT.
Si prevede che l'uso di Rust aiuti il progetto a ridurre la probabilità di alcuni tipi di errori, in particolare nel codice dei moduli che contiene molte procedure di parsing grandi e complesse. A febbraio, a seguito di un audit del codice di GRUB, sono stati identificati 72 problemi di sicurezza, 21 dei quali sono stati classificati come vulnerabilità pericolose, in grado di eludere il meccanismo di avvio verificato UEFI Secure Boot. 20 delle 21 vulnerabilità sono state causate da errori nella gestione della memoria, che hanno portato a overflow del buffer o a accessi alla memoria dopo che era stata liberata.
In aggiunta, si segnala il rilascio del progetto GNU Boot 0.1 RC6, che include le correzioni delle vulnerabilità menzionate sopra (le correzioni continuano a essere distribuite come patch nel GRUB2 senza formare un rilascio separato). Il progetto GNU Boot sviluppa un'alternativa ai firmware proprietari UEFI e BIOS, basata su CoreBoot, ma con requisiti più rigorosi per l'inclusione di componenti binari. GNU Boot è presentato come "coreboot-libre", ossia una versione di CoreBoot priva di blob e componenti non liberi, analogamente a come il progetto Linux-libre sviluppa una versione purificata del kernel Linux. Progetti simili come Libreboot e Canoeboot vengono sviluppati separatamente.
Fonte: opennet.ru
