เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเปƒเบ™ Linux เปเบฅเบฐ FreeBSD TCP stacks เบ™เปเบฒเป„เบ›เบชเบนเปˆเบเบฒเบ™เบ›เบฐเบ•เบดเป€เบชเบ”เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบˆเบฒเบเป„เบฅเบเบฐเป„เบ

เบšเปเบฅเบดเบชเบฑเบ” Netflix เป€เบ›เบตเบ”เป€เบœเบตเบ เบชเปเบฒเบ„เบฑเบ™เบซเบผเบฒเบ เบ„เบงเบฒเบกเบญเปˆเบญเบ™เปเบญ เปƒเบ™ Linux เปเบฅเบฐ FreeBSD TCP stacks, เป€เบŠเบดเปˆเบ‡เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบฅเบดเป€เบฅเบตเปˆเบกเบเบฒเบ™เบ‚เบฑเบ”เบ‚เป‰เบญเบ‡เบ‚เบญเบ‡เปเบเปˆเบ™เบˆเบฒเบเป„เบฅเบเบฐเป„เบเบซเบผเบทเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบเบฒเบ™เบšเปเบฅเบดเป‚เบžเบเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบซเบผเบฒเบเป€เบเบตเบ™เป„เบ›เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เปเบžเบฑเบเป€เบเบฑเบ” TCP เบ—เบตเปˆเบ–เบทเบเบญเบญเบเปเบšเบšเบžเบดเป€เบชเบ” (packet-of-death). เบšเบฑเบ™เบซเบฒ เป€เบเบตเบ”เบกเบฒเบˆเบฒเบ เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เปƒเบ™เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบ‚เบฐเบซเบ™เบฒเบ”เบšเบฅเบฑเบญเบเบ‚เปเป‰เบกเบนเบ™เบชเบนเบ‡เบชเบธเบ”เปƒเบ™เบŠเบธเบ” TCP (MSS, เบ‚เบฐเบซเบ™เบฒเบ”เบชเปˆเบงเบ™เบชเบนเบ‡เบชเบธเบ”) เปเบฅเบฐเบเบปเบ™เป„เบเบเบฒเบ™เบฎเบฑเบšเบฎเบนเป‰เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ (SACK, TCP Selective Acknowledgment).

  • CVE-2019-11477 (SACK Panic) - เบšเบฑเบ™เบซเบฒเบ—เบตเปˆเบ›เบฒเบเบปเบ”เบขเบนเปˆเปƒเบ™ Linux kernels เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบˆเบฒเบ 2.6.29 เปเบฅเบฐเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰ kernel panic เป‚เบ”เบเบเบฒเบ™เบชเบปเปˆเบ‡เบŠเบธเบ”เบ‚เบญเบ‡เบŠเบธเบ” SACK เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบˆเปเบฒเบ™เบงเบ™ integer overflow เปƒเบ™ handler. เป€เบžเบทเปˆเบญเป‚เบˆเบกเบ•เบต, เบกเบฑเบ™เบžเบฝเบ‡เบžเปเบ—เบตเปˆเบˆเบฐเบเปเบฒเบ™เบปเบ”เบ„เปˆเบฒ MSS เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ TCP เป€เบ›เบฑเบ™ 48 เป„เบšเบ•เปŒ (เบ‚เบญเบšเป€เบ‚เบ”เบˆเปเบฒเบเบฑเบ”เบ•เปˆเปเบฒเบเปเบฒเบ™เบปเบ”เบ‚เบฐเบซเบ™เบฒเบ” segment เป€เบ›เบฑเบ™ 8 bytes) เปเบฅเบฐเบชเบปเปˆเบ‡เบฅเปเบฒเบ”เบฑเบšเบ‚เบญเบ‡เบŠเบธเบ” SACK เบˆเบฑเบ”เบฅเบฝเบ‡เบ•เบฒเบกเบ—เบฒเบ‡เบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™.

    เปƒเบ™โ€‹เบ–เบฒโ€‹เบ™เบฐโ€‹เป€เบ›เบฑเบ™โ€‹เบเบฒเบ™โ€‹เปเบเป‰โ€‹เป„เบ‚โ€‹เบ„เบงเบฒเบกโ€‹เบ›เบญเบ”โ€‹เป„เบžโ€‹, เบ—เปˆเบฒเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ›เบดเบ”โ€‹เบเบฒเบ™โ€‹เบ›เบธเบ‡โ€‹เปเบ•เปˆเบ‡ SACK (เบ‚เบฝเบ™ 0 เบเบฑเบš /proc/sys/net/ipv4/tcp_sack) เบซเบผเบท เบšเบฅเบฑเบญเบ เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ MSS เบ•เปˆเปเบฒ (เบžเบฝเบ‡เปเบ•เปˆเป€เบฎเบฑเบ”เบงเบฝเบเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ sysctl net.ipv4.tcp_mtu_probing เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป€เบ›เบฑเบ™ 0 เปเบฅเบฐเบญเบฒเบ”เบˆเบฐเบฅเบปเบšเบเบงเบ™เบšเบฒเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ MSS เบ•เปˆเปเบฒเบ›เบปเบเบเบฐเบ•เบด);

  • CVE-2019-11478 (SACK Slowness) - เบ™เปเบฒเป„เบ›เบชเบนเปˆเบเบฒเบ™เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เบ‚เบญเบ‡เบเบปเบ™เป„เบ SACK (เป€เบกเบทเปˆเบญเปƒเบŠเป‰ Linux kernel เบญเบฒเบเบธเบ•เปเปˆเบฒเบเบงเปˆเบฒ 4.15) เบซเบผเบทเบเบฒเบ™เบšเปเบฅเบดเป‚เบžเบเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบซเบผเบฒเบเป€เบเบตเบ™เป„เบ›. เบšเบฑเบ™เบซเบฒเป€เบเบตเบ”เบ‚เบถเป‰เบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบŠเบญเบ‡ SACK เบซเบฑเบ”เบ–เบฐเบเปเบฒเบžเบดเป€เบชเบ”, เป€เบŠเบดเปˆเบ‡เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญ fragment เปเบ–เบง retransmission (TCP retransmission). เบเบฒเบ™เปเบเป‰เป„เบ‚เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเปเบกเปˆเบ™เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบšเบ„เบงเบฒเบกเบญเปˆเบญเบ™เปเบญเบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ;
  • CVE-2019-5599 (SACK Slowness) - เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบเบฒเบ™เปเบ•เบเปเบเบเบ‚เบญเบ‡เปเบœเบ™เบ—เบตเปˆเบ‚เบญเบ‡เปเบžเบฑเบเป€เบเบฑเบ”เบ—เบตเปˆเบชเบปเปˆเบ‡เป„เบ›เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบฅเปเบฒเบ”เบฑเบš SACK เบžเบดเป€เบชเบ”เบžเบฒเบเปƒเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ TCP เบ”เบฝเบงเปเบฅเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบเบฒเบ™เบ™เบฑเบšเบˆเปเบฒเบ™เบงเบ™เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ—เบตเปˆเบกเบตเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบซเบผเบฒเบ. เบšเบฑเบ™เบซเบฒเบ›เบฒเบเบปเบ”เบขเบนเปˆเปƒเบ™ FreeBSD 12 เบเบฑเบšเบเบปเบ™เป„เบเบเบฒเบ™เบเบงเบ”เบžเบปเบšเบเบฒเบ™เบชเบนเบ™เป€เบชเบเปเบžเบฑเบเป€เบเบฑเบ” RACK. เปƒเบ™เบ–เบฒเบ™เบฐเป€เบ›เบฑเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™เป‚เบกเบ”เบนเบ™ RACK;
  • CVE-2019-11479 - เบœเบนเป‰เป‚เบˆเบกเบ•เบตเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เปƒเบซเป‰ Linux kernel เปเบเบเบ„เปเบฒเบ•เบญเบšเบญเบญเบเป€เบ›เบฑเบ™ TCP เบซเบผเบฒเบเบžเบฒเบเบชเปˆเบงเบ™, เปเบ•เปˆเบฅเบฐเบ„เบปเบ™เบกเบตเบ‚เปเป‰เบกเบนเบ™เบžเบฝเบ‡เปเบ•เปˆ 8 bytes, เป€เบŠเบดเปˆเบ‡เบชเบฒเบกเบฒเบ”เบ™เปเบฒเป„เบ›เบชเบนเปˆเบเบฒเบ™เป€เบžเบตเปˆเบกเบ‚เบทเป‰เบ™เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบเปƒเบ™เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™, เบเบฒเบ™เป‚เบซเบผเบ” CPU เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เปเบฅเบฐเบเบฒเบ™เบญเบธเบ”เบ•เบฑเบ™เบ‚เบญเบ‡เบŠเปˆเบญเบ‡เบ—เบฒเบ‡เบเบฒเบ™เบชเบทเปˆเบชเบฒเบ™. เบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เป€เบ›เบฑเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เป‰เบญเบ‡เบเบฑเบ™. เบšเบฅเบฑเบญเบ เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบš MSS เบ•เปˆเปเบฒ.

    เปƒเบ™ Linux kernel, เบšเบฑเบ™เบซเบฒเป„เบ”เป‰เบ–เบทเบเปเบเป‰เป„เบ‚เปƒเบ™เบเบฒเบ™เบ›เปˆเบญเบ 4.4.182, 4.9.182, 4.14.127, 4.19.52, เปเบฅเบฐ 5.1.11. เบเบฒเบ™เปเบเป‰เป„เบ‚เบชเปเบฒเบฅเบฑเบš FreeBSD เปเบกเปˆเบ™เบกเบตเบขเบนเปˆเปƒเบ™ เป€เบžเบตเป‰เบก. เปƒเบ™เบเบฒเบ™เปเบˆเบเบขเบฒเบ, เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบซเบธเป‰เบกเบซเปเปˆ kernel เป„เบ”เป‰เบ–เบทเบเบ›เปˆเบญเบเบญเบญเบเบกเบฒเปเบฅเป‰เบงเบชเปเบฒเบฅเบฑเบš Debian, RHEL, SUSE/openSUSE. เบเบฒเบ™เปเบเป‰เป„เบ‚เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบเบฐเบเบฝเบก Ubuntu, Fedora ะธ Arch Linux.

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

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