เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเปƒเบ™ Linux kernel เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบญเบธเบ›เบฐเบ•เบดเป€เบซเบ”เป‚เบ”เบเบเบฒเบ™เบชเบปเปˆเบ‡เปเบžเบฑเบเป€เบเบฑเบ” UDP

เปƒเบ™ kernel Linux เบเปเบฒเบ™เบปเบ” เบ„เบงเบฒเบกเบญเปˆเบญเบ™เปเบญ (CVE-2019-11683), เป€เบŠเบดเปˆเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบซเปˆเบฒเบ‡เป„เบเบชเบญเบเบซเบผเบตเบเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบเบฒเบ™เบ›เบฐเบ•เบดเป€เบชเบ”เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เป‚เบ”เบเบเบฒเบ™เบชเบปเปˆเบ‡เบŠเบธเบ” UDP เบญเบญเบเปเบšเบšเบžเบดเป€เบชเบ” (packet-of-death). เบšเบฑเบ™เบซเบฒเปเบกเปˆเบ™เป€เบเบตเบ”เบกเบฒเบˆเบฒเบเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปƒเบ™เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™ udp_gro_receive_segment (net/ipv4/udp_offload.c) เบ”เป‰เบงเบเบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบ—เบเป‚เบ™เป‚เบฅเบเบต GRO (Generic Receive Offload) เปเบฅเบฐเบชเบฒเบกเบฒเบ”เบ™เปเบฒเป„เบ›เบชเบนเปˆเบเบฒเบ™เบชเปเป‰เบฅเบฒเบ”เบšเบฑเบ‡เบซเบผเบงเบ‡เบ‚เบญเบ‡เป€เบ™เบทเป‰เบญเปƒเบ™เบ‚เบญเบ‡เบžเบทเป‰เบ™เบ—เบตเปˆเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ kernel เป€เบกเบทเปˆเบญเบ›เบฐเบกเบงเบ™เบœเบปเบ™เปเบžเบฑเบเป€เบเบฑเบ” UDP เบ—เบตเปˆเบกเบตเบชเบนเบ™ padding. (เบเบฒเบ™เป‚เบซเบผเบ”เป€เบ›เบปเปˆเบฒ).

เบšเบฑเบ™เบซเบฒเบžเบฝเบ‡เปเบ•เปˆเบœเบปเบ™เบเบฐเบ—เบปเบšเบ•เปเปˆเปเบเปˆเบ™ 5.0เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ GRO เบชเปเบฒเบฅเบฑเบšเบŠเบฑเบญเบเป€เบเบฑเบ” UDP เปเบกเปˆเบ™ เบ›เบฐเบ•เบดเบšเบฑเบ” เปƒเบ™โ€‹เป€เบ”เบทเบญเบ™โ€‹เบžเบฐโ€‹เบˆเบดเบโ€‹เบ›เบตโ€‹เบเบฒเบโ€‹เบ™เบตเป‰โ€‹เปเบฅเบฐโ€‹เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เบเบฒเบ™โ€‹เบ„เบธเป‰เบกโ€‹เบ„เบญเบ‡โ€‹เป€เบžเบทเปˆเบญโ€‹เป€เบ‚เบปเป‰เบฒโ€‹เป„เบ›โ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบ›เปˆเบญเบ kernel เบซเบฅเป‰เบฒโ€‹เบชเบธเบ”โ€‹เบ„เบงเบฒเบกโ€‹เบซเบกเบฑเป‰เบ™โ€‹เบ„เบปเบ‡โ€‹. เป€เบ—เบเป‚เบ™เป‚เบฅเบเบต GRO เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบฅเบฑเปˆเบ‡เบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เปเบžเบฑเบเป€เบเบฑเบ”เบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบกเบฒเบˆเปเบฒเบ™เบงเบ™เบซเบฅเบฒเบเป‚เบ”เบเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเปเบžเบฑเบเป€เบเบฑเบ”เบซเบผเบฒเบเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ—เปˆเบญเบ™เป„เบกเป‰เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบ—เบตเปˆเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบกเบตเบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเบ‚เบญเบ‡เปเบ•เปˆเบฅเบฐเปเบžเบฑเบเป€เบเบฑเบ”.
เบชเปเบฒเบฅเบฑเบš TCP, เบšเบฑเบ™เบซเบฒเบšเปเปˆเป€เบเบตเบ”เบ‚เบถเป‰เบ™, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเป‚เบ›เป‚เบ•เบ„เบญเบ™เบ™เบตเป‰เบšเปเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเปเบžเบฑเบเป€เบเบฑเบ”เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™ payload.

เบกเบฒเบฎเบญเบ”เบ›เบฐเบˆเบธ, เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเป„เบ”เป‰เบ–เบทเบเปเบเป‰เป„เบ‚เบžเบฝเบ‡เปเบ•เปˆเปƒเบ™เบฎเบนเบšเปเบšเบš เป€เบžเบตเป‰เบก, เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เปเบเป‰เป„เบ‚เบเบฑเบ‡เบšเปเปˆเบ—เบฑเบ™เป„เบ”เป‰เบˆเบฑเบ”เบžเบตเบกเบกเบฒ (เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบกเบทเป‰เบงเบฒเบ™เบ™เบตเป‰ 5.0.11 เบเบฒเบ™เปเบเป‰เป„เบ‚ เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบฅเบงเบก). เบˆเบฒเบเบŠเบธเบ”เบเบฒเบ™เปเบˆเบเบขเบฒเบ, kernel 5.0 เป„เบ”เป‰เบ–เบทเบเบ„เบธเป‰เบกเบ„เบญเบ‡เป€เบžเบทเปˆเบญเบฅเบงเบกเป€เบ‚เบปเป‰เบฒเปƒเบ™ Fedora 30, Ubuntu 19.04, Arch Linux, Gentoo เปเบฅเบฐเบเบฒเบ™เปเบœเปˆเบเบฐเบˆเบฒเบเบญเบทเปˆเบ™เป†เบ—เบตเปˆเบ›เบฑเบšเบ›เบธเบ‡เบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡. Debian, Ubuntu 18.10 เปเบฅเบฐเบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบฑเป‰เบ™, RHEL/CentOS ะธ SUSE/openSUSE เบšเบฑเบ™เบซเบฒเบšเปเปˆเบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบš.

เบšเบฑเบ™เบซเบฒเป„เบ”เป‰เบ–เบทเบเบžเบปเบšเป€เบซเบฑเบ™เป€เบ›เบฑเบ™เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ เบฅเบฐเบšเบปเบšเบเบฒเบ™เบ—เบปเบ”เบชเบญเบš fuzzing เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบชเป‰เบฒเบ‡เป‚เบ”เบ Google syzbot เปเบฅเบฐเป€เบ„เบทเปˆเบญเบ‡เบงเบดเป€เบ„เบฒเบฐ เบ„เบฒเบŠเบฒเบ™ (KernelAddressSanitizer), เปเบ™เปƒเบชเปˆเบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเปเบฅเบฐเบ‚เปเป‰เป€เบ—เบฑเบ”เบˆเบดเบ‡เบ‚เบญเบ‡เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡, เป€เบŠเบฑเปˆเบ™: เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบžเบทเป‰เบ™เบ—เบตเปˆเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ—เบตเปˆเบ–เบทเบเบ›เบปเบ”เบ›เปˆเบญเบเปเบฅเบฐเบเบฒเบ™เบงเบฒเบ‡เบฅเบฐเบซเบฑเบ”เปƒเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบกเบตเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบซเบกเบนเบ™เปƒเบŠเป‰เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง.

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

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