เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเปƒเบ™เบฅเบฐเบšเบปเบšเบเปˆเบญเบ eBPF เบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบซเบฑเบ”เบขเบนเปˆเปƒเบ™เบฅเบฐเบ”เบฑเบš Linux kernel

เบชเบญเบ‡เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเปƒเบซเบกเปˆเป„เบ”เป‰เบ–เบทเบเบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™เบฅเบฐเบšเบปเบšเบเปˆเบญเบ eBPF, เป€เบŠเบดเปˆเบ‡เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบžเบฒเบเปƒเบ™ Linux kernel เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡ virtual เบžเบดเป€เบชเบ”เบ—เบตเปˆเบกเบต JIT. เบ—เบฑเบ‡เบชเบญเบ‡เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบ”เป‰เบงเบเบชเบดเบ”เบ—เบดเบ‚เบญเบ‡เปเบเปˆเบ™, เบขเบนเปˆเบ™เบญเบเป€เบ„เบทเปˆเบญเบ‡ virtual eBPF เบ—เบตเปˆเป‚เบ”เบ”เบ”เปˆเบฝเบง. เบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบšเบฑเบ™เบซเบฒเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป„เบ”เป‰เบ–เบทเบเป€เบœเบตเบเปเบœเปˆเป‚เบ”เบเบ—เบตเบกเบ‡เบฒเบ™ Zero Day Initiative, เป€เบŠเบดเปˆเบ‡เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เปเบ‚เปˆเบ‡เบ‚เบฑเบ™ Pwn2Own, เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ›เบตเบ™เบตเป‰เบกเบตเบเบฒเบ™เป‚เบˆเบกเบ•เบตเบชเบฒเบกเบ„เบฑเป‰เบ‡เปƒเบ™ Ubuntu Linux เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบงเปˆเบฒเป„เบ”เป‰เบ™เปเบฒเปƒเบŠเป‰เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเบ—เบตเปˆเบšเปเปˆเบฎเบนเป‰เบˆเบฑเบเบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰ (เบงเปˆเบฒเบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเปƒเบ™ eBPF เบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบเบฒเบ™เป‚เบˆเบกเบ•เบตเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบฅเบฒเบเบ‡เบฒเบ™) .

  • CVE-2021-3490 - เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเปเบกเปˆเบ™เป€เบเบตเบ”เบกเบฒเบˆเบฒเบเบเบฒเบ™เบ‚เบฒเบ” 32-bit เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ™เบญเบเบ‚เบญเบšเป€เบ‚เบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ” bitwise AND, OR, เปเบฅเบฐ XOR เปƒเบ™ eBPF ALU32. เบœเบนเป‰เป‚เบˆเบกเบ•เบตเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เบ›เบฐเป‚เบเบ”เบˆเบฒเบเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ™เบตเป‰เป€เบžเบทเปˆเบญเบญเปˆเบฒเบ™ เปเบฅเบฐเบ‚เบฝเบ™เบ‚เปเป‰เบกเบนเบ™เบขเบนเปˆเบ™เบญเบเบ‚เบญเบšเป€เบ‚เบ”เบ‚เบญเบ‡เบšเบฑเบŸเป€เบŸเบตเบ—เบตเปˆเบˆเบฑเบ”เบชเบฑเบ™เป„เบงเป‰. เบšเบฑเบ™เบซเบฒเบเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™ XOR เบ›เบฐเบเบปเบ”เบ‚เบถเป‰เบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบˆเบฒเบ kernel เป€เบงเบตเบŠเบฑเปˆเบ™ 5.7-rc1, เปเบฅเบฐ AND เปเบฅเบฐ OR - เป€เบฅเบตเปˆเบกเบˆเบฒเบ 5.10-rc1.
  • CVE-2021-3489 - เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเปเบกเปˆเบ™เป€เบเบตเบ”เบกเบฒเบˆเบฒเบเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡ ring buffer เปเบฅเบฐเป€เบ›เบฑเบ™เบเป‰เบญเบ™เบ„เบงเบฒเบกเบˆเบดเบ‡เบ—เบตเปˆเบงเปˆเบฒเบŸเบฑเบ‡เบŠเบฑเบ™ bpf_ringbuf_reserve เบšเปเปˆเป„เบ”เป‰เบเบงเบ”เบชเบญเบšเบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบงเปˆเบฒเบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบžเบทเป‰เบ™เบ—เบตเปˆเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ—เบตเปˆเบ–เบทเบเบˆเบฑเบ”เบชเบฑเบ™เบชเบฒเบกเบฒเบ”เบ™เป‰เบญเบเบเบงเปˆเบฒเบ‚เบฐเบซเบ™เบฒเบ”เบ•เบปเบงเบˆเบดเบ‡. เบ‚เบญเบ‡ ringbuf เป„เบ”เป‰. เบšเบฑเบ™เบซเบฒเบ›เบฒเบเบปเบ”เบ•เบฑเป‰เบ‡เปเบ•เปˆเบเบฒเบ™เบ›เปˆเบญเบ 5.8-rc1.

เบชเบฐเบ–เบฒเบ™เบฐเบ‚เบญเบ‡ patching vulnerabilities เปƒเบ™เบเบฒเบ™เปเบˆเบเบขเบฒเบเบชเบฒเบกเบฒเบ”เบ•เบดเบ”เบ•เบฒเบกเป„เบ”เป‰เปƒเบ™เบซเบ™เป‰เบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰: Ubuntu, Debian, RHEL, Fedora, SUSE, Arch). เบเบฒเบ™โ€‹เปเบเป‰โ€‹เป„เบ‚โ€‹เบเบฑเบ‡โ€‹เบกเบตโ€‹เบขเบนเปˆโ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เปเบเป‰โ€‹เป„เบ‚ (CVE-2021-3489, CVE-2021-3490). เบšเบฑเบ™เบซเบฒเบชเบฒเบกเบฒเบ”เบ–เบทเบเบ‚เบนเบ”เบฎเบตเบ”เปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบงเปˆเบฒเบเบฒเบ™เป‚เบ—เบฅเบฐเบšเบปเบš eBPF เบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบœเบนเป‰เปƒเบŠเป‰เป„เบ”เป‰เบšเป. เบ•เบปเบงเบขเปˆเบฒเบ‡, เปƒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบ™ RHEL, เบเบฒเบ™เบ‚เบนเบ”เบฎเบตเบ”เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบœเบนเป‰เปƒเบŠเป‰เบกเบตเบชเบดเบ” CAP_SYS_ADMIN.

เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ, เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเบญเบทเปˆเบ™เปƒเบ™ Linux kernel - CVE-2021-32606, เป€เบŠเบดเปˆเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบœเบนเป‰เปƒเบŠเป‰เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบเบปเบเบชเบนเบ‡เบชเบดเบ”เบ—เบดเบžเบดเป€เบชเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเปƒเบ™เบฅเบฐเบ”เบฑเบšเบฎเบฒเบ. เบšเบฑเบ™เบซเบฒเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป„เบ”เป‰เป€เบซเบฑเบ™เป„เบ”เป‰เบŠเบฑเบ”เป€เบˆเบ™เบ•เบฑเป‰เบ‡เปเบ•เปˆ Linux kernel 5.11 เปเบฅเบฐเป€เบเบตเบ”เบกเบฒเบˆเบฒเบเบชเบฐเบžเบฒเบšเป€เบŠเบทเป‰เบญเบŠเบฒเบ”เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡ CAN ISOTP protocol, เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบ›เปˆเบฝเบ™เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบœเบนเบเบกเบฑเบ”เบ‚เบญเบ‡เป€เบ•เบปเป‰เบฒเบฎเบฑเบšเป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบเบฒเบ™เบ‚เบฒเบ”เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบฅเบฑเบญเบเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเปƒเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆ isotp_setsockopt() เป€เบกเบทเปˆเบญเบ›เบฐเบกเบงเบ™เบœเบปเบ™เบ—เบธเบ‡ CAN_ISOTP_SF_BROADCAST.

เบซเบผเบฑเบ‡เบˆเบฒเบเบŠเบฑเบญเบเป€เบเบฑเบ” ISOTP เบ–เบทเบเบ›เบดเบ”, เบเบฒเบ™เบœเบนเบเบกเบฑเบ”เบเบฑเบšเป€เบ•เบปเป‰เบฒเบฎเบฑเบšเบœเบนเป‰เบฎเบฑเบšเบเบฑเบ‡เบ„เบปเบ‡เบกเบตเบœเบปเบ™, เป€เบŠเบดเปˆเบ‡เบชเบฒเบกเบฒเบ”เบชเบทเบšเบ•เปเปˆเบ™เปเบฒเปƒเบŠเป‰เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเป€เบ•เบปเป‰เบฒเบฎเบฑเบšเบซเบผเบฑเบ‡เบˆเบฒเบเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบžเบงเบเบกเบฑเบ™เบ–เบทเบเบ›เบปเบ”เบ›เปˆเบญเบ (เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบžเบฒเบเบซเบผเบฑเบ‡เบ—เบตเปˆเบšเปเปˆเป€เบชเบเบ„เปˆเบฒเป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบเบฒเบ™เป‚เบ—เบซเบฒ isotp_rcv() เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡ isotp_sock เบ—เบตเปˆเบ–เบทเบเบ›เบปเบ”เบ›เปˆเบญเบเปเบฅเป‰เบง). เป‚เบ”เบเบœเปˆเบฒเบ™เบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบ‚เปเป‰เบกเบนเบ™, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ” override เบ•เบปเบงเบŠเบตเป‰เป„เบ›เบซเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆ sk_error_report() เปเบฅเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เปƒเบ™เบฅเบฐเบ”เบฑเบš kernel.

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

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