Удалённая ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π² прослойкС Shim, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ UEFI Secure Boot

Π’ прослойкС Shim, примСняСмой Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ Linux-дистрибутивов для Π²Π΅Ρ€ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ UEFI Secure Boot, выявлСна ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ (CVE-2023-40547), которая ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠΌΡƒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ ΠΊΠΎΠ΄Π° ΠΈ ΠΎΠ±Ρ…ΠΎΠ΄Ρƒ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π²Π΅Ρ€ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ UEFI Secure Boot. ΠΡ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠΉ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ HTTP-сСрвСр, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ обращаСтся Shim, ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚, приводящий ΠΊ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ записи Π² ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Π·Π° Π³Ρ€Π°Π½ΠΈΡ†Ρƒ Π±ΡƒΡ„Π΅Ρ€Π° для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ выполнСния ΠΊΠΎΠ΄Π° Π½Π° Ρ€Π°Π½Π½Π΅ΠΌ этапС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ.

Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Π° ошибкой Π² ΠΊΠΎΠ΄Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΠΎ HTTP, которая проявляСтся ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Ρ… ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ², Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Ρ‘Π½Π½Ρ‹Ρ… HTTP-сСрвСром, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ обращаСтся shim. Π Π΅ΠΆΠΈΠΌ HTTPBoot Π² Shim поддСрТиваСтся с 2016 Π³ΠΎΠ΄Π° ΠΈ позволяСт ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΏΠΎ сСти, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» HTTP для извлСчСния Ρ„Π°ΠΉΠ»Π° c Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠΎΠΌ, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΌ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ этапС. Shim ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² Ρ‡Π΅Ρ€Π΅Π· HTTP выдСляСт Π±ΡƒΡ„Π΅Ρ€ для ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, учитывая Π½Π΅ фактичСский Ρ€Π°Π·ΠΌΠ΅Ρ€ Π΄Π°Π½Π½Ρ‹Ρ…, Π° Ρ€Π°Π·ΠΌΠ΅Ρ€, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π² HTTP-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ «Content-Lenght». БоотвСтствСнно, Π²Π΅Ρ€Π½ΡƒΠ² Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ Content-Lenght мСньшСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ записи хвоста запроса Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ Π·Π° Π³Ρ€Π°Π½ΠΈΡ†Π΅ΠΉ Π±ΡƒΡ„Π΅Ρ€Π°.

Shim Π·Π°Π²Π΅Ρ€Π΅Π½ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ подписью Microsoft ΠΈ Π²Π΅Ρ€ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ GRUB2 собствСнным сСртификатом, Ρ‡Ρ‚ΠΎ позволяСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ дистрибутивов Π½Π΅ Π·Π°Π²Π΅Ρ€ΡΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ядра ΠΈ GRUB Π² Microsoft. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π² Shim Π΄Π°Ρ‘Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ вклинится Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ довСрия ΠΏΡ€ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Secure Boot ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π·Π° дальнСйшим процСссом Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ОБ, ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы ΠΈ ΠΎΠ±Ρ…ΠΎΠ΄Π° Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Lockdown.

Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ устранСна Π² выпускС Shim 15.8, Π½ΠΎ для ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ блокирования Π°Ρ‚Π°ΠΊΠΈ Ρ‡Π΅Ρ€Π΅Π· Shim трСбуСтся завСрСния Π½ΠΎΠ²ΠΎΠΉ вСрсии Π² Microsoft ΠΈ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ Π΅Ρ‘ Π² дистрибутивах. Бтатус устранСния уязвимости Π² дистрибутивах ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ Π½Π° Π΄Π°Π½Π½Ρ‹Ρ… страницах: Debian, Ubuntu, SUSE, RHEL, Fedora. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π±Π΅Π· ΠΎΡ‚Π·Ρ‹Π²Π° подписи ΠΊ старой вСрсии исправлСниС бСссмыслСнно, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ для ΠΊΠΎΠΌΠΏΡ€ΠΎΠΌΠ΅Ρ‚Π°Ρ†ΠΈΠΈ UEFI Secure Boot ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½Ρ‹ΠΉ Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒ с уязвимым выпуском Shim. Но ΠΎΡ‚Π·Ρ‹Π² подписи ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ нСвозмоТности Π²Π΅Ρ€ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ дистрибутивов, ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‰ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ старый выпуск Shim.

Для блокирования уязвимости Π±Π΅Π· ΠΎΡ‚Π·Ρ‹Π²Π° Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ подписи дистрибутивы ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ SBAT (UEFI Secure Boot Advanced Targeting), ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° для GRUB2, shim ΠΈ fwupd Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ популярных дистрибутивов Linux. SBAT Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ совмСстно с Microsoft ΠΈ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² исполняСмыС Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² UEFI Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅, ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π΅, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ ΠΈ вСрсии. Π£ΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ Π·Π°Π²Π΅Ρ€ΡΡŽΡ‚ΡΡ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ подписью ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ Π² списки Ρ€Π°Π·Ρ€Π΅ΡˆΡ‘Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Π·Π°ΠΏΡ€Π΅Ρ‰Ρ‘Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² для UEFI Secure Boot.

SBAT позволяСт Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ использованиС Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ подписи для ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² вСрсий ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π±Π΅Π· нСобходимости ΠΎΡ‚Π·Ρ‹Π²Π° ΠΊΠ»ΡŽΡ‡Π΅ΠΉ для Secure Boot. Π‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ уязвимостСй Ρ‡Π΅Ρ€Π΅Π· SBAT Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ использования списка ΠΎΡ‚ΠΎΠ·Π²Π°Π½Π½Ρ‹Ρ… сСртификатов UEFI (dbx), Π° производится Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π·Π°ΠΌΠ΅Π½Ρ‹ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ ΠΊΠ»ΡŽΡ‡Π° для формирования подписСй ΠΈ обновлСния GRUB2, shim ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… поставляСмых дистрибутивами Π·Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½Ρ‹Ρ… Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ΠΎΠ².

ΠšΡ€ΠΎΠΌΠ΅ рассмотрСнной уязвимости Π² Shim 15.8 Ρ‚Π°ΠΊΠΆΠ΅ исправлСно нСсколько ΠΌΠ΅Π½Π΅Π΅ опасных ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, эксплуатируСмых локально:

  • CVE-2023-40548 — цСлочислСнноС ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ verify_sbat_section, приводящСС ΠΊ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ Π±ΡƒΡ„Π΅Ρ€Π° Π½Π° 32-разрядных систСмах.
  • CVE-2023-40546 — Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈΠ· области памяти Π²Π½Π΅ Π±ΡƒΡ„Π΅Ρ€Π° ΠΏΡ€ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π΅ сообщСний ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… Ρ‡Π΅Ρ€Π΅Π· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ LogError().
  • CVE-2023-40549 — Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈΠ· области памяти Π²Π½Π΅ Π±ΡƒΡ„Π΅Ρ€Π° ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ verify_buffer_authenticode() ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ PE.
  • CVE-2023-40550 — Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈΠ· области памяти Π²Π½Π΅ Π±ΡƒΡ„Π΅Ρ€Π° Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ verify_buffer_sbat().
  • CVE-2023-40551 — Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈΠ· области памяти Π²Π½Π΅ Π±ΡƒΡ„Π΅Ρ€Π° ΠΏΡ€ΠΈ Ρ€Π°Π·Π±ΠΎΡ€Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ MZ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru