Уязвимости Π² MMIO ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π½Π° процСсоритС Π½Π° Intel

Intel Ρ€Π°Π·ΠΊΡ€ΠΈ информация Π·Π° Π½ΠΎΠ² клас ΠΈΠ·Ρ‚ΠΈΡ‡Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Ρ‡Ρ€Π΅Π· ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΈ структури Π½Π° процСсори, ΠΊΠΎΠΈΡ‚ΠΎ позволяват Ρ‡Ρ€Π΅Π· ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° MMIO (Memory Mapped Input Output) Π΄Π° сС ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈ информацията, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π° Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ CPU ядра. НапримСр, уязвимоститС позволяват ΠΈΠ·Π²Π»ΠΈΡ‡Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈ процСси, Intel SGX Π°Π½ΠΊΠ»Π°Π²ΠΈ ΠΈΠ»ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈ машини. УязвимоститС са спСцифични само Π·Π° процСсоритС Π½Π° Intel; процСсори ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈ Π½Π΅ са засСгнати ΠΎΡ‚ уязвимоститС.

УязвимоститС сС появяват Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ процСсори Π½Π° Intel, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ процСсори, Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΈ Haswell, Skylake, IceLake, Broadwell, Lakefield, Kabylake, Cometlake ΠΈ Rocketlake, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ ΡΡŠΡ€Π²ΡŠΡ€Π½ΠΈ процСсори Xeon EP/EX, Scalable ΠΈ някои Atom. Π—Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ Π½Π° Π°Ρ‚Π°ΠΊΠ° Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ MMIO, ΠΊΠΎΠΉΡ‚ΠΎ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ Π² систСми Π·Π° виртуализация, ΠΊΠΎΠΈΡ‚ΠΎ прСдоставят Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ MMIO Π·Π° систСми Π·Π° гости, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π°Π½ΠΈ ΠΎΡ‚ нападатСля. ΠšΠΎΡ€Π΅ΠΊΡ†ΠΈΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° ΠΈ Π·Π° систСми, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‰ΠΈ ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½ΠΈ Π°Π½ΠΊΠ»Π°Π²ΠΈ Intel SGX (Software Guard Extensions).

Π‘Π»ΠΎΠΊΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° уязвимостта изисква ΠΊΠ°ΠΊΡ‚ΠΎ актуализация Π½Π° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ΄, Ρ‚Π°ΠΊΠ° ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° Π½Π° софтуСра, Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° инструкцията VERW Π·Π° изчистванС Π½Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΈΡ‚Π΅ Π±ΡƒΡ„Π΅Ρ€ΠΈ ΠΏΡ€ΠΈ Π²Ρ€ΡŠΡ‰Π°Π½Π΅ ΠΎΡ‚ ядрото към потрСбитСлското пространство ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅ Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» към систСмата Π·Π° гости. Подобна Π·Π°Ρ‰ΠΈΡ‚Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈ Π·Π° Π±Π»ΠΎΠΊΠΈΡ€Π°Π½Π΅ Π½Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½ΠΈ ΠΏΠΎ-Ρ€Π°Π½ΠΎ Π°Ρ‚Π°ΠΊΠΈ Π½Π° класовСтС MDS (ΠΈΠ·Π²Π°Π΄ΠΊΠ° ΠΎΡ‚ ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΈ Π΄Π°Π½Π½ΠΈ), SRBDS (ΠΈΠ·Π²Π°Π΄ΠΊΠ° ΠΎΡ‚ спСциалСн Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€ Π½Π° Π±ΡƒΡ„Π΅Ρ€Π½ΠΈ Π΄Π°Π½Π½ΠΈ) ΠΈ TAA (асинхронно ΠΏΡ€Π΅ΠΊΡŠΡΠ²Π°Π½Π΅ Π½Π° транзакцията).

ΠžΡ‚ страна Π½Π° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° внСдряванС Π½Π° Π·Π°Ρ‰ΠΈΡ‚Π°, бяха ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈ Π² актуализацията Π½Π° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ΄Π° Π·Π° ΠΌΠ°ΠΉ Π·Π° процСсори Π½Π° Intel (IPU 2022.1). Π’ ядрото Π½Π° Linux Π·Π°Ρ‰ΠΈΡ‚Π°Ρ‚Π° срСщу Π½ΠΎΠ² клас Π°Ρ‚Π°ΠΊΠΈ Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° във вСрсии 5.18.5, 5.15.48, 5.10.123, 5.4.199, 4.19.248, 4.14.284 ΠΈ 4.9.319. Π—Π° Π΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅ ΠΈΠ·Π»Π°Π³Π°Π½Π΅Ρ‚ΠΎ Π½Π° систСмата Π½Π° уязвимости Π² MMIO ΠΈ Π΄Π° ΠΎΡ†Π΅Π½ΠΈΡ‚Π΅ активността Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ Π·Π°Ρ‰ΠΈΡ‚Π½ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΈ, Ρ„Π°ΠΉΠ»ΡŠΡ‚ β€ž/sys/devices/system/cpu/vulnerabilities/mmio_stale_dataβ€œ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ към ядрото Π½Π° Linux. Π—Π° Π΄Π° сС ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π° Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π·Π°Ρ‰ΠΈΡ‚Π°, Π΅ Π²Π½Π΅Π΄Ρ€Π΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ΡŠΡ‚ Π·Π° Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ядрото β€žmmio_stale_dataβ€œ, ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡ€ΠΈΠ΅ΠΌΠ° стойноститС β€žΠΏΡŠΠ»Π΅Π½β€œ (позволява почистванС Π½Π° Π±ΡƒΡ„Π΅Ρ€ΠΈ ΠΏΡ€ΠΈ прСмСстванС Π² потрСбитСлско пространство ΠΈ във VM), β€žΠΏΡŠΠ»Π΅Π½, nosmtβ€œ ( ΠΊΠ°Ρ‚ΠΎ β€žΠΏΡŠΠ»Π΅Π½β€œ + Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π° SMT/Hyper- Threads) ΠΈ β€žΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½β€œ (Π·Π°Ρ‰ΠΈΡ‚Π°Ρ‚Π° Π΅ Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½Π°). ΠŸΡ€Π΅Π΄Π»Π°Π³Π°Ρ‚ сС ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ ΠΊΠΎΡ€Π΅ΠΊΡ†ΠΈΠΈ Π·Π° Ρ…ΠΈΠΏΠ΅Ρ€Π²Π°ΠΉΠ·ΠΎΡ€Π° Xen ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° систСма Qubes.

Π‘ΡŠΡ‰Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° идСнтифицирания клас уязвимости Π΅, Ρ‡Π΅ някои ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ водят Π΄ΠΎ ΠΊΠΎΠΏΠΈΡ€Π°Π½Π΅ ΠΈΠ»ΠΈ прСмСстванС Π½Π° Π΄Π°Π½Π½ΠΈ, останали слСд изпълнСниС Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ процСсорни ядра ΠΎΡ‚ Π΅Π΄ΠΈΠ½ ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅Π½ Π±ΡƒΡ„Π΅Ρ€ Π² Π΄Ρ€ΡƒΠ³. УязвимоститС Π² MMIO позволяват Ρ‚Π΅Π·ΠΈ ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»Π΅Π½ΠΈ ΠΎΡ‚ ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½ΠΈ ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΈ Π±ΡƒΡ„Π΅Ρ€ΠΈ към Π²ΠΈΠ΄ΠΈΠΌΠΈ Π·Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ рСгистри ΠΈΠ»ΠΈ CPU Π±ΡƒΡ„Π΅Ρ€ΠΈ. Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½ΠΈ са Ρ‚Ρ€ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π·Π° ΠΈΠ·Π²Π»ΠΈΡ‡Π°Π½Π΅ Π½Π° ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΈ Π΄Π°Π½Π½ΠΈ Ρ‡Ρ€Π΅Π· MMIO:

  • DRPW (Device Register Partial Write, CVE-2022-21166) Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅ Π½Π° записи Π² някои MMIO рСгистри. Ако Ρ€Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° записванитС Π΄Π°Π½Π½ΠΈ Π΅ ΠΏΠΎ-малък ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π° Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€Π°, Ρ‚ΠΎΠ³Π°Π²Π° ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½Π°Ρ‚Π° информация ΠΎΡ‚ Π±ΡƒΡ„Π΅Ρ€ΠΈΡ‚Π΅ Π·Π° попълванС ΡΡŠΡ‰ΠΎ сС ΠΊΠΎΠΏΠΈΡ€Π° Π² Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€Π°. Π’ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Ρ‚ΠΎΠ²Π° процСс, ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€Π° нСпълна опСрация Π·Π° запис Π² Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€Π° MMIO, ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈ Π΄Π°Π½Π½ΠΈ, оставащи Π² ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΈΡ‚Π΅ Π±ΡƒΡ„Π΅Ρ€ΠΈ ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΈΠ·Π²ΡŠΡ€ΡˆΠ΅Π½ΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ процСсорни ядра.
  • SBDS (Π’Π·Π΅ΠΌΠ°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠ±ΠΈ ΠΎΡ‚ сподСлСни Π±ΡƒΡ„Π΅Ρ€ΠΈ, CVE-2022-21125) Π΅ ΠΈΠ·Ρ‚ΠΈΡ‡Π°Π½Π΅ Π½Π° ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ ΠΎΠ±Π²ΡŠΡ€Π·Π°Π½ с ядрото Π±ΡƒΡ„Π΅Ρ€ Π·Π° попълванС Π² Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚ ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΈ Π±ΡƒΡ„Π΅Ρ€ΠΈ, ΠΎΠ±Ρ‰ΠΈ Π·Π° всички ядра.
  • SBDR (Shared Buffers Data Read, CVE-2022-21123) – ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π° SBDS, Π½ΠΎ сС Ρ€Π°Π·Π»ΠΈΡ‡Π°Π²Π° ΠΏΠΎ Ρ‚ΠΎΠ²Π°, Ρ‡Π΅ ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΠΏΠΎΠΏΠ°Π΄Π½Π°Ρ‚ Π² структуритС Π½Π° процСсора, Π²ΠΈΠ΄ΠΈΠΌΠΈ Π·Π° прилоТСнията. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅ с SBDS ΠΈ SBDR сС появяват само Π½Π° процСсори Π·Π° клиСнтски систСми ΠΈ Π½Π° сСмСйството ΡΡŠΡ€Π²ΡŠΡ€ΠΈ Intel Xeon E3.

Уязвимости Π² MMIO ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π½Π° процСсоритС Π½Π° Intel


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

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€