Уразлівасць у падсістэме 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

Дадаць каментар