Π ΠΊΠΎΠ΄Π° Π½Π° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° 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. ΠΠ° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡΡΠ° Π½Π° ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° se ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ΄ΡΠ΅Π½ΠΈΡΡ ΠΌΠΎΠ΄ΡΠ» 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 Ρ Π°ΡΠ΄ΡΠ΅Ρ.

ΠΠ°ΡΠΎ ΠΎΠ±Ρ ΠΎΠ΄Π΅Π½ Π²Π°ΡΠΈΠ°Π½Ρ Π·Π° Π·Π°ΡΠΈΡΠ°, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π·Π°Π±ΡΠ°Π½ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎΡΠΎ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄ΡΠ»Π° 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
