เป€เบ•เบฑเบเบ™เบดเบเบเบฒเบ™เบ‚เบธเบ”เบ„เบปเป‰เบ™เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเปƒเบ™เบฅเบฐเบšเบปเบšเบเปˆเบญเบ tty เบ‚เบญเบ‡ Linux kernel เป„เบ”เป‰เบ–เบทเบเป€เบ›เบตเบ”เป€เบœเบตเบ

เบ™เบฑเบเบ„เบปเป‰เบ™เบ„เบงเป‰เบฒเบˆเบฒเบเบ—เบตเบกเบ‡เบฒเบ™ Google Project Zero เป€เบœเบตเบเปเบœเปˆเบงเบดเบ—เบตเบเบฒเบ™เบ‚เบธเบ”เบ„เบปเป‰เบ™เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆ (CVE-2020-29661) เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™ TIOCSPGRP ioctl เบˆเบฒเบเบฅเบฐเบšเบปเบšเบเปˆเบญเบ tty เบ‚เบญเบ‡ Linux kernel, เปเบฅเบฐเบเบฑเบ‡เป„เบ”เป‰เบเบงเบ”เบเบฒเบขเปˆเบฒเบ‡เบฅเบฐเบญเบฝเบ”เบเปˆเบฝเบงเบเบฑเบšเบเบปเบ™เป„เบเบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง. เบ„เบงเบฒเบกเบญเปˆเบญเบ™เปเบญ.

เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบšเบฑเบ™เบซเบฒเป„เบ”เป‰เบ–เบทเบเปเบเป‰เป„เบ‚เปƒเบ™ Linux kernel เปƒเบ™เบงเบฑเบ™เบ—เบต 3 เป€เบ”เบทเบญเบ™เบ—เบฑเบ™เบงเบฒเบ›เบตเบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ. เบšเบฑเบ™เบซเบฒเบ›เบฒเบเบปเบ”เบขเบนเปˆเปƒเบ™ kernels เป€เบ–เบดเบ‡เบฎเบธเปˆเบ™ 5.9.13, เปเบ•เปˆเบเบฒเบ™เปเบˆเบเบขเบฒเบเบชเปˆเบงเบ™เปƒเบซเบเปˆเป„เบ”เป‰เปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเปƒเบ™เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบซเบธเป‰เบกเบซเปเปˆ kernel เบ—เบตเปˆเบชเบฐเป€เบซเบ™เบตเปƒเบ™เบ›เบตเบเบฒเบเบ™เบตเป‰ (Debian, RHEL, SUSE, Ubuntu, Fedora, Arch). เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™ (CVE-2020-29660) เป„เบ”เป‰เบ–เบทเบเบžเบปเบšเป€เบซเบฑเบ™เบžเป‰เบญเบกเป†เบเบฑเบ™เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป‚เบ— TIOCGSID ioctl, เปเบ•เปˆเบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเปเบเป‰เป„เบ‚เปเบฅเป‰เบงเบขเบนเปˆเบ—เบปเปˆเบงเบ—เบธเบเปเบซเปˆเบ‡.

เบšเบฑเบ™เบซเบฒเปเบกเปˆเบ™เป€เบเบตเบ”เบกเบฒเบˆเบฒเบเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเปเบฒเบ™เบปเบ” locks, เบ™เปเบฒเป„เบ›เบชเบนเปˆเบชเบฐเบžเบฒเบšเบเบฒเบ™เปเบ‚เปˆเบ‡เบ‚เบฑเบ™เปƒเบ™เบฅเบฐเบซเบฑเบ” drivers/tty/tty_jobctrl.c, เป€เบŠเบดเปˆเบ‡เป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚ use-after-free exploited เบˆเบฒเบเบžเบทเป‰เบ™เบ—เบตเปˆเบœเบนเป‰เปƒเบŠเป‰เป‚เบ”เบเบœเปˆเบฒเบ™ ioct manipulations เป‚เบ—เบซเบฒ TIOCSPGRP. เบเบฒเบ™เบ‚เบนเบ”เบฎเบตเบ”เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเป„เบ”เป‰เบ–เบทเบเบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบชเบดเบ”เบ—เบดเบžเบดเป€เบชเบ”เปƒเบ™ Debian 10 เบเบฑเบš kernel 4.19.0-13-amd64.

เปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™, เบšเบปเบ”เบ„เบงเบฒเบกเบ—เบตเปˆเบˆเบฑเบ”เบžเบตเบกเบกเบฒเบšเปเปˆเป„เบ”เป‰เบชเบธเบกเปƒเบชเปˆเบซเบผเบฒเบเบเปˆเบฝเบงเบเบฑเบšเป€เบ•เบฑเบเบ™เบดเบเบเบฒเบ™เบชเป‰เบฒเบ‡เบเบฒเบ™เบ‚เบนเบ”เบฎเบตเบ”เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบ, เปเบ•เปˆเปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบเปˆเบฝเบงเบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ—เบตเปˆเบกเบตเบขเบนเปˆเปƒเบ™เปเบเปˆเบ™เป€เบžเบทเปˆเบญเบ›เป‰เบญเบ‡เบเบฑเบ™เบ„เบงเบฒเบกเบญเปˆเบญเบ™เปเบญเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง. เบเบฒเบ™เบชเบฐเบซเบฅเบธเบšเปเบกเปˆเบ™เบšเปเปˆเบชเบฐเบšเบฒเบ; เบงเบดเบ—เบตเบเบฒเบ™เป€เบŠเบฑเปˆเบ™: เบเบฒเบ™เปเบšเปˆเบ‡เบชเปˆเบงเบ™เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเปƒเบ™ heap เปเบฅเบฐเบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบซเบผเบฑเบ‡เบˆเบฒเบเบ—เบตเปˆเบกเบฑเบ™เบ–เบทเบเบ›เปˆเบญเบเบญเบญเบเบกเบฒเบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”, เบเป‰เบญเบ™เบงเปˆเบฒเบžเบงเบเบกเบฑเบ™เบ™เปเบฒเป„เบ›เบชเบนเปˆเบเบฒเบ™เบซเบผเบธเบ”เบฅเบปเบ‡เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”, เปเบฅเบฐ CFI (Control Flow Integrity)-based เบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡, เป€เบŠเบดเปˆเบ‡. เบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™เบเบฒเบ™เบ‚เบนเบ”เบฎเบตเบ”เปƒเบ™เป„เบฅเบเบฐเบ•เปเปˆเบกเบฒเบ‚เบญเบ‡เบเบฒเบ™เป‚เบˆเบกเบ•เบต, เบ•เป‰เบญเบ‡เบเบฒเบ™เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡.

เป€เบกเบทเปˆเบญเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบชเบดเปˆเบ‡เบ—เบตเปˆเบˆเบฐเบชเป‰เบฒเบ‡เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เปƒเบ™เป„เบฅเบเบฐเบเบฒเบง, เบชเบดเปˆเบ‡เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเป‚เบ”เบ”เป€เบ”เบฑเปˆเบ™เปเบกเปˆเบ™เบเบฒเบ™เปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡เบงเบดเป€เบ„เบฒเบฐเบชเบฐเบ–เบดเบ”เปเบšเบšเบžเบดเป€เบชเบ”เบซเบผเบทเบเบฒเบ™เปƒเบŠเป‰เบžเบฒเบชเบฒเบ—เบตเปˆเบ›เบญเบ”เป„เบžเปƒเบ™เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเป€เบŠเบฑเปˆเบ™เบžเบฒเบชเบฒ Rust เปเบฅเบฐ C เบ—เบตเปˆเบกเบตเบ„เปเบฒเบšเบฑเบ™เบเบฒเบเบ—เบตเปˆเบญเบธเบ”เบปเบกเบชเบปเบกเบšเบนเบ™ (เป€เบŠเบฑเปˆเบ™: Checked C) เป€เบžเบทเปˆเบญเบเบงเบ”เบชเบญเบš. เบฅเบฑเบ”เปƒเบ™เป„เบฅเบเบฐเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡. locks, เบงเบฑเบ”เบ–เบธเปเบฅเบฐเบ•เบปเบงเบŠเบตเป‰. เบงเบดเบ—เบตเบเบฒเบ™เบ›เป‰เบญเบ‡เบเบฑเบ™เบเบฑเบ‡เบฅเบงเบกเป€เบ–เบดเบ‡เบเบฒเบ™เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เปเบ” panic_on_oops, เบเบฒเบ™เบ›เปˆเบฝเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡ kernel เป„เบ›เป€เบ›เบฑเบ™เป‚เปเบ”เบญเปˆเบฒเบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™, เปเบฅเบฐเบเบฒเบ™เบˆเบณเบเบฑเบ”เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบเบฒเบ™เป‚เบ—เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเป‚เบ”เบเปƒเบŠเป‰เบเบปเบ™เป„เบเป€เบŠเบฑเปˆเบ™ seccomp.

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

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™