ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΡΠ²Π°Π½Π° Π΅ ΡΠ°Π½Π»ΠΈΠ²ΠΎΡΡ (CVE-2021-27365) Π²ΠΎ ΠΊΠΎΠ΄ΠΎΡ Π½Π° ΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΠΎΡ iSCSI Π½Π° ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ ΠΠΈΠ½ΡΠΊΡ, ΠΊΠΎΡ ΠΌΡ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π½Π° Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠ°Π½ΠΈΠΎΡ Π»ΠΎΠΊΠ°Π»Π΅Π½ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊ Π΄Π° ΠΈΠ·Π²ΡΡΠΈ ΠΊΠΎΠ΄ Π½Π° Π½ΠΈΠ²ΠΎ Π½Π° ΡΠ°Π΄ΡΠΎΡΠΎ ΠΈ Π΄Π° Π΄ΠΎΠ±ΠΈΠ΅ ΠΏΡΠ°Π²Π° Π½Π° 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, ΠΊΠ°ΠΊΠΎ ΡΡΠΎ ΡΠ΅ ΠΈΠΌΠ΅ΡΠΎ Π½Π° Π΄ΠΎΠΌΠ°ΡΠΈΠ½ΠΎΡ ΠΈΠ»ΠΈ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΊΠΎΡΠΎ ΠΈΠΌΠ΅, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ° Π½Π°Π΄ΠΌΠΈΠ½Π°Ρ Π²ΡΠ΅Π΄Π½ΠΎΡΡΠ° Π½Π° PAGE_SIZE (4 KB). Π Π°Π½Π»ΠΈΠ²ΠΎΡΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ ΠΈΡΠΊΠΎΡΠΈΡΡΠ΅Π½Π° ΠΎΠ΄ Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠ°Π½ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊ ΠΊΠΎΡ ΠΈΡΠΏΡΠ°ΡΠ° ΠΏΠΎΡΠ°ΠΊΠΈ Π½Π° 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, Π½ΠΎ Π½Π΅ Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½ Π²ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠΎΡ Fedora 31. Debian ΠΈ Ubuntu ΡΠ΅ ΠΏΠΎΠΌΠ°Π»ΠΊΡ ΠΏΠΎΠ΄Π»ΠΎΠΆΠ½ΠΈ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΡ Π·Π°ΡΠΎΠ° ΡΡΠΎ ΠΏΠ°ΠΊΠ΅ΡΠΎΡ rdma-core Π³ΠΈ Π²ΡΠΈΡΡΠ²Π° ΠΊΠ΅ΡΠ½Π΅Π»ΡΠΊΠΈΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΏΠΎΡΡΠ΅Π±Π½ΠΈ Π·Π° Π½Π°ΠΏΠ°Π΄ ΡΠ°ΠΌΠΎ Π°ΠΊΠΎ Π΅ ΠΏΡΠΈΡΡΡΠ΅Π½ Ρ Π°ΡΠ΄Π²Π΅ΡΠΎΡ RDMA.
ΠΠ°ΠΊΠΎ Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΠ½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ ΠΎΠ½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠΈΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΡΠΊΠΎΡΠΎ Π²ΡΠΈΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΌΠΎΠ΄ΡΠ»ΠΎΡ libiscsi: Π΅Ρ ΠΎ βΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Ρ libiscsi /bin/trueβ >> /etc/modprobe.d/disable-libiscsi.conf
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ, Π²ΠΎ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠΎΡ iSCSI ΡΠ΅ ΠΏΠΎΠΏΡΠ°Π²Π΅Π½ΠΈ Π΄Π²Π΅ ΠΏΠΎΠΌΠ°Π»ΠΊΡ ΠΎΠΏΠ°ΡΠ½ΠΈ ΠΏΡΠΎΠΏΡΡΡΠΈ ΠΊΠΎΠΈ Π±ΠΈ ΠΌΠΎΠΆΠ΅Π»Π΅ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π°Ρ Π΄ΠΎ ΠΈΡΡΠ΅ΠΊΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΎΠ΄ ΡΠ°Π΄ΡΠΎΡΠΎ: CVE-2021-27363 (ΠΏΡΠΎΡΠ΅ΠΊΡΠ²Π°ΡΠ΅ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π·Π° ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΠΈΠΎΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ iSCSI ΠΏΡΠ΅ΠΊΡ sysfs) ΠΈ CVE-2021-27364 (Π±Π°ΡΠ΅Ρ Π½Π°Π΄Π²ΠΎΡ ΠΎΠ΄ Π³ΡΠ°Π½ΠΈΡΠΈΡΠ΅). ΡΠΈΡΠ°Ρ). ΠΠ²ΠΈΠ΅ ΠΏΡΠΎΠΏΡΡΡΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ°Ρ Π·Π° ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΡΠ° ΠΏΡΠ΅ΠΊΡ ΠΌΡΠ΅ΠΆΠ΅Π½ ΠΏΡΠΈΠΊΠ»ΡΡΠΎΠΊ ΡΠΎ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠΎΡ iSCSI Π±Π΅Π· ΠΏΠΎΡΡΠ΅Π±Π½ΠΈΡΠ΅ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠ°Π½ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΠΎΠ²ΡΠ·Π΅ ΡΠΎ iSCSI ΠΈ Π΄Π° ΡΠ° ΠΈΠ·Π΄Π°Π΄Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° βΠ·Π°Π²ΡΡΠΈ ΡΠ΅ΡΠΈΡΠ°β Π·Π° Π΄Π° ΡΠ° ΠΏΡΠ΅ΠΊΠΈΠ½Π΅ ΡΠ΅ΡΠΈΡΠ°ΡΠ°.
ΠΠ·Π²ΠΎΡ: opennet.ru