ืงืืืฆืช ืืืงืจืื ื-ETH ืฆืืจืื ืืืืชื ืืชืงืคื ืืืฉื ืขื ืื ืื ืื ืืืฆืืข ืกืคืงืืืืืื ืฉื ืืขืืจืื ืขืงืืคืื ืืืขืื, ืืืืคืฉืจืช ืืืืฅ ืืืืข ืืืืืจืื ืืืืื ืื ืืืจืื ืืชืงืคื ืขื ืืืขืจืืช ืืืืจืืช ืืืืื ืืช ืืืจืืืืืืืช. ืืคืืืขืืืืช ื ืงืจืืืช ืืฉื ืืงืื Retbleed (CVE-2022-29900, CVE-2022-29901) ืืื ืงืจืืืืช ืืืืืชื ืืืชืงืคืืช Spectre-v2. ืืืืื ืืกืชืื ืืืจืืื ืฉื ืืืฆืืข ืกืคืงืืืืืื ืฉื ืงืื ืฉืจืืจืืชื ืืขืช ืขืืืื ืืืจืืช "retur" (return), ืืฉืจ ืืืืื ืืช ืืืชืืืช ืืงืคืืฅ ืืืืืกื ืืช, ืืืงืื ืงืคืืฆื ืขืงืืคื ืืืืฆืขืืช ืืืจืืช "jmp", ืืขืื ืช ืืืชืืืช ื- ืืืืจืื ืื ืืืืจ CPU.
ืชืืงืฃ ืืืื ืืืฆืืจ ืชื ืืื ืืืืืื ืืขืืจ ืฉืืื ืืืืจืื ืืขืืจ ืืืืงื, ืกืคืงืืืืืื ืืืืฉ ืงืื ืฉืืื ื ืืกืืคืง ืขื ืืื ืืืืืงื ืฉื ืืคืขืืช ืืชืืื ืืช. ืืกืืคื ืฉื ืืืจ, ืืืขืื ืืงืืข ืฉืืืืื ืืขื ืฃ ืื ืืื ืืืฆืืง ืืืืืืจ ืืช ืืคืขืืื ืืืฆืื ืืืงืืจื, ืื ืื ืชืื ืื ืฉืืขืืืื ืืืืื ืืืฆืืข ืกืคืงืืืืืื ืืกืชืืืื ืืืืืจ ืืืืืื ืืืืืงืจื-ืืจืืืืงืืื ื. ืื ืืืืง ืฉืืืฆืข ืืืขืืช ื ืืืฉ ืืืืืจืื, ืืื ืืืืฆืืข ืืกืคืงืืืืืื ืฉืื ืืืืื ืืื ืฉื ืชืื ืื ืฉื ืงืจืื ืืืืืืจืื ืืืคืงืื ืืืืืื ืืืฉืืชืฃ.
ืืื ืืงืืืข ืืช ืื ืชืื ืื ืฉื ืืชืจื ืืืืืื ืืืืจ ืคืขืืืืช ืกืคืงืืืืืืืืช, ืชืืงืฃ ืืืื ืืืฉืชืืฉ ืืืื ืืงืืช ืฉื ืขืจืืฅ ืฆืืื ืืื ืืงืืืข ื ืชืื ืื ืฉืืืจืืื, ืืืื ื ืืชืื ืฉืื ืืืื ืืืื ื ืืืฉื ืื ืชืื ืื ืืืืืกื ืื ืืื ืืืืืกื ืื ืืืืืื. ืืื ืืืืฅ ืืืืข ืืืืืจืื ืืจืืช ืืจืฉืื ืืืจืช (ืืืืืื, ืืืืืจืื ืืืืื), ื ืขืฉื ืฉืืืืฉ ื"ืืืื'ืืื" - ืจืฆืคื ืคืงืืืืช ืืงืืืืื ืืงืจื ื, ืืืชืืืืื ืืงืจืืื ืกืคืงืืืืืืืช ืฉื ื ืชืื ืื ืืืืืืจืื ืืืชืื ืืชื ืืื ืืืฆืื ืืื ืฉื ืืชื ืืืฉืคืืข ืขื ืืื ืืชืืงืฃ.
ืืื ืืืื ืืคื ื ืืชืงืคืืช ืงืืืกืืืช ืืกืื Spectre ืืืฉืชืืฉืืช ืืืืจืืืช ืงืคืืฆื ืืืชื ืืช ืืขืงืืคืืช, ืจืื ืืขืจืืืช ืืืคืขืื ืืฉืชืืฉืืช ืืืื ืืงืช "retpoline", ืืืืืกืกืช ืขื ืืืืคืช ืคืขืืืืช ืงืคืืฆื ืขืงืืคืืช ืืืืจืื "ret", ืฉืขืืืจื ืืืขืืืื ืืฉืชืืฉืื ืืืืืืช ืืืืื ืืฆื ืืืกื ืืช ื ืคืจืืช. ืื ืืฉืชืืฉ ืืืืืง ืืืืื ืขื ืฃ. ืืืฉืจ ืจืืคืืืื ืืืฆื ืืฉื ืช 2018, ืืืืื ื ืื ืื ืืคืืืฆืืืช ืฉื ืืชืืืช ืืืืืช ื-Spectre ืืื ื ืืขืฉืืืช ืืืกืชืขืคืืช ืกืคืงืืืืืืืช ืืืืฆืขืืช ืืืจืืช "ret".
ืืืืงืจืื ืฉืคืืชืื ืืช ืฉืืืช ืืืชืงืคื ืฉื Retbleed ืืืืืื ืืคืฉืจืืช ืืืฆืืจ ืชื ืืื ืืืงืจื-ืืจืืืืงืืื ืืื ืืชืืืืช ืืขืืจ ืกืคืงืืืืืื ืืืืฆืขืืช ืืืจืืช "ret" ืืคืจืกืื ืืืื ืืืื ืื ืืืืืื ืจืฆืคื ืืืจืืืช (ืืืื'ืืื) ืืืชืืืืื ืื ืืฆืื ืืคืืืขืืช ืืงืจื ื ืืืื ืืงืก. ืฉืืื ืืชืืืืื ืชื ืืื ืืืื.
ืืืืื ืืืืงืจ, ืืืื ื ืืฆืื ืขืืืื ืืืืคืฉืจ, ืืืขืจืืืช ืขื ืืขืืื ืืื ืื, ืืืืฅ ื ืชืื ืื ืฉืจืืจืืชืืื ืืืืืจืื ืืืืื ืืชืืืื ืืืชื ืืืื ืืืจืื ืืืฉืชืืฉ ืืืืืจืืช ืฉื 219 ืืชืื ืืฉื ืืื ืืืืืง ืฉื 98%. ืืืขืืื AMD, ืืืขืืืืช ืฉื ืื ืืฆืื ืืืืื ืืืจืื - ืงืฆื ืืืืืคื ืืื 3.9 KB ืืฉื ืืื. ืืืืืื ืืขืฉืืช, ืื ื ืืจืืื ืืืฆื ืืืฉืชืืฉ ืื ืืฆืื ืืืืฆืข ืืื ืืงืืืข ืืช ืืชืืื ืฉื ืงืืืฅ /etc/shadow. ืืืขืจืืืช ืขื ืืขืืื ืืื ืื, ืืืชืงืคื ืืงืืืขืช ื-hash ืฉื ืกืืกืืช ืืืฉืชืืฉ ืืืกืืกืืช ืืืฆืขื ืชืื 28 ืืงืืช, ืืืืขืจืืืช ืขื ืืขืืื AMD - ืชืื 6 ืืงืืช.
ืืืชืงืคื ืืืฉืจื ืืืฉื ืืืจืืช 6-8 ืฉื ืืขืืื ืืื ืื ืฉืฉืืืจืจื ืืคื ื ืืจืืขืื ืืฉืืืฉื ืฉื 3 (ืืืื Skylake), ืืืขืืื AMD ืืืืืกืกืื ืขื ืืืงืจื-ืืจืืืืงืืืจืืช Zen 2019, Zen 1+ ื-Zen 1 ืฉืฉืืืจืจื ืืคื ื ืืจืืขืื ืืฉื ื ืฉื 2. ืืืืื ืืขืืืื ืืืฉืื ืืืชืจ ืืื AMD Zen2021 ื-Intel Alder Lake, ืืื ืื ืืืขืืื ARM, ืืืขืื ื ืืกืืช ืขื ืืื ืื ืื ืื ื ืืื ื ืงืืืืื. ืืืืืื, ืฉืืืืฉ ืืืืจืืืช IBRS (Indirect Branch Restricted Speculation) ืืกืืืข ืืืื ื ืืคื ื ืืชืงืคืืช.
ืขืจืืช ืฉืื ืืืื ืืืื ื ืขืืืจ ืืืืช ืืื ืืงืก ื-Xen hypervisor, ืืฉืจ ืืืกืื ืืช ืืืขืื ืืชืืื ื ืืืขืืืื ืืฉื ืื ืืืชืจ. ืืชืืงืื ืืืืฆืข ืขืืืจ ืืืืช ืืื ืืงืก ืืฉื ื 68 ืงืืฆืื, ืืืกืืฃ 1783 ืฉืืจืืช ืืืืืง 387 ืฉืืจืืช. ืืืจืื ืืฆืขืจ, ืืืื ื ืืืืืื ืืขืืืืืช ืชืงืืจื ืืฉืืขืืชืืืช - ืืืงืกืืื ืฉื ืขืจืืื ืขื ืืขืืื AMD ืืืื ืื, ืืืจืืื ืืืืฆืืขืื ืืืขืจืืช ื-14% ื-39%. ืขืืืฃ ืืืฉืชืืฉ ืืืื ื ืืืืืกืกืช ืขื ืืืจืืืช IBRS, ืืืืื ื ืืืืจืืช ืืืฉืื ืฉื ืืขืืื ืืื ืื ืื ืชืืืช ืืื ืืืืืช ืืื ืืงืก 4.19.
ืืืขืืื ืืื ืื, ืืืืคืช ืืชืืืืช ืืงืคืืฆื ืขืงืืคื ืกืคืงืืืืืืืช ืืชืืฆืขืช ืืืืืช ืืชืืื ื ืืืืคืืขื ืืืฉืจ ืืชืจืืฉืช ืืืืฉื ืืจื ืืืืื ืืชืืชืื (underflow) ื-Return Stack Buffer. ืืืฉืจ ืชื ืืื ืืืื ืืชืจืืฉืื, ืืืืจืื "ret" ืืชืืืื ืืืืื ืืืืืื ืืืืจืช ืืชืืืช ืืืื ืืื ืืืฉืืฉ ืืงืคืืฆืืช ืขืงืืคืืช ืจืืืืืช. ื ืืฆืื ืืืชืจ ืืืืฃ ืืงืืืืช ืืงืจื ื ืืืื ืืงืก ืืืืฆืจืื ืชื ืืื ืืืคืขืืช ืืจืืื ืืืืจืช ืืื ืื ืืืฉืื ืืืืฆืขืืช ืงืจืืืืช ืืขืจืืช.
ืืืขืืื AMD, ืืืฆืืข ืกืคืงืืืืืื ืฉื ืืืจืืช "ret" ืืชืืฆืข ืืื ืืชืืืืกืืช ืืืืืจ ืกืคืฆืืคื ืืืกืืื (Return Address Stack) ืืืืืืช ืืืืื ืืกื ืืฃ ืจืืื ืืืืจืื "ret" ืื ืืืืืจืช ืืงืจื, ืืื ืืกื ืืฃ ืขืงืืฃ. , ืืืืชืื, ืืฉืชืืฉ ืื ืชืื ืื ืืืืืื ืืขืืจืื ืขืงืืคืื. ืืชื ืืื ืืื, ื ืืชื ืื ืฆื ืืืขื ืื ืคืขืืืช "ืืืืฉ" ืฉื ืืชื ืืืืืข ืืืื ืืืืฆืขืืช ืงืจืืืช ืืขืจืืช.
ืื ืืกืฃ, ืืืืชื ืืขืื ื ืืกืคืช ืื ืืืขืืื AMD (CVE-2022-23825, Branch Type Confusion) ืืงืฉืืจื ืืืืืขืช ืขื ืคืื ืคืืงืืืืืื - ืชื ืืื ืืืืืื ืขื ืคืื ืืืืืื ืืืชืจืืฉ ืื ืืื ืืืจืืืช ืืขื ืฃ ืืืจืืฉืืช, ืื ืฉืืืคืฉืจ ืืืฉืคืืข ืขื ืืืืจ ืืืืื ืืขื ืฃ ืืื ืืืืจืื "ret". ืชืืื ื ืื ืืกืืืช ืืืืคื ืืฉืืขืืชื ืืช ืืืฉืื ืืืื ื ืืืืจืฉืช ื ืืงืื ืืงืืืื ืืืชืจ ืฉื ืืืืจ ืืืืื ืืขื ืฃ. ืืืกืคืช ืืื ื ืืืื ืืงืจื ื ืฆืคืืื ืืืืืื ืืช ืืชืงืืจื ื-209%.
ืืงืืจ: OpenNet.ru