ΠΡΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠΉ Π² ΡΠ΄ΡΠ΅ 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