Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π² подсистСмС iSCSI ядра Linux, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΏΠΎΠ΄Π½ΡΡ‚ΡŒ свои ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ

Π’ ΠΊΠΎΠ΄Π΅ подсистСмы iSCSI ΠΈΠ· состава ядра Linux выявлСна ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ (CVE-2021-27365), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌΡƒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ядра ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ root-ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ Π² систСмС. Для тСстирования доступСн Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ эксплоита. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ устранСна Π² обновлСниях ядра Linux 5.11.4, 5.10.21, 5.4.103, 4.19.179, 4.14.224, 4.9.260 ΠΈ 4.4.260. ОбновлСния ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² с ядром доступны Π² дистрибутивах Debian, Ubuntu, SUSE/openSUSE, Arch Linux ΠΈ Fedora. Для RHEL исправлСния ΠΏΠΎΠΊΠ° Π½Π΅ Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Ρ‹.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π²Ρ‹Π·Π²Π°Π½Π° ошибкой Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ iscsi_host_get_param() ΠΈΠ· состава модуля libiscsi, внСсённой Π΅Ρ‰Ρ‘ Π² 2006 Π³ΠΎΠ΄Ρƒ Π²ΠΎ врСмя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ подсистСмы iSCSI. Из-Π·Π° отсутствия Π΄ΠΎΠ»ΠΆΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ строковыС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ iSCSI, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ hostname ΠΈΠ»ΠΈ username, ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ PAGE_SIZE (4 ΠšΠ‘). Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ эксплуатирована Ρ‡Π΅Ρ€Π΅Π· ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Netlink-сообщСний, ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ iSCSI Π² значСния, ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°ΡŽΡ‰Π΅Π΅ PAGE_SIZE. ΠŸΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² Ρ‡Π΅Ρ€Π΅Π· sysfs ΠΈΠ»ΠΈ seqfs вызываСтся ΠΊΠΎΠ΄, ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‰ΠΈΠΉ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ sprintf для копирования Π² Π±ΡƒΡ„Π΅Ρ€, Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ€Π°Π²Π΅Π½ PAGE_SIZE.

Эксплуатация уязвимости Π² дистрибутивах зависит ΠΎΡ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ автоматичСской Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ модуля ядра scsi_transport_iscsi ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ создания сокСта NETLINK_ISCSI. Π’ дистрибутивах, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ загруТаСтся автоматичСски, Π°Ρ‚Π°ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π° нСзависимо ΠΎΡ‚ использования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ iSCSI. ΠŸΡ€ΠΈ этом для ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ примСнСния эксплоита Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ трСбуСтся рСгистрация ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ транспорта iSCSI. Π’ свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, для рСгистрации транспорта ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ядра ib_iser, Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΡ‹ΠΉ автоматичСски ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ создания Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ сокСта NETLINK_RDMA.

АвтоматичСская Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… для примСнСния эксплоита ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ поддСрТиваСтся Π² CentOS 8, RHEL 8 ΠΈ Fedora ΠΏΡ€ΠΈ установкС Π² систСмС ΠΏΠ°ΠΊΠ΅Ρ‚Π° rdma-core, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒΡŽ для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… популярных ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ устанавливаСтся Π² конфигурациях для Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… станций, сСрвСрных систСм с GUI ΠΈ хост-ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. ΠŸΡ€ΠΈ этом rdma-core Π½Π΅ устанавливаСтся ΠΏΡ€ΠΈ использовании сСрвСрной сборки, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² консольном Ρ€Π΅ΠΆΠΈΠΌΠ΅, ΠΈ ΠΏΡ€ΠΈ установкС минимального инсталляционного ΠΎΠ±Ρ€Π°Π·Π°. НапримСр, ΠΏΠ°ΠΊΠ΅Ρ‚ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² Π±Π°Π·ΠΎΠ²ΡƒΡŽ поставку Fedora 31 Workstation, Π½ΠΎ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½ Π² Fedora 31 Server. Debian ΠΈ Ubuntu ΠΌΠ΅Π½Π΅Π΅ ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠ°ΠΊΠ΅Ρ‚ rdma-core Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для Π°Ρ‚Π°ΠΊΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ядра Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ оборудования RDMA.

Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π² подсистСмС iSCSI ядра Linux, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΏΠΎΠ΄Π½ΡΡ‚ΡŒ свои ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ

Π’ качСствС ΠΎΠ±Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡƒΡ‚ΠΈ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΡ‚ΡŒ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ модуля libiscsi: echo «install libiscsi /bin/true» >> /etc/modprobe.d/disable-libiscsi.conf

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Π² подсистСмС iSCSI устранСны Π΅Ρ‰Ρ‘ Π΄Π²Π΅ ΠΌΠ΅Π½Π΅Π΅ опасныС уязвимости, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ привСсти ΠΊ ΡƒΡ‚Π΅Ρ‡ΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· ядра: CVE-2021-27363 (ΡƒΡ‚Π΅Ρ‡ΠΊΠ° свСдСний ΠΎ дСскрипторС транспорта iSCSI Ρ‡Π΅Ρ€Π΅Π· sysfs) ΠΈ CVE-2021-27364 (Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈΠ· области Π²Π½Π΅ Π³Ρ€Π°Π½ΠΈΡ† Π±ΡƒΡ„Π΅Ρ€Π°). Π£ΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ уязвимости ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для взаимодСйствия Ρ‡Π΅Ρ€Π΅Π· netlink-сокСт с подсистСмой iSCSI Π±Π΅Π· наличия Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ. НапримСр, Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ iSCSI ΠΈ ΠΎΡ‚ΠΏΡ€Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ «end a session» для ΠΎΠ±Ρ€Ρ‹Π²Π° сСанса.

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

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ