A fost publicată versiunea 4.17 a proiectului CoreBoot, care dezvoltă o alternativă liberă la firmware-urile și BIOS-urile proprietare. Codul proiectului este distribuit sub licența GPLv2. La realizarea noului versiune au contribuit 150 de dezvoltatori, care au pregătit peste 1300 de modificări.
Modificări principale:
- A fost remediată vulnerabilitatea (CVE-2022-29264), care se manifestă în versiunile CoreBoot de la 4.13 la 4.16 și permite executarea codului în mediul SMM (System Management Mode) pe sistemele cu AP (Application Processor), acest mod având prioritate mai mare (Ring -2) decât hypervisor-ul și nivelul zero de protecție, având acces nelimitat la toată memoria. Problema a fost cauzată de apeluri incorecte ale handler-ului SMI în modulul smm_module_loader.
- A fost adăugată suportul pentru 12 plăci de bază, dintre care 5 sunt folosite pe dispozitive cu Chrome OS sau pe servere Google. Printre plăcile care nu sunt legate de Google se numără:
- Clevo L140MU / L141MU / L142MU
- Dell Precision T1650
- HP Z220 CMT Workstation
- Star Labs LabTop Mk III (i7-8550u), LabTop Mk IV (i3-10110U, i7-10710U), Lite Mk III (N5000) și Lite Mk IV (N5030).
- Suportul pentru plăcile de bază Google Deltan și Deltaur a fost încetat.
- A fost adăugat un nou payload coreDOOM, care permite rularea jocului DOOM din Coreboot. Proiectul utilizează codul doomgeneric, portat pe libpayload. Pentru afișare se utilizează framebuffer-ul liniar Coreboot, iar fișierele WAD cu resursele jocului sunt încărcate din CBFS.
- Au fost actualizate componentele payload-ului SeaBIOS 1.16.0 și iPXE 2022.1.
- A fost adăugat modul SeaGRUB (GRUB2 peste SeaBIOS), care permite utilizarea apelurilor callback oferite de SeaBIOS în GRUB2, de exemplu, pentru a accesa hardware-ul la care nu are acces payload-ul GRUB2.
- A fost adăugată protecția împotriva atacului SinkHole, care permite executarea codului în nivelul SMM (System Management Mode).
- A fost implementată capacitatea încorporată de generare a tabelelor de pagini de memorie statice din fișierele assembly, fără a necesita apelarea utilitarelor externe.
- A fost permisă scrierea informațiilor de debugging în consola CBMEMC din handler-urile SMI, utilizând DEBUG_SMI.
- Sistemul handler-ului de inițializare CBMEM a fost modificat, înlocuind handler-urile *_CBMEM_INIT_HOOK legate de etape cu două handler-uri CBMEM_CREATION_HOOK (utilizat în etapa inițială, care creează cbmem) și CBMEM_READY_HOOK (utilizat în oricare etapă în care cbmem a fost deja creat).
- A fost adăugat suportul pentru PSB (Platform Secure Boot), activat de procesorul PSP (Platform Security Processor) pentru a verifica integritatea BIOS-ului prin semnătură digitală.
- A fost adăugată o implementare proprie a handler-ului de debugging, care transferă date din FSP (FSP Debug Handler).
- Au fost adăugate funcții TIS specifice pentru furnizori (TPM Interface Specification) pentru citirea și scrierea directă din registrele TPM (Trusted Platform Module) — tis_vendor_read() și tis_vendor_write().
- A fost adăugată suport pentru interceptarea dereferentărilor pointer-elor nule prin registrele de depanare.
- A fost implementată detectarea dispozitivelor i2c, facilitând lucrul cu plăci echipate cu touchpad-uri sau ecrane tactile de la diferiți producători.
- A fost adăugată capacitatea de a salva datele despre timp într-un format adecvat pentru generarea diagramelor FlameGraph, care ilustrează clar cât timp este cheltuit în diferite etape ale pornirii.
- În utilitarul cbmem a fost adăugată o opțiune pentru a introduce în tabela cbmem 'timestamp' timpul din spațiul utilizatorului, ceea ce permite reflectarea în cbmem a evenimentelor din etape care se desfășoară după CoreBoot.
De asemenea, se remarcă publicarea unei scrisori deschise din partea fundației OSFF (Open-Source Firmware Foundation) adresate companiei Intel, în care se propune să facă pachetele de suport pentru firmware (FSP, Firmware Support Package) mai modulare și să înceapă publicarea documentației legate de inițializarea SoC Intel. Absența codului FSP îngreunează semnificativ crearea firmware-urilor deschise și afectează promovarea proiectelor Coreboot, U-Boot și LinuxBoot pe echipamente Intel. O inițiativă similară anterioară a avut succes, iar compania Intel a deschis codul firmware-ului PSE (Programmable Services Engine) solicitat de comunitate.
Sursa: opennet.ro
