Удалённая ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π² ядрС Linux, ΠΏΡ€ΠΎΡΠ²Π»ΡΡŽΡ‰Π°ΡΡΡ ΠΏΡ€ΠΈ использовании ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° TIPC

Π’ ΠΌΠΎΠ΄ΡƒΠ»Π΅ ядра Linux, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρƒ сСтСвого ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° TIPC (Transparent Inter-process Communication), выявлСна ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ (CVE-2022-0435), ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ свой ΠΊΠΎΠ΄ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ядра Ρ‡Π΅Ρ€Π΅Π· ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π½ΠΎΠ³ΠΎ сСтСвого ΠΏΠ°ΠΊΠ΅Ρ‚Π°. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ систСмы с Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹ΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ ядра tipc.ko ΠΈ настроСнным стСком TIPC, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² кластСрах ΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π½Π΅ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½ Π² нСспСциализированных дистрибутивах Linux.

ΠžΡ‚ΠΌΠ΅Ρ‡Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ сборкС ядра Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ «CONFIG_FORTIFY_SRC=y» (примСняСтся Π² RHEL), Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‰Π΅ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π³Ρ€Π°Π½ΠΈΡ† Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ memcpy(), эксплуатация ограничиваСтся Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎΠΉ остановкой Ρ€Π°Π±ΠΎΡ‚Ρ‹ (ядро Π²ΠΏΠ°Π΄Π°Π΅Ρ‚ Π² состояниС panic). ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ ΠΈ ΠΏΡ€ΠΈ ΡƒΡ‚Π΅Ρ‡ΠΊΠ΅ свСдСний ΠΎ ΠΊΠ°Π½Π°Ρ€Π΅Π΅Ρ‡Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΊΠ°Ρ…, примСняСмых для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ стСка, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использована для ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ выполнСния ΠΊΠΎΠ΄Π° с ΠΏΡ€Π°Π²Π°ΠΌΠΈ ядра. Π’Ρ‹ΡΠ²ΠΈΠ²ΡˆΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ исслСдоватСли Π·Π°ΡΠ²Π»ΡΡŽΡ‚, Ρ‡Ρ‚ΠΎ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° эксплуатации Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½Π° ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ раскрыта послС повсСмСстного устранСния уязвимости Π² дистрибутивах.

Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Π° ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ стСка, происходящСм ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ поля с числом ΡƒΠ·Π»ΠΎΠ² участников Π΄ΠΎΠΌΠ΅Π½Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ 64. Для хранСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΡƒΠ·Π»ΠΎΠ² Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ tipc.ko ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ фиксированный массив «u32 members[64]», Π½ΠΎ Π² процСссС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ Π½ΠΎΠΌΠ΅Ρ€Π° ΡƒΠ·Π»Π° Π½Π΅ выполняСтся ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° значСния «member_cnt», Ρ‡Ρ‚ΠΎ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ значСния большС 64 для ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ пСрСзаписи Π΄Π°Π½Π½Ρ‹Ρ… Π² области памяти, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π² стСкС послС структуры «dom_bef».

ΠŸΡ€ΠΈΠ²ΠΎΠ΄ΡΡ‰Π°Ρ ΠΊ уязвимости ошибка Π±Ρ‹Π»Π° внСсСна 15 июня 2016 Π³ΠΎΠ΄Π° ΠΈ вошла Π² состав ядра Linux 4.8. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ устранСна Π² выпусках ядра Linux 5.16.9, 5.15.23, 5.10.100, 5.4.179, 4.19.229, 4.14.266 ΠΈ 4.9.301. Π’ ядрах Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° дистрибутивов ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΠΎΠΊΠ° остаётся нСисправлСнной: RHEL, Debian, Ubuntu, SUSE, Fedora, Gentoo, Arch Linux.

ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» TIPC ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Ericsson, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ мСТпроцСссного взаимодСйствия Π² кластСрС ΠΈ активируСтся Π³Π»Π°Π²Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π½Π° ΡƒΠ·Π»Π°Ρ… кластСров. TIPC ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠΎΠ²Π΅Ρ€Ρ… Ethernet, Ρ‚Π°ΠΊ ΠΈ ΠΏΠΎΠ²Π΅Ρ€Ρ… UDP (сСтСвой ΠΏΠΎΡ€Ρ‚ 6118). Π’ случаС Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎΠ²Π΅Ρ€Ρ… Ethernet Π°Ρ‚Π°ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π° ΠΈΠ· локальной сСти, Π° ΠΏΡ€ΠΈ использовании UDP — ΠΈΠ· глобальной сСти, Ссли ΠΏΠΎΡ€Ρ‚ Π½Π΅ ΠΏΡ€ΠΈΠΊΡ€Ρ‹Ρ‚ мСТсСтСвым экраном. Атака Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π° Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ хоста. Для Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ TIPC Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° модуля ядра tipc.ko ΠΈ настройка привязки ΠΊ сСтСвому интСрфСйсу ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ netlink ΠΈΠ»ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ tipc.

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