Die Veröffentlichung von CoreBoot 4.17 bringt eine freie Alternative zu proprietĂ€ren Firmware- und BIOS-Systemen. Der Code des Projekts wird unter der GPLv2-Lizenz verbreitet. An der Erstellung der neuen Version haben 150 Entwickler mit mehr als 1300 Ănderungen mitgewirkt.
HauptÀnderungen:
- Eine SicherheitsanfĂ€lligkeit (CVE-2022-29264) wurde behoben, die in Versionen von CoreBoot von 4.13 bis 4.16 auftritt und es ermöglicht, auf Systemen mit AP (Application Processor) Code im SMM (System Management Mode) auszufĂŒhren, der einen höheren PrioritĂ€tsgrad (Ring -2) hat als der Hypervisor-Modus und der Null-Schutzring, und der uneingeschrĂ€nkten Zugriff auf den gesamten Speicher hat. Das Problem wird durch einen falschen Aufruf des SMI-Handlers im Modul smm_module_loader verursacht.
- Die UnterstĂŒtzung fĂŒr 12 Mainboards wurde hinzugefĂŒgt, von denen 5 in GerĂ€ten mit Chrome OS verwendet werden oder in Servern Google verwendet werden. Zu den nicht mit Google verbundenen Boards gehören:
- 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) und Lite Mk IV (N5030).
- Die UnterstĂŒtzung fĂŒr die Mainboards Google Deltan und Deltaur wurde eingestellt.
- Ein neuer Payload coreDOOM wurde hinzugefĂŒgt, der es ermöglicht, das Spiel DOOM aus Coreboot zu starten. Im Projekt wurde der Code doomgeneric verwendet, der auf libpayload portiert wurde. FĂŒr die Ausgabe wird der lineare Framebuffer von Coreboot verwendet, und die WAD-Dateien mit den Spieledaten werden aus CBFS geladen.
- Die Payload-Komponenten SeaBIOS 1.16.0 und iPXE 2022.1 wurden aktualisiert.
- Der SeaGRUB-Modus (GRUB2 ĂŒber SeaBIOS) wurde hinzugefĂŒgt, der es erlaubt, die von SeaBIOS bereitgestellten Callback-Aufrufe in GRUB2 zu nutzen, beispielsweise um auf Hardware zuzugreifen, auf die GRUB2-Payload keinen Zugriff hat.
- Ein Schutz gegen die SinkHole-Attacke wurde hinzugefĂŒgt, der es ermöglicht, Code im SMM (System Management Mode) auszufĂŒhren.
- Die eingebaute Möglichkeit zur Generierung statischer Seiten-Tabellen aus Assembler-Dateien wurde implementiert, ohne dass externe Utilities aufgerufen werden mĂŒssen.
- Die Ausgabe von Debugging-Informationen in die CBMEMC-Konsole aus SMI-Handlern bei Verwendung von DEBUG_SMI wurde erlaubt.
- Das System von CBMEM-Initialisierungs-Handlern wurde geÀndert. Anstelle von an Phasen gebundenen Handlern wurden zwei Handler vorgeschlagen: CBMEM_CREATION_HOOK (wird in der Anfangsphase verwendet, die cbmem erstellt) und CBMEM_READY_HOOK (wird in allen Phasen verwendet, in denen cbmem bereits erstellt wurde).
- Die UnterstĂŒtzung fĂŒr PSB (Platform Secure Boot) wurde hinzugefĂŒgt, die durch den PSP-Prozessor (Platform Security Processor) aktiviert wird, um die IntegritĂ€t des BIOS durch digitale Signaturen zu verifizieren.
- Eine eigene Implementierung des Debug-Datenhandlers, die aus FSP (FSP Debug Handler) ĂŒbergeben wird, wurde hinzugefĂŒgt.
- Hersteller-spezifische TIS-Funktionen (TPM Interface Specification) zum Lesen und Schreiben direkt aus den Register TPM (Trusted Platform Module) â tis_vendor_read() und tis_vendor_write() wurden hinzugefĂŒgt.
- UnterstĂŒtzung fĂŒr die Abfangung von Dereferenzierungen nuller Zeiger ĂŒber Debug-Register wurde hinzugefĂŒgt.
- Die Erkennung von i2c-GerÀten wurde implementiert, um die Arbeit mit Boards, die mit Touchpads oder Touchscreens verschiedener Hersteller ausgestattet sind, zu erleichtern.
- Die Möglichkeit, Zeitdaten in einem Format zu speichern, das sich fĂŒr die Erstellung von FlameGraph-Diagrammen eignet und anschaulich darstellt, wie viel Zeit in verschiedenen Phasen des Bootvorgangs aufgewendet wird, wurde hinzugefĂŒgt.
- In das cbmem-Tool wurde eine Option zum HinzufĂŒgen eines âTimestampâ aus dem Benutzerspeicher in die cbmem-Tabelle eingefĂŒgt, was es ermöglicht, Ereignisse in cbmem in den Phasen darzustellen, die nach CoreBoot ausgefĂŒhrt werden.
ZusĂ€tzlich kann die Veröffentlichung eines offenen Briefes durch die OSFF (Open-Source Firmware Foundation) an Intel erwĂ€hnt werden, in dem vorgeschlagen wird, die Firmware-Support-Pakete (FSP, Firmware Support Package) modularer zu gestalten und zu beginnen, Dokumentationen zur Initialisierung von Intel SoCs zu veröffentlichen. Das Fehlen des FSP-Codes erschwert erheblich die Erstellung offener Firmware und behindert die Fortschritte der Coreboot-, U-Boot- und LinuxBoot-Projekte auf Intel-Hardware. Eine Ă€hnliche Initiative war zuvor erfolgreich, und Intel hat den Code der angeforderten Firmware fĂŒr das PSE (Programmable Services Engine) veröffentlicht.
Quelle: opennet.ru
