Π’ процСссорах AMD Π½Π° Π±Π°Π·Π΅ ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ Zen+ ΠΈ Zen 2 ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π° ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ класса Meltdown

Π“Ρ€ΡƒΠΏΠΏΠ° исслСдоватСлСй ΠΈΠ· ВСхничСского унивСрситСта Π”Ρ€Π΅Π·Π΄Π΅Π½Π° выявила ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ (CVE-2020-12965) Π² процСссорах AMD Π½Π° Π±Π°Π·Π΅ ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ Zen+ ΠΈ Zen 2, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΡƒΡŽ ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ Π°Ρ‚Π°ΠΊΡƒ класса Meltdown. Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π»ΠΎΡΡŒ, Ρ‡Ρ‚ΠΎ процСссоры AMD Zen+ ΠΈ Zen 2 Π½Π΅ ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½Ρ‹ уязвимости Meltdown, Π½ΠΎ исслСдоватСлями Π±Ρ‹Π»Π° выявлСна ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ, приводящая ΠΊ спСкулятивному ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΡŽ ΠΊ Π·Π°Ρ‰ΠΈΡ‰Ρ‘Π½Π½Ρ‹ΠΌ областям памяти ΠΏΡ€ΠΈ использовании нСканоничСских Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… адрСсов.

АрхитСктура AMD64 ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ использованиС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²Ρ‹Ρ… 48 Π±ΠΈΡ‚ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ адрСса ΠΈ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΡ‚Π°Π²ΡˆΠΈΡ…ΡΡ 16 Π±ΠΈΡ‚. ΠŸΡ€ΠΈ этом ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π±ΠΈΡ‚Ρ‹ с 48 ΠΏΠΎ 63 всСгда Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 47 Π±ΠΈΡ‚Π° (Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ Π±ΠΈΡ‚Π°). Π’ случаС Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ условия ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ обращСния ΠΏΠΎ адрСсу с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ значСниями Π²Π΅Ρ€Ρ…Π½ΠΈΡ… Π±ΠΈΡ‚ΠΎΠ² процСссор Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰Π΅Π΅ΡΡ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π²Π΅Ρ€Ρ…Π½ΠΈΡ… Π±ΠΈΡ‚ΠΎΠ² ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΡŽ доступного адрСсного пространства Π½Π° Π΄Π²Π° Π±Π»ΠΎΠΊΠ° — Π½ΠΈΠΆΠ½ΠΈΠΉ (ΠΎΡ‚ 0 Π΄ΠΎ 00007FFFFFFFFFFF), Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½ΠΈΠ΅ Π±ΠΈΡ‚Ρ‹ ΠΎΠ±Π½ΡƒΠ»Π΅Π½Ρ‹, ΠΈ Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ (ΠΎΡ‚ FFFF800000000000 Π΄ΠΎ FFFFFFFFFFFFFFFF), Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ всС Π²Π΅Ρ€Ρ…Π½ΠΈΠ΅ Π±ΠΈΡ‚Ρ‹ выставлСны Π² 1.

АдрСса ΠΏΠΎΠ΄ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠ΄ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ каноничСскими, Π° Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Π΅ адрСса с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ содСрТимым Π²Π΅Ρ€Ρ…Π½ΠΈΡ… Π±ΠΈΡ‚ΠΎΠ² — нСканоничСскими. НиТний Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ каноничСских адрСсов, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, выдСляСтся ΠΏΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Π΅ процСсса, Π° Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π΄Π°Π½Π½Ρ‹Ρ… ядра (доступ ΠΊ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ адрСсам ΠΈΠ· пространства ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ блокируСтся Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ раздСлСния ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ).

ΠšΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠ°Ρ ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Meltdown основываСтся Π½Π° Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² Ρ…ΠΎΠ΄Π΅ спСкулятивного выполнСния инструкций процСссор ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΎΠΉ области Π΄Π°Π½Π½Ρ‹Ρ…, послС Ρ‡Π΅Π³ΠΎ ΠΎΡ‚Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ выставлСнныС ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ Π·Π°ΠΏΡ€Π΅Ρ‰Π°ΡŽΡ‚ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΈΠ· процСсса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ спСкулятивно выполняСмый Π±Π»ΠΎΠΊ отдСляСтся ΠΎΡ‚ основного ΠΊΠΎΠ΄Π° условным ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… условиях всСгда срабатываСт, Π½ΠΎ ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π² условном ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ вычисляСмоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ процСссор Π½Π΅ Π·Π½Π°Π΅Ρ‚ Π²ΠΎ врСмя ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°ΡŽΡ‰Π΅Π³ΠΎ выполнСния ΠΊΠΎΠ΄Π°, осущСствляСтся спСкулятивноС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ всСх Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² вСтвлСния.

Π’Π°ΠΊ ΠΊΠ°ΠΊ для спСкулятивно выполняСмых ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎΡ‚ ΠΆΠ΅ кэш, Ρ‡Ρ‚ΠΎ ΠΈ для ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Ρ… инструкций, имССтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π² Ρ…ΠΎΠ΄Π΅ спСкулятивного выполнСния Π²Ρ‹ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² кэшС ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹, ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΠ΅ содСрТимоС ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π±ΠΈΡ‚ΠΎΠ² Π² Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΎΠΉ области памяти, ΠΈ Π·Π°Ρ‚Π΅ΠΌ Π² ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ выполняСмом ΠΊΠΎΠ΄Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· Π°Π½Π°Π»ΠΈΠ· Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ обращСния ΠΊ ΠΏΡ€ΠΎΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΈ Π½Π΅ ΠΏΡ€ΠΎΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π½ΠΎΠ²ΠΎΠΉ уязвимости, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½Ρ‹ процСссоры AMD Zen+ ΠΈ Zen 2, Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ CPU Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ спСкулятивноС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ ΠΈ записи, ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΡ…ΡΡ ΠΊ памяти с использованиСм нСдопустимых нСканоничСских адрСсов, просто игнорируя Π²Π΅Ρ€Ρ…Π½ΠΈΠ΅ 16 Π±ΠΈΡ‚. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π² процСссС спСкулятивного выполнСния ΠΊΠΎΠ΄Π° процСссор всСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½ΠΈΠΆΠ½ΠΈΠ΅ 48 Π±ΠΈΡ‚, Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° допустимости адрСса производится ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ. Если ΠΏΡ€ΠΈ трансляции нСканоничСского Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ адрСса Π² физичСский адрСс Π² Π±ΡƒΡ„Π΅Ρ€Π΅ ассоциативной трансляции (TLB) Π±ΡƒΠ΄Π΅Ρ‚ выявлСно совпадСниС каноничСской части адрСса, Ρ‚ΠΎ спСкулятивная опСрация load Π²Π΅Ρ€Π½Ρ‘Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±Π΅Π· ΡƒΡ‡Ρ‘Ρ‚Π° содСрТимого Π²Π΅Ρ€Ρ…Π½ΠΈΡ… 16 Π±ΠΈΡ‚, Ρ‡Ρ‚ΠΎ позволяСт ΠΎΠ±ΠΎΠΉΡ‚ΠΈ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ памяти ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ. Π’ послСдствии опСрация Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠ·Π½Π°Π½Π° нСдопустимой ΠΈ ΠΎΡ‚Π±Ρ€ΠΎΡˆΠ΅Π½Π°, Π½ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ памяти Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ осядут Π² кэшС.

Π’ Ρ…ΠΎΠ΄Π΅ экспСримСнта ΠΏΡ€ΠΈ использовании Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ опрСдСлСния содСрТимого кэша FLUSH+RELOAD исслСдоватСлям ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°Π½Π°Π» для скрытой ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… со ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ 125 Π±Π°ΠΉΡ‚ Π² сСкунду. ΠšΡ€ΠΎΠΌΠ΅ Ρ‡ΠΈΠΏΠΎΠ² AMD ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°Π΅Ρ‚ ΠΈ всС процСссоры Intel, ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½Π½Ρ‹Π΅ классичСской уязвимости Meltdown. Для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° Π°Ρ‚Π°ΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Ρ‚Π΅ ΠΆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π°Ρ‚Π°ΠΊΠΈ Meltdown, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ использованиС инструкций LFENCE. НапримСр, Ссли процСссор Intel Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΡƒΡŽ Π·Π°Ρ‰ΠΈΡ‚Ρƒ ΠΎΡ‚ Meltdown ΠΈΠ»ΠΈ Π² систСмС Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° программная Π·Π°Ρ‰ΠΈΡ‚Π°, Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π½Π΅ ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½Ρ‹ Π½ΠΎΠ²ΠΎΠΌΡƒ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρƒ Π°Ρ‚Π°ΠΊΠΈ.

ΠŸΡ€ΠΈ этом исслСдоватСли ΠΎΡ‚ΠΌΠ΅Ρ‡Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с процСссорами Intel Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° процСссоров AMD ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ провСдСния Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… Π°Ρ‚Π°ΠΊ, Π½ΠΎ Π½Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π² ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹ΠΌΠΈ Π°Ρ‚Π°ΠΊΠ°ΠΌΠΈ для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΈΡ… эффСктивности. Π’ частности, ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π°Ρ‚Π°ΠΊΠΈ Π½Π΅ позволяСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ содСрТимоС областСй памяти ядра ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… процСссов, Π° ограничиваСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌ Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, выполняСмым Π² ΠΎΠ΄Π½ΠΎΠΌ пространствС Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ памяти.

Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΈΠ· Π±Π΅Π· уязвимости ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ своим ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌ, Ρ‚ΠΎ с практичСской стороны ΠΌΠ΅Ρ‚ΠΎΠ΄ прСдставляСт интСрСс для ΠΎΠ±Ρ…ΠΎΠ΄Π° sandbox-изоляции ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²ΠΌΠ΅ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° Π² Ρ€Π°Π±ΠΎΡ‚Ρƒ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…, Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‰ΠΈΡ… Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стороннСго ΠΊΠΎΠ΄Π°, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ web-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ ΠΈ JIT-Π΄Π²ΠΈΠΆΠΊΠΈ. Π˜ΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΈΠ·ΡƒΡ‡ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½Π½ΠΎΡΡ‚ΡŒ Π°Ρ‚Π°ΠΊΠ΅ JavaScript-Π΄Π²ΠΈΠΆΠΊΠ° SpiderMonkey ΠΈ ядра Linux, Π½ΠΎ Π½Π΅ нашли уязвимых ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ ΠΊΠΎΠ΄Π°, ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ Π°Ρ‚Π°ΠΊΡƒ. Помимо Π°Ρ‚Π°ΠΊΠΈ Π½Π° прилоТСния ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ для форсирования нСдопустимых ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹ΠΌΠΈ элСмСнтами процСссора Π² процСссС эксплуатации Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹Ρ… уязвимостСй.

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