Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ StackRot Π² ядрС Linux, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ свои ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹ΠΉ Π² ядрС Linux 6.1 ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ VMA (Virtual Memory Area) со структуры Π΄Π°Π½Π½Ρ‹Ρ… «red-black tree» Π½Π° «maple tree» ΠΏΡ€ΠΈΠ²Ρ‘Π» ΠΊ появлСнию уязвимости (CVE-2023-3269), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅ΠΉ Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ выполнСния своСго ΠΊΠΎΠ΄Π° с ΠΏΡ€Π°Π²Π°ΠΌΠΈ ядра. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ присвоСно ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠ΅ имя StackRot, проявляСтся начиная с выпуска ядра 6.1 ΠΈ устранСна Π² обновлСниях 6.4.1, 6.3.11 ΠΈ 6.1.37.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° «maple tree» прСдставляСт собой Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ B-tree, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ ΠΈΠ½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡŽ ΠΏΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ спроСктированный для эффСктивного использования кэша соврСмСнных процСссоров. По ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с «red-black tree» ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ «maple tree» позволяСт Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Π±ΠΎΠ»Π΅Π΅ высокой ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Π° ошибкой Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ стСка — Π² структурС «maple tree», ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ ΠΏΡ€ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ областями Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ памяти Π² ядрС, Π·Π°ΠΌΠ΅Π½Π° ΡƒΠ·Π»Π° Π² Π΄Π΅Ρ€Π΅Π²Π΅ ΠΌΠΎΠ³Π»Π° ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ Π±Π΅Π· выставлСния Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Π½Π° запись, Ρ‡Ρ‚ΠΎ создавало условия для обращСния ΠΊ области памяти послС Π΅Ρ‘ освобоТдСния (use-after-free).

Π­ΠΊΡΠΏΠ»ΡƒΠ°Ρ‚Π°Ρ†ΠΈΡŽ уязвимости услоТняло Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΡƒΠ·Π»Ρ‹ Π² структурС «maple tree» ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°ΡŽΡ‚ΡΡ Π² ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ с использованиСм callback-Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² с Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ RCU (Read-copy-update). Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, исслСдоватСлям ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΠΏΡ€Π΅ΠΎΠ΄ΠΎΠ»Π΅Ρ‚ΡŒ возникшиС трудности ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ эксплоит, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΡŽΡ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΊΠΎΠ½Ρ†Π΅ июля, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ врСмя ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ свои систСмы. Эксплуатация Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Π² ΠΏΠΎΡ‡Ρ‚ΠΈ Π²ΠΎ всСх конфигурациях ядра ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ лишь ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ.

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