ืคื’ื™ืขื•ืช ื‘ืœื™ื‘ืช ืœื™ื ื•ืงืก ืฉื™ื›ื•ืœื” ืœื”ืชืขืกืง ื‘ืงื‘ืฆื™ื ืœืงืจื™ืื” ื‘ืœื‘ื“

ื–ื•ื”ืชื” ืคื’ื™ืขื•ืช ื‘ืœื™ื‘ืช ืœื™ื ื•ืงืก (CVE-2022-0847) ื”ืžืืคืฉืจืช ืœื”ื—ืœื™ืฃ ืืช ื”ืชื•ื›ืŸ ืฉืœ ืžื˜ืžื•ืŸ ื”ืขืžื•ื“ ืขื‘ื•ืจ ื›ืœ ืงื‘ืฆื™ื, ื›ื•ืœืœ ืืœื” ื‘ืžืฆื‘ ืงืจื™ืื” ื‘ืœื‘ื“, ืฉื ืคืชื—ื• ืขื ื“ื’ืœ O_RDONLY, ืื• ืžืžื•ืงืžื™ื ื‘ืžืขืจื›ื•ืช ืงื‘ืฆื™ื ืžื•ืชืงืŸ ื‘ืžืฆื‘ ืงืจื™ืื” ื‘ืœื‘ื“. ืžื‘ื—ื™ื ื” ืžืขืฉื™ืช, ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ืคื’ื™ืขื•ืช ื›ื“ื™ ืœื”ื—ื“ื™ืจ ืงื•ื“ ืœืชื”ืœื™ื›ื™ื ืฉืจื™ืจื•ืชื™ื™ื ืื• ืœื”ืจื•ืก ื ืชื•ื ื™ื ื‘ืงื‘ืฆื™ื ืฉื ืคืชื—ื•. ืœื“ื•ื’ืžื”, ืืชื” ื™ื›ื•ืœ ืœืฉื ื•ืช ืืช ื”ืชื•ื›ืŸ ืฉืœ ืงื•ื‘ืฅ authorized_keys ืขื‘ื•ืจ ืชื”ืœื™ืš sshd. ืื‘ ื˜ื™ืคื•ืก ืฉืœ ื”ื ื™ืฆื•ืœ ื–ืžื™ืŸ ืœื‘ื“ื™ืงื”.

ื”ื‘ืขื™ื” ืงื™ื‘ืœื” ืืช ืฉื ื”ืงื•ื“ Dirty Pipe, ื‘ื“ื•ืžื” ืœืคื’ื™ืขื•ืช ื”ืงืจื™ื˜ื™ืช Dirty COW ืฉื–ื•ื”ืชื” ื‘-2016. ื™ืฆื•ื™ืŸ ื›ื™ ืžื‘ื—ื™ื ืช ืจืžืช ื”ืกื›ื ื”, Dirty Pipe ื ืžืฆื ื‘ืื•ืชื” ืจืžื” ื›ืžื• Dirty COW, ืืš ื”ืจื‘ื” ื™ื•ืชืจ ืงืœ ืœืชืคืขื•ืœ. ื”ืคื’ื™ืขื•ืช ื–ื•ื”ืชื” ื‘ืžื”ืœืš ื ื™ืชื•ื— ืชืœื•ื ื•ืช ืขืœ ื”ืฉื—ืชื” ืชืงื•ืคืชื™ืช ืฉืœ ืงื‘ืฆื™ื ืฉื”ื•ืจื“ื• ื‘ืจืฉืช ื‘ืžืขืจื›ืช ืฉืžื•ืจื™ื“ื” ืืจื›ื™ื•ื ื™ื ื“ื—ื•ืกื™ื ืžืฉืจืช ื™ื•ืžื ื™ื (37 ืคื’ืžื™ื ื‘-3 ื—ื•ื“ืฉื™ื ื‘ืžืขืจื›ืช ื˜ืขื•ื ื”), ืฉื”ื›ื ืชื ื”ืฉืชืžืฉื” ื‘ืคืขื•ืœืช splice() ื•ืฆื™ื ื•ืจื•ืช ืœืœื ืฉื.

ื”ืคื’ื™ืขื•ืช ืžื•ืคื™ืขื” ื”ื—ืœ ืžืœื™ื‘ืช ืœื™ื ื•ืงืก 5.8, ืฉืฉื•ื—ืจืจื” ื‘ืื•ื’ื•ืกื˜ 2020, ื›ืœื•ืžืจ. ืงื™ื™ื ื‘ื“ื‘ื™ืืŸ 11, ืืš ืื™ื ื• ืžืฉืคื™ืข ืขืœ ืœื™ื‘ืช ื”ื‘ืกื™ืก ื‘ืื•ื‘ื•ื ื˜ื• 20.04 LTS. ื”ื’ืจืขื™ื ื™ื ืฉืœ RHEL 8.x ื•-openSUSE/SUSE 15 ืžื‘ื•ืกืกื™ื ื‘ืชื—ื™ืœื” ืขืœ ืขื ืคื™ื ื™ืฉื ื™ื, ืืš ื™ื™ืชื›ืŸ ืฉื”ืฉื™ื ื•ื™ ืฉื’ืจื ืœื‘ืขื™ื” ื”ื•ืขื‘ืจ ืืœื™ื”ื ื‘ื—ื–ืจื” (ืขื“ื™ื™ืŸ ืื™ืŸ ื ืชื•ื ื™ื ืžื“ื•ื™ืงื™ื). ืืชื” ื™ื›ื•ืœ ืœืขืงื•ื‘ ืื—ืจ ืคืจืกื•ื ืขื“ื›ื•ื ื™ ื”ื—ื‘ื™ืœื•ืช ื‘ื”ืคืฆื•ืช ื‘ื“ืคื™ื ืืœื”: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. ืชื™ืงื•ืŸ ืœืคื’ื™ืขื•ืช ื”ื•ืฆืข ื‘ืžื”ื“ื•ืจื•ืช 5.16.11, 5.15.25 ื•-5.10.102. ื”ืชื™ืงื•ืŸ ื›ืœื•ืœ ื’ื ื‘ืงืจื ืœ ื”ืžืฉืžืฉ ื‘ืคืœื˜ืคื•ืจืžืช ืื ื“ืจื•ืื™ื“.

ื”ืคื’ื™ืขื•ืช ื ื’ืจืžืช ืžื”ื™ืขื“ืจ ืืชื—ื•ืœ ืฉืœ ืขืจืš "buf->flags" ื‘ืงื•ื“ ืฉืœ ื”ืคื•ื ืงืฆื™ื•ืช copy_page_to_iter_pipe() ื•-push_pipe(), ืœืžืจื•ืช ื”ืขื•ื‘ื“ื” ืฉื”ื–ื™ื›ืจื•ืŸ ืื™ื ื• ืžื ื•ืงื” ื‘ืขืช ื”ืงืฆืืช ืžื‘ื ื” ื•ื‘ืžื”ืœืš ืžื ื™ืคื•ืœืฆื™ื•ืช ืžืกื•ื™ืžื•ืช ืขื ืฆื™ื ื•ืจื•ืช ืœืœื ืฉื, ืขืจืš ืžืคืขื•ืœื” ืื—ืจืช. ื‘ืืžืฆืขื•ืช ืชื›ื•ื ื” ื–ื•, ืžืฉืชืžืฉ ืžืงื•ืžื™ ืœืœื ื”ืจืฉืื•ืช ื™ื›ื•ืœ ืœื”ืฉื™ื’ ืืช ื”ืžืจืื” ืฉืœ ื”ืขืจืš PIPE_BUF_FLAG_CAN_MERGE ื‘ื“ื’ืœ, ืžื” ืฉืžืืคืฉืจ ืœืš ืœืืจื’ืŸ ื”ื—ืœืคืช ื ืชื•ื ื™ื ื‘ืžื˜ืžื•ืŸ ื”ื“ืฃ ืคืฉื•ื˜ ืขืœ ื™ื“ื™ ื›ืชื™ื‘ืช ื ืชื•ื ื™ื ื—ื“ืฉื™ื ืœืฆื™ื ื•ืจ ืœืœื ืฉื ืฉื”ื•ื›ืŸ ื‘ืžื™ื•ื—ื“.

ืขื‘ื•ืจ ื”ืชืงืคื”, ืงื•ื‘ืฅ ื”ืžื˜ืจื” ื—ื™ื™ื‘ ืœื”ื™ื•ืช ืงืจื™ื, ื•ืžื›ื™ื•ื•ืŸ ืฉื–ื›ื•ื™ื•ืช ื”ื’ื™ืฉื” ืื™ื ืŸ ื ื‘ื“ืงื•ืช ื‘ืขืช ื›ืชื™ื‘ื” ืœ-pipe, ื ื™ืชืŸ ืœื‘ืฆืข ื”ื—ืœืคื” ื‘ืžื˜ืžื•ืŸ ื”ืขืžื•ื“ื™ื ื’ื ืขื‘ื•ืจ ืงื‘ืฆื™ื ื”ืžืžื•ืงืžื™ื ื‘ืžื—ื™ืฆื•ืช ืจื›ื•ื‘ื•ืช ืœืงืจื™ืื” ื‘ืœื‘ื“ (ืœื“ื•ื’ืžื”, ืขื‘ื•ืจ ืงื‘ืฆื™ื c CD- ROM). ืœืื—ืจ ื”ื—ืœืคืช ื”ืžื™ื“ืข ื‘ืžื˜ืžื•ืŸ ื”ืขืžื•ื“, ื‘ืขืช ืงืจื™ืืช ื ืชื•ื ื™ื ืžืงื•ื‘ืฅ, ื”ืชื”ืœื™ืš ื™ืงื‘ืœ ืœื ืืช ื”ื ืชื•ื ื™ื ื‘ืคื•ืขืœ, ืืœื ืืช ื”ื ืชื•ื ื™ื ืฉื”ื•ื—ืœืคื•.

ื”ืคืขื•ืœื” ืžืกืชื›ืžืช ื‘ื™ืฆื™ืจืช ืขืจื•ืฅ ืœืœื ืฉื ื•ืžื™ืœื•ื™ื• ื‘ื ืชื•ื ื™ื ืฉืจื™ืจื•ืชื™ื™ื ืขืœ ืžื ืช ืœื”ื‘ื˜ื™ื— ืฉื“ื’ืœ PIPE_BUF_FLAG_CAN_MERGE ืžื•ื’ื“ืจ ื‘ื›ืœ ืžื‘ื ื™ ื”ื˜ื‘ืขืช ื”ืžืฉื•ื™ื›ื™ื ืืœื™ื•. ืœืื—ืจ ืžื›ืŸ, ื”ื ืชื•ื ื™ื ื ืงืจืื™ื ืžื”ืขืจื•ืฅ, ืืš ื”ื“ื’ืœ ื ืฉืืจ ืžื•ื’ื“ืจ ื‘ื›ืœ ื”ืžืงืจื™ื ืฉืœ ืžื‘ื ื” pipe_buffer ื‘ืžื‘ื ื™ ื”ื˜ื‘ืขืช pipe_inode_info. ืœืื—ืจ ืžื›ืŸ ืžืชื‘ืฆืขืช ืงืจื™ืื” ืœ-splice() ื›ื“ื™ ืœืงืจื•ื ื ืชื•ื ื™ื ืžืงื•ื‘ืฅ ื”ื™ืขื“ ืœืชื•ืš ืฆื™ื ื•ืจ ืœืœื ืฉื, ื”ื—ืœ ื‘ื”ื™ืกื˜ ื”ืจืฆื•ื™. ื‘ืขืช ื›ืชื™ื‘ืช ื ืชื•ื ื™ื ืœืฆื™ื ื•ืจ ืœืœื ืฉื ื–ื”, ืขืงื‘ ื”ื’ื“ืจืช ื”ื“ื’ืœ PIPE_BUF_FLAG_CAN_MERGE, ื”ื ืชื•ื ื™ื ื‘ืžื˜ืžื•ืŸ ื”ืขืžื•ื“ ื™ื•ื—ืœืคื• ื‘ืžืงื•ื ืœื™ืฆื•ืจ ืžื•ืคืข ื—ื“ืฉ ืฉืœ ืžื‘ื ื” ื”-pipe_buffer.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”