Datgelwyd manylion am wendid (CVE-2022-0492) yng ngweithrediad y mecanwaith cyfyngu adnoddau cgroups v1 yn y cnewyllyn. Linux, y gellir ei ddefnyddio i ddianc rhag cynwysyddion ynysig. Mae'r broblem yn amlygu ei hun gan ddechrau gyda'r cnewyllyn. Linux 2.6.24 ac wedi'i drwsio yn y datganiadau cnewyllyn 5.16.12, 5.15.26, 5.10.97, 5.4.177, 4.19.229, 4.14.266, a 4.9.301. Gallwch olrhain rhyddhau diweddariadau pecynnau mewn dosraniadau ar y tudalennau hyn: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux.
Mae'r bregusrwydd oherwydd gwall rhesymeg yn y triniwr ffeil release_agent sy'n methu Γ’ chyflawni gwiriadau cywir wrth redeg y triniwr gyda breintiau llawn. Defnyddir y ffeil release_agent i ddiffinio'r rhaglen i'w gweithredu gan y cnewyllyn pan ddaw proses mewn cgroup i ben. Mae'r rhaglen hon yn rhedeg fel gwraidd a gyda phob βgalluβ yn y gofod enwau gwraidd. Tybiwyd mai dim ond y gweinyddwr oedd Γ’ mynediad i'r gosodiad release_agent, ond mewn gwirionedd roedd y gwiriadau wedi'u cyfyngu i ganiatΓ‘u mynediad i'r defnyddiwr gwraidd, nad oedd yn eithrio'r gosodiad yn cael ei newid o'r cynhwysydd neu gan ddefnyddiwr gwraidd heb hawliau gweinyddwr (CAP_SYS_ADMIN ).
Yn flaenorol, ni fyddai nodwedd o'r fath wedi cael ei hystyried yn agored i niwed, ond mae'r sefyllfa wedi newid gyda dyfodiad gofodau enwau defnyddwyr (gofodau enwau defnyddwyr), sy'n eich galluogi i greu defnyddwyr gwraidd ar wahΓ’n mewn cynwysyddion nad ydynt yn gorgyffwrdd Γ’ defnyddiwr gwraidd y prif amgylchedd. Yn unol Γ’ hynny, ar gyfer ymosodiad, mae'n ddigon i gysylltu eich triniwr release_agent mewn cynhwysydd sydd Γ’'i ddefnyddiwr gwraidd ei hun mewn gofod ID defnyddiwr ar wahΓ’n, a fydd, ar Γ΄l cwblhau'r broses, yn cael ei weithredu gyda breintiau llawn y prif amgylchedd.
Yn ddiofyn, mae cgroupfs wedi'i osod mewn cynhwysydd yn y modd darllen-yn-unig, ond nid oes problem wrth ail-osod y ffugiau hyn yn y modd ysgrifennu os oes gennych hawliau CAP_SYS_ADMIN neu drwy greu cynhwysydd nythu gyda gofod enw defnyddiwr ar wahΓ’n gan ddefnyddio'r alwad system dad-rhannu, lle Mae hawliau CAP_SYS_ADMIN ar gael ar gyfer y cynhwysydd a grΓ«wyd.

ΠΡΠ°ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π° ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ root-ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΠΉ Π² ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅ ΠΈΠ»ΠΈ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Π±Π΅Π· ΡΠ»Π°Π³Π° no_new_privs, Π·Π°ΠΏΡΠ΅ΡΠ°ΡΡΠ΅Π³ΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ. Π ΡΠΈΡΡΠ΅ΠΌΠ΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° user namespaces (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π² Ubuntu ΠΈ Fedora, Π½ΠΎ Π½Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°Π½Π° Π² Debian ΠΈ RHEL) ΠΈ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΌΡ cgroup v1 (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Docker Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Π² ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΌ RDMA cgroup). ΠΡΠ°ΠΊΠ° ΡΠ°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ CAP_SYS_ADMIN, Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° user namespaces ΠΈ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ cgroup v1 Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ.
Yn ogystal Γ’ dianc o gynhwysydd ynysig, mae'r bregusrwydd hefyd yn caniatΓ‘u prosesau a lansiwyd gan ddefnyddiwr gwraidd heb "galluoedd" neu unrhyw ddefnyddiwr Γ’ hawliau CAP_DAC_OVERRIDE (mae'r ymosodiad yn gofyn am fynediad i'r ffeil /sys/fs/cgroup/*/release_agent, sef eiddo gwraidd) i gael mynediad i bob βgalluβ systemig.
ΠΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ, ΡΡΠΎ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠΈΡΠΎΠ²Π°Π½Π° ΠΏΡΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠΎΠ² Π·Π°ΡΠΈΡΡ Seccomp, AppArmor ΠΈΠ»ΠΈ SELinux Π΄Π»Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ², ΡΠ°ΠΊ ΠΊΠ°ΠΊ Seccomp Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΌΡ Π²ΡΠ·ΠΎΠ²Ρ unshare(), Π° AppArmor ΠΈ SELinux Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΡΠΈΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°ΡΡ cgroupfs Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Π·Π°ΠΏΠΈΡΠΈ.
Ffynhonnell: opennet.ru
