เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเปƒเบ™ cgroups v1 เบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เปœเบตเบญเบญเบเบˆเบฒเบเบ–เบฑเบ‡เบ—เบตเปˆเป‚เบ”เบ”เบ”เปˆเบฝเบง

เบกเบตเบเบฒเบ™เป€เบ›เบตเบ”เป€เบœเบตเบเบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบ‚เบญเบ‡เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆ (CVE-2022-0492) เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบปเบ™เป„เบเบเบฒเบ™เบˆเบณเบเบฑเบ”เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™ cgroups v1 เปƒเบ™ Linux kernel, เป€เบŠเบดเปˆเบ‡เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบซเบผเบปเบšเปœเบต containers เบ—เบตเปˆเป‚เบ”เบ”เบ”เปˆเบฝเบงเป„เบ”เป‰. เบšเบฑเบ™เบซเบฒเบกเบตเบขเบนเปˆเบ•เบฑเป‰เบ‡เปเบ•เปˆ Linux kernel 2.6.24 เปเบฅเบฐเบ–เบทเบเปเบเป‰เป„เบ‚เปƒเบ™ kernel releases 5.16.12, 5.15.26, 5.10.97, 5.4.177, 4.19.229, 4.14.266, เปเบฅเบฐ 4.9.301. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ•เบดเบ”เบ•เบฒเบกเบเบฒเบ™เบžเบดเบกเป€เบœเบตเบเปเบœเปˆเบเบฒเบ™เบญเบฑเบšเป€เบ”เบ”เบŠเบธเบ”เปƒเบ™เบเบฒเบ™เปเบˆเบเบขเบฒเบเบขเบนเปˆเปƒเบ™เบซเบ™เป‰เบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux.

เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเปเบกเปˆเบ™เป€เบ™เบทเปˆเบญเบ‡เบกเบฒเบˆเบฒเบเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบฒเบ‡เป€เบซเบ”เบœเบปเบ™เปƒเบ™เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เป„เบŸเบฅเปŒ release_agent เบ—เบตเปˆเบฅเบปเป‰เบกเป€เบซเบฅเบงเปƒเบ™เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเปเบฅเปˆเบ™เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบ”เป‰เบงเบเบชเบดเบ”เบ—เบดเป€เบ•เบฑเบกเบ—เบตเปˆ. เป„เบŸเบฅเปŒ release_agent เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป‚เบ”เบ kernel เป€เบกเบทเปˆเบญเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เปƒเบ™ cgroup เบ–เบทเบเบขเบธเบ”. เป‚เบ„เบ‡เบเบฒเบ™เบ™เบตเป‰เป€เบฎเบฑเบ”เบงเบฝเบเป€เบ›เบฑเบ™เบฎเบฒเบเปเบฅเบฐเบกเบต "เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”" เบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™ namespace เบฎเบฒเบ. เบกเบฑเบ™เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบกเบตเบžเบฝเบ‡เปเบ•เปˆเบœเบนเป‰เป€เบšเบดเปˆเบ‡เปเบเบ‡เบฅเบฐเบšเบปเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ release_agent, เปเบ•เปˆเปƒเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบˆเบดเบ‡เบเบฒเบ™เบเบงเบ”เบชเบญเบšเป„เบ”เป‰เบ–เบทเบเบˆเปเบฒเบเบฑเบ”เบžเบฝเบ‡เปเบ•เปˆเปƒเบซเป‰เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบœเบนเป‰เปƒเบŠเป‰เบฎเบฒเบ, เป€เบŠเบดเปˆเบ‡เบšเปเปˆเป„เบ”เป‰เบเบปเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ—เบตเปˆเบ–เบทเบเบ›เปˆเบฝเบ™เบˆเบฒเบ container เบซเบผเบทเป‚เบ”เบเบœเบนเป‰เปƒเบŠเป‰เบฎเบฒเบเป‚เบ”เบเบšเปเปˆเบกเบตเบชเบดเบ”เบ‚เบญเบ‡เบœเบนเป‰เป€เบšเบดเปˆเบ‡เปเบเบ‡เบฅเบฐเบšเบปเบš (CAP_SYS_ADMIN. ).

เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰, เบฅเบฑเบเบชเบฐเบ™เบฐเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบˆเบฐเบšเปเปˆเบ–เบทเบเบฎเบฑเบšเบฎเบนเป‰เบงเปˆเบฒเป€เบ›เบฑเบ™เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆ, เปเบ•เปˆเบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เป„เบ”เป‰เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ”เป‰เบงเบเบเบฒเบ™เบกเบฒเบฎเบญเบ”เบ‚เบญเบ‡ user namespaces (user namespaces), เป€เบŠเบดเปˆเบ‡เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เบœเบนเป‰เปƒเบŠเป‰เบฎเบฒเบเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเปƒเบ™ containers เบ—เบตเปˆเบšเปเปˆ overlap เบเบฑเบšเบœเบนเป‰เปƒเบŠเป‰เบฎเบฒเบเบ‚เบญเบ‡. เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ•เบปเป‰เบ™เบ•เป. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบˆเบกเบ•เบต, เบกเบฑเบ™เบžเบฝเบ‡เบžเปเบ—เบตเปˆเบˆเบฐเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™ release_agent เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เปƒเบ™เบ–เบฑเบ‡เบ—เบตเปˆเบกเบตเบœเบนเป‰เปƒเบŠเป‰เบฎเบฒเบเบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡เบขเบนเปˆเปƒเบ™เบžเบทเป‰เบ™เบ—เบตเปˆ ID เบœเบนเป‰เปƒเบŠเป‰เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ, เป€เบŠเบดเปˆเบ‡, เบซเบผเบฑเบ‡เบˆเบฒเบเบชเปเบฒเป€เบฅเบฑเบ”เบ‚เบฐเบšเบงเบ™เบเบฒเบ™, เบˆเบฐเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบ”เป‰เบงเบเบชเบดเบ”เบ—เบดเบญเบฑเบ™เป€เบ•เบฑเบกเบ—เบตเปˆเบ‚เบญเบ‡เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ•เบปเป‰เบ™เบ•เป.

เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, cgroupfs เบ–เบทเบเบ•เบดเบ”เบ•เบฑเป‰เบ‡เบขเบนเปˆเปƒเบ™ container เปƒเบ™เป‚เบซเบกเบ”เบญเปˆเบฒเบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™, เปเบ•เปˆเบšเปเปˆเบกเบตเบšเบฑเบ™เบซเบฒเบ—เบตเปˆเบˆเบฐเบ•เบดเบ”เบ•เบฑเป‰เบ‡ pseudofs เบ™เบตเป‰เปƒเบซเบกเปˆเปƒเบ™เป‚เบซเบกเบ”เบเบฒเบ™เบ‚เบฝเบ™เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบกเบตเบชเบดเบ” CAP_SYS_ADMIN เบซเบผเบทเป‚เบ”เบเบเบฒเบ™เบชเป‰เบฒเบ‡ container เบŠเป‰เบญเบ™เบ—เบตเปˆเบกเบต namespace เบœเบนเป‰เปƒเบŠเป‰เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเป‚เบ”เบเปƒเบŠเป‰เบเบฒเบ™เป‚เบ—เบฅเบฐเบšเบปเบš unshare, เปƒเบ™เบ™เบฑเป‰เบ™ เบชเบดเบ”เบ—เบด CAP_SYS_ADMIN เปเบกเปˆเบ™เบกเบตเปƒเบซเป‰เบชเบณเบฅเบฑเบšเบšเบฑเบ™เบˆเบธเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™.

 เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเปƒเบ™ cgroups v1 เบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เปœเบตเบญเบญเบเบˆเบฒเบเบ–เบฑเบ‡เบ—เบตเปˆเป‚เบ”เบ”เบ”เปˆเบฝเบง

เบเบฒเบ™เป‚เบˆเบกเบ•เบตเบชเบฒเบกเบฒเบ”เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบกเบตเบชเบดเบ”เบ—เบดเบ‚เบญเบ‡เบฎเบฒเบเบขเบนเปˆเปƒเบ™เบ–เบฑเบ‡เบ—เบตเปˆเป‚เบ”เบ”เบ”เปˆเบฝเบงเบซเบผเบทเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเปเบฅเปˆเบ™เบžเบฒเบŠเบฐเบ™เบฐเบ—เบตเปˆเบšเปเปˆเบกเบตเบ—เบธเบ‡ no_new_privs, เป€เบŠเบดเปˆเบ‡เบซเป‰เบฒเบกเบเบฒเบ™เป„เบ”เป‰เบฎเบฑเบšเบชเบดเบ”เบ—เบดเบžเบดเป€เบชเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบก. เบฅเบฐเบšเบปเบšเบ•เป‰เบญเบ‡เบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบš namespaces เบœเบนเป‰เปƒเบŠเป‰เบ—เบตเปˆเบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰ (เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบ™ Ubuntu เปเบฅเบฐ Fedora, เปเบ•เปˆเบšเปเปˆเป„เบ”เป‰เป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™ Debian เปเบฅเบฐ RHEL) เปเบฅเบฐเบกเบตเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ cgroup v1 เบ‚เบญเบ‡เบฎเบฒเบ (เบ•เบปเบงเบขเปˆเบฒเบ‡, Docker เปเบฅเปˆเบ™เบšเบฑเบ™เบˆเบธเบขเบนเปˆเปƒเบ™เบฎเบฒเบ RDMA cgroup). เบเบฒเบ™เป‚เบˆเบกเบ•เบตเบเบฑเบ‡เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบกเบตเบชเบดเบ”เบ—เบด CAP_SYS_ADMIN, เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ namespaces เบœเบนเป‰เปƒเบŠเป‰เปเบฅเบฐเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ cgroup v1 root hierarchy เปเบกเปˆเบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™.

เบ™เบญเบเป€เบซเบ™เบทเบญเบˆเบฒเบเบเบฒเบ™เบซเบฅเบปเบšเบซเบ™เบตเบˆเบฒเบเบ–เบฑเบ‡เบ—เบตเปˆเป‚เบ”เบ”เบ”เปˆเบฝเบง, เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเบเบฑเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เป€เบ›เบตเบ”เบ•เบปเบงเป‚เบ”เบเบœเบนเป‰เปƒเบŠเป‰เบฎเบฒเบเป‚เบ”เบเบšเปเปˆเบกเบต "เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”" เบซเบผเบทเบœเบนเป‰เปƒเบŠเป‰เปƒเบ”เป†เบ—เบตเปˆเบกเบตเบชเบดเบ”เบ—เบด CAP_DAC_OVERRIDE (เบเบฒเบ™เป‚เบˆเบกเบ•เบตเบ•เป‰เบญเบ‡เบเบฒเบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป„เบŸเบฅเปŒ /sys/fs/cgroup/*/release_agent, เป€เบŠเบดเปˆเบ‡เปเบกเปˆเบ™. เป€เบ›เบฑเบ™เป€เบˆเบปเป‰เบฒเบ‚เบญเบ‡เป‚เบ”เบเบฎเบฒเบ) เป€เบžเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ "เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”" เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบ—เบฑเบ‡เบซเบกเบปเบ”.

เบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เบงเปˆเบฒเบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเบšเปเปˆเบชเบฒเบกเบฒเบ”เบ–เบทเบเบ‚เบนเบ”เบฎเบตเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ™เปเบฒเปƒเบŠเป‰เบเบปเบ™เป„เบเบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡ Seccomp, AppArmor เบซเบผเบท SELinux เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบเบเบ•เบปเบงเบšเบฑเบ™เบˆเบธเป€เบžเบตเปˆเบกเป€เบ•เบตเบก, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบ Seccomp เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบเบฒเบ™เป‚เบ—เบฅเบฐเบšเบปเบš unshare() เปเบฅเบฐ AppArmor เปเบฅเบฐ SELinux เบšเปเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ•เบดเบ”เบ•เบฑเป‰เบ‡ cgroupfs เปƒเบ™เป‚เบซเบกเบ”เบเบฒเบ™เบ‚เบฝเบ™.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru