U zbulua një cenueshmëri në distancë në shtresën Shim që lejon anashkalimin e UEFI Secure Boot

Në shtresën Shim, e përdorur në shumicën e shpërndarjeve Linux për nisje të verifikuar në modalitetin UEFI Secure Boot, është zbuluar një cenueshmëri (CVE-2023-40547) që mund të çojë në ekzekutim të kodit në distancë dhe anashkalim të mekanizmit të nisjes së verifikuar UEFI Secure Boot. Një sulmues që kontrollon serverin HTTP te i cili lidhet Shim mund të kthejë një përgjigje të formuar posaçërisht, e cila shkakton një shkrim të kontrolluar jashtë kufijve të buffer-it, duke mundësuar ekzekutimin e kodit në fazën e hershme të nisjes.

Cenueshmëria shkaktohet nga një gabim në kodin e shkarkimit të skedarëve përmes HTTP, i cili shfaqet gjatë përpunimit të përgjigjeve të pasakta që kthen serveri HTTP te i cili lidhet shim. Modaliteti HTTPBoot në Shim mbështetet që nga viti 2016 dhe mundëson nisjen përmes rrjetit, duke përdorur protokollin HTTP për të tërhequr skedarin me ngarkuesin e nisjes që thirret në fazën pasuese. Gjatë ngarkimit të skedarëve përmes HTTP, Shim alokon një buffer për të dhënat e marra duke u bazuar jo në madhësinë reale të të dhënave, por në madhësinë e deklaruar në header-in HTTP «Content-Lenght». Për rrjedhojë, nëse në header-in Content-Lenght kthehet një vlerë më e vogël, mund të arrihet që pjesa e mbetur e përgjigjes të shkruhet në memorie jashtë kufijve të buffer-it.

Shim është i nënshkruar dixhitalisht nga Microsoft dhe verifikon GRUB2 me certifikatën e vet, çka u lejon zhvilluesve të shpërndarjeve të mos certifikojnë çdo përditësim të kernel-it dhe GRUB te Microsoft. Cenueshmëria në Shim bën të mundur ndërhyrjen në zinxhirin e besimit kur modaliteti Secure Boot është aktiv dhe marrjen e kontrollit të plotë mbi procesin e mëtejshëm të nisjes, për shembull për të ngarkuar një OS tjetër, për të modifikuar komponentët e sistemit operativ dhe për të anashkaluar mbrojtjen Lockdown.

Cenueshmëria është korrigjuar në versionin Shim 15.8, por për ta bllokuar plotësisht sulmin përmes Shim kërkohet që versioni i ri të certifikohet nga Microsoft dhe të integrohet në shpërndarje. Statusi i korrigjimit të cenueshmërisë në shpërndarje mund të kontrollohet në këto faqe: Debian, Ubuntu, SUSE, RHEL, Fedora. Problemi është se pa revokimin e nënshkrimit të versionit të vjetër, korrigjimi është i pavlefshëm, pasi një sulmues mund të përdorë një media boot me një version të cenueshëm të Shim për të komprometuar UEFI Secure Boot. Por revokimi i nënshkrimit do të bëjë të pamundur nisjen e verifikuar për shpërndarjet që vazhdojnë të përdorin versionin e vjetër të Shim.

Për të bllokuar vulnerabilitetin pa anulluar nënshkrimin digjital, shpërndarjet mund të përdorin mekanizmin SBAT (UEFI Secure Boot Advanced Targeting), mbështetje e të cilit është realizuar për GRUB2, shim dhe fwupd në shumicën e shpërndarjeve të njohura Linux. SBAT është zhvilluar në bashkëpunim me Microsoft dhe parashikon shtimin e metadatas në skedarët ekzekutivë të komponenteve UEFI, që përfshin informacion mbi prodhuesin, produktin, komponentin dhe versionin. Këto metadata nënshkruhen me një nënshkrim digjital dhe mund të përfshihen veçmas në listat e miratuara ose të ndaluara për UEFI Secure Boot.

SBAT mundëson bllokimin e përdorimit të nënshkrimit dixhital për versione të caktuara të komponentëve, pa qenë nevoja të revokohen çelësat për Secure Boot. Zbutja e dobësive përmes SBAT nuk kërkon përdorimin e listës së certifikatave të revokuara UEFI (dbx), por kryhet në nivelin e zëvendësimit të çelësit të brendshëm për krijimin e nënshkrimeve dhe përditësimit të GRUB2, shim dhe artefakteve të tjera të nisjes që shpërndahen me distribucionet.

Përveç dobësisë së përmendur, në Shim 15.8 janë korrigjuar edhe disa probleme të tjera më pak kritike që mund të shfrytëzohen lokalisht:

  • CVE-2023-40548 — tejmbushje e numrit tĂ« plotĂ« nĂ« funksionin verify_sbat_section, qĂ« çon nĂ« tejmbushje buferi nĂ« sistemet 32-bitĂ«she.
  • CVE-2023-40546 — lexim i memories jashtĂ« kufijve tĂ« buferit gjatĂ« shfaqjes sĂ« mesazheve tĂ« gabimit pĂ«rmes funksionit LogError().
  • CVE-2023-40549 — lexim i memories jashtĂ« kufijve tĂ« buferit gjatĂ« pĂ«rpunimit nĂ« funksionin verify_buffer_authenticode() tĂ« njĂ« skedari PE tĂ« formuar posaçërisht.
  • CVE-2023-40550 — lexim i memories jashtĂ« kufijve tĂ« buferit nĂ« funksionin verify_buffer_sbat().
  • CVE-2023-40551 — lexim i memories jashtĂ« kufijve tĂ« buferit gjatĂ« analizimit tĂ« skedarĂ«ve nĂ« formatin MZ.

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster