Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Reptar, Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°ΡŽΡ‰Π°Ρ процСссоры Intel

Вэвис ΠžΡ€ΠΌΠ°Π½Π΄ΠΈ (Tavis Ormandy), ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ бСзопасности ΠΈΠ· ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Google, выявил Π½ΠΎΠ²ΡƒΡŽ ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ (CVE-2023-23583) Π² процСссорах Intel, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΡƒΡŽ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠ΅ имя Reptar ΠΈ Π² основном ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΡƒΡŽ ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ для ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Ρ… систСм, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ позволяСт Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ зависаниС ΠΈΠ»ΠΈ Π°Π²Π°Ρ€ΠΈΠΉΠ½ΡƒΡŽ остановку Ρ€Π°Π±ΠΎΡ‚Ρ‹ систСмы ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π² Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… гостСвых систСмах ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. Для тСстирования своих систСм ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°, ΡΠΎΠ·Π΄Π°ΡŽΡ‰Π°Ρ условия для проявлСния уязвимости.

ВСорСтичСски, ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использована для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ с Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅Π³ΠΎ Π΄ΠΎ Π½ΡƒΠ»Π΅Π²ΠΎΠ³ΠΎ ΠΊΠΎΠ»ΡŒΡ†Π° Π·Π°Ρ‰ΠΈΡ‚Ρ‹ (CPL0) ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΉ, Π½ΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ сцСнарий ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» подтвСрТдСния Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΠΈΠ·-Π·Π° трудностСй ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π½Π° ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅. ВнутрСнняя ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π² Intel Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π»Π° ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования уязвимости для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… условиях.

По Π΄Π°Π½Π½Ρ‹ΠΌ исслСдоватСля ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ присутствуСт Π² сСмСйствах процСссоров Intel Ice Lake, Rocket Lake, Tiger Lake, Raptor Lake, Alder Lake ΠΈ Sapphire Rapids. Π’ ΠΎΡ‚Ρ‡Ρ‘Ρ‚Π΅ Intel упоминаСтся, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° проявляСтся начиная с 10 поколСния (Ice Lake) процСссоров Intel Core ΠΈ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅Π³ΠΎ поколСния Xeon Scalable, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π² процСссорах Xeon E/D/W (Ice Lake, Skylake, Haswell, Broadwell, Skylake, Sapphire Rapids, Emerald Rapids, Cascade Lake, Cooper Lake, Comet Lake, Rocket Lake) ΠΈ Atom (Apollo Lake, Jasper Lake, Arizona Beach, Alder Lake, Parker Ridge, Snow Ridge, Elkhart Lake ΠΈ Denverton). РассматриваСмая ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ устранСна Π²ΠΎ Π²Ρ‡Π΅Ρ€Π°ΡˆΠ½Π΅ΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ΄Π°20231114.

Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Π° Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΌ стСчСнии ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹Π½Ρ‹Ρ… ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π² Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ инструкции «REP MOVSB» кодируСтся с ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½Ρ‹ΠΌ прСфиксом «REX», Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΌΡƒ повСдСнию. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π±Ρ‹Π»Π° выявлСна Π² Ρ…ΠΎΠ΄Π΅ тСстирования ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½Ρ‹Ρ… прСфиксов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ тСорСтичСски Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ, Π½ΠΎ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΈ ΠΊ странным эффСктам, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ бСзусловных ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ² ΠΈ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡŽ сохранСния указатСля Π² инструкциях xsave ΠΈ call. Π”Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΠΉ Ρ€Π°Π·Π±ΠΎΡ€ ΠΏΠΎΠΊΠ°Π·Π°Π», Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ прСфикса для инструкции «REP MOVSB» Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ содСрТимого Π±ΡƒΡ„Π΅Ρ€Π° ROB (ReOrder Buffer), примСняСмого для упорядочСния инструкций.

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ ошибка Π²Ρ‹Π·Π²Π°Π½Π° Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΌ вычислСниСм Ρ€Π°Π·ΠΌΠ΅Ρ€Π° инструкции «MOVSB», Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡŽ адрСсации инструкций, записанных Π² Π±ΡƒΡ„Π΅Ρ€ ROB послС MOVSB с ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½Ρ‹ΠΌ прСфиксом, ΠΈ ΡΠΌΠ΅Ρ‰Π΅Π½ΠΈΡŽ указатСля Π½Π° инструкции. Подобная рассинхронизация ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… вычислСний с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ восстановлСниСм цСлостного состояния. Но Ссли Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ сбой ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ядрах ΠΈΠ»ΠΈ SMT-ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ достаточного ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΎΠ³ΠΎ состояния для Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎΠΉ остановки Ρ€Π°Π±ΠΎΡ‚Ρ‹.

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