Linux kernel 6 ช่องโหว่ลง CISA KEV ส.ค.-ต.ค. 2026 อัปเดตแล้วต้องรีบูต
ใครมีเครื่อง Linux ที่ให้คนอื่นรันโค้ดได้ ทั้ง shared hosting, container host และเครื่องที่เว็บเคยถูกฝัง webshell ให้อัปเดต kernel แล้วรีบูตเร็วที่สุด
สรุปใน 1 นาที
- อาการ/ปัญหา
- ช่องโหว่ Linux kernel 6 ตัวถูกใช้โจมตีจริงและอยู่ใน CISA KEV เกือบทั้งหมดเปลี่ยนบัญชีธรรมดาเป็น root
- ใครควรอ่าน
- ทุกเครื่องที่รัน kernel รุ่นเก่ากว่ารุ่นที่แก้ โดยเฉพาะเครื่องที่มีหลายผู้ใช้ มีเว็บหลายเว็บ หรือรัน container
- ทางแก้แบบสั้น
- อัปเดต package kernel จาก distro แล้วรีบูต จากนั้นเช็กว่า uname -v ตรงกับรุ่นที่ติดตั้งจริง
พอดีไล่ดูรายการ CISA KEV ย้อนหลังแล้วเห็นว่าตั้งแต่ปลายเดือน ส.ค. ถึง 28 ต.ค. 2026 มี Linux kernel เข้าไปอยู่ในรายการถึง 6 ตัว ผมเลยรวมไว้ในโพสต์เดียว เพราะวิธีรับมือเหมือนกันหมด คือ อัปเดต kernel แล้ว รีบูต และเกือบทุกตัวเป็นช่องโหว่ฝั่ง local ที่เปลี่ยนบัญชีสิทธิ์ต่ำให้กลายเป็น root
เกิดอะไรขึ้น
ทั้ง 6 ตัวเป็นบั๊กในโค้ด kernel ฝั่ง network, crypto และ subsystem อื่นๆ ไม่ใช่ช่องโหว่ของเว็บแอป ตารางด้านล่างสรุปตามข้อมูลใน CVE record และ KEV
| CVE | ส่วนของ kernel | CVSS 3.1 | ลง KEV | รุ่น upstream ที่แก้ (6.12 / 6.6 / 6.1) |
|---|---|---|---|---|
| CVE-2022-0995 | watch_queue เขียนนอกขอบเขต | 7.8 | 26 ส.ค. | record ไม่ระบุเลขรุ่น (มี fix commit) |
| CVE-2026-53362 | IPv6 __ip6_append_data() บัฟเฟอร์ล้น |
7.8 | 27 ส.ค. | 6.12.95 / 6.6.144 / 6.1.177 |
| CVE-2026-53266 | ebtables SNAT เขียนลงหน้าไฟล์ | 8.8 | 18 ก.ย. | 6.12.94 / 6.6.143 / 6.1.176 |
| CVE-2025-39964 | AF_ALG race condition | 7.8 | 18 ก.ย. | 6.12.49 / 6.6.108 / 6.1.154 |
| CVE-2025-39682 | TLS receive path (tls_sw) |
9.8 | 18 ก.ย. | 6.12.44 / 6.6.103 / 6.1.149 |
| CVE-2026-46300 | ESP input กับ page cache | 7.8 | 28 ต.ค. | 6.12.91 / 6.6.141 / 6.1.174 |
ตัวที่น่าสนใจที่สุดคือ CVE-2026-46300 ที่ Red Hat เรียกว่า "Fragnesia" ตัว skb_try_coalesce() ย้ายชิ้นข้อมูลโดยไม่เก็บธง shared-fragment ไว้ ทำให้ฝั่ง ESP ถอดรหัสทับหน้า page cache ที่เป็นของไฟล์จริง ผู้โจมตี local เลยเขียนไบต์ลงไฟล์ที่อ่านได้อย่างเดียว เช่น binary ที่มีสิทธิ์สูง และไต่ไปเป็น root ได้ ข้อความใน KEV ระบุด้วยว่าตัวนี้เอาไปต่อกับ CVE-2026-109618 และ CVE-2026-109619 ฝัง PHP webshell แล้วรันคำสั่งเป็น root ได้ ซึ่งตรงกับเรื่อง php2shell ที่ผมเขียนไว้ก่อนหน้า
ระดับความรุนแรง
ทั้ง 6 ตัวอยู่ใน CISA KEV แปลว่ามีการโจมตีใช้งานจริง ข้อมูล SSVC ที่ CISA แนบใน CVE record ของแต่ละตัวระบุ exploitation เป็น active ตัว CVE-2025-39682 ได้ CVSS 9.8 เพราะ CNA ให้เวกเตอร์ AV:N/PR:N ส่วนอีก 5 ตัวเป็น AV:L คือต้องมีบัญชีบนเครื่องอยู่แล้ว ฟังดูเบากว่า แต่บนเครื่องที่รันเว็บหลายเว็บ เว็บเดียวที่โดนฝัง webshell ก็คือบัญชีบนเครื่องแล้ว
เรื่องที่ผมอยากให้ดูเป็นพิเศษคือ container ครับ ทุก container ใช้ kernel ตัวเดียวกับ host Ubuntu ระบุในหน้า CVE-2026-46300 ว่าผู้โจมตี local อาจยกสิทธิ์หรือหลุดออกจาก container ได้ ส่วน CISA หมายเหตุใน KEV ว่า CVE-2026-53266 และ CVE-2025-39682 อาจกระทบ product ที่หมดอายุซัพพอร์ตแล้ว แนะนำให้เลิกใช้หรือย้ายไปรุ่นที่ยังดูแลอยู่
รุ่นที่แก้ใน Debian และ Ubuntu
Debian ออก DSA-6602-1 เมื่อ 2 พ.ย. 2026 รวมช่องโหว่กว่า 600 CVE ในประกาศเดียว ตัวประกาศระบุรุ่นที่แก้สำหรับ Debian 13 (trixie) คือ 6.12.115-2 ตัวประกาศ DSA-6602-1 เองไม่มี CVE-2026-46300 อยู่ในรายการ ผมเลยไล่ดู Debian security tracker รายตัวแทน ที่เปิดอ่านได้ครบคือ 46300, 53266, 39964 และ 39682 ซึ่งระบุรุ่นแก้ขั้นต่ำต่างกันไป (เช่น 39682 แก้ตั้งแต่ trixie 6.12.48-1 และ bookworm 6.1.153-1, 46300 และ 53266 แก้ตั้งแต่ trixie 6.12.107-1 และ bookworm 6.1.176-1) แต่ทุกตัวมีรุ่นใน security suite ล่าสุดตรงกันคือ trixie 6.12.115-2 และ bookworm 6.1.190-1 ผมเลยแนะนำให้ใช้สองเลขนี้เป็นเป้าเดียวจบ ส่วน 53362 กับ 2022-0995 ผมยังไม่ได้ยืนยันรายตัวใน tracker
ฝั่ง Ubuntu ผมเปิดแค่หน้า CVE-2026-46300 รุ่นที่แก้ของแพ็กเกจ linux หลักคือ 26.04 ที่ 7.0.0-22.22, 25.10 ที่ 6.17.0-35.35, 24.04 ที่ 6.8.0-124.124 และ 22.04 ที่ 5.15.0-181.191 ส่วนตัวอื่นให้ไปเปิดหน้า ubuntu.com/security/CVE-... ของแต่ละตัว และดูรุ่นของ kernel flavor ที่ใช้อยู่ เช่น linux-aws ด้วย เพราะแต่ละ flavor มีเลขรุ่นของตัวเอง
วิธีแก้
ลำดับคือ ติดตั้ง kernel ใหม่ แล้วรีบูต แล้วเช็กว่าเครื่องบูตเข้ารุ่นใหม่จริง
- เรียงเครื่องตามความเสี่ยง เริ่มจากเครื่องที่มีหลายผู้ใช้ หลายเว็บ หรือรัน container ของคนอื่น
- อัปเดต kernel ผ่าน apt หรือ dnf ของ distro
- รีบูต แจ้งช่วงดับเครื่องล่วงหน้าตามปกติ
- เทียบรุ่น ด้วย uname -v กับรุ่นที่ติดตั้ง แล้วค่อยปิดงาน
kernel ที่รันอยู่ในหน่วยความจำไม่เปลี่ยนจนกว่าจะบูตใหม่ เครื่องที่ uptime ยาวหลายร้อยวันมักเป็นเครื่องที่ติดตั้งแพตช์ไว้แล้วแต่ยังรัน kernel เก่า
# Debian / Ubuntu
sudo apt update
sudo apt full-upgrade
sudo reboot
# RHEL / Rocky / AlmaLinux
sudo dnf upgrade --refresh 'kernel*'
sudo reboot
หลังบูตกลับมา เทียบรุ่นที่รันอยู่กับรุ่นที่ติดตั้งไว้ เพราะ package ใหม่ที่ลงแล้วยังไม่รีบูตจะไม่ทำให้ kernel ที่รันอยู่เปลี่ยน
uname -r # kernel ที่รันอยู่ตอนนี้
uname -v # Debian จะแสดงเลขแพ็กเกจ เช่น Debian 6.12.115-2
dpkg -l 'linux-image-*' | grep '^ii' # ที่ติดตั้งไว้ทั้งหมด
# Ubuntu: ไฟล์นี้มีเมื่อต้องรีบูต
ls -l /var/run/reboot-required 2>/dev/null
# ตัวช่วยเช็ก kernel ที่รันกับที่ควรเป็น
sudo needrestart -k -b # เทียบ NEEDRESTART-KCUR กับ NEEDRESTART-KEXP
sudo needs-restarting -r # RHEL ตระกูลเดียวกัน (ต้องมีแพ็กเกจ dnf-utils)
ถ้ารีบูตทันทีไม่ได้และต้องเลื่อนไปก่อน Ubuntu มีบริการ Livepatch แต่ผมไม่ได้เปิดรายการ CVE ที่ livepatch ครอบคลุม เลยไม่ขอยืนยันว่าทั้ง 6 ตัวถูกปิดด้วยวิธีนี้ ให้เช็กสถานะด้วย canonical-livepatch status --verbose และเทียบ CVE กับรายการของ Canonical เอง อย่าเดา
สำหรับกลุ่ม Dirty Frag/Fragnesia Ubuntu แนะนำให้ปิดโมดูล esp4, esp6 และ rxrpc ด้วย install esp4 /bin/false ใน /etc/modprobe.d/ แล้วรัน update-initramfs -u -k all แต่จะทำให้ IPsec (เช่น strongSwan) กับ AFS ใช้ไม่ได้ และ Ubuntu เองก็บอกว่าไม่จำเป็นอีกเมื่อลง kernel ที่แก้แล้ว ใช้เฉพาะเครื่องที่ยังอัปเดตไม่ได้เท่านั้น
เช็กว่าโดนหรือยัง
ในแหล่งที่ผมเปิดอ่านไม่มี IOC ที่เป็นทางการสำหรับ 6 ตัวนี้ สิ่งที่ผมไล่ดูได้คือพฤติกรรมทั่วไปหลังเว็บถูกฝังโค้ด
# บัญชี UID 0 ที่ไม่ควรมี
awk -F: '$3==0 {print $1}' /etc/passwd
# ไฟล์ setuid ที่ถูกแก้ภายใน 30 วัน
sudo find / -xdev -perm -4000 -type f -mtime -30 -ls 2>/dev/null
# เว็บเก่าที่มีไฟล์ PHP แปลกๆ ใน uploads
find /home/webuser/public_html -name '*.php' -path '*uploads*' -mtime -30
ถ้าเจออะไรผิดปกติ อย่าแค่ลบไฟล์ เพราะผู้โจมตีที่เคยเป็น root แล้วอาจฝังของไว้ที่อื่น แนวทางที่ปลอดภัยกว่าคือสร้างเครื่องใหม่จาก backup ที่สะอาด ผมเขียนวิธีตรวจเครื่อง Debian ไว้ใน debian-server-security-scan
ส่วนตัวผม ถ้าเป็นเครื่องที่ให้คนหลายคนรันโค้ดได้ หรือมี container ของคนอื่นอยู่ ผมจะอัปเดตกับรีบูตภายในวันที่เห็นประกาศเลย ส่วนเครื่องใช้งานคนเดียวที่ไม่ได้เปิดบริการให้ใคร เลื่อนไปรอบบำรุงรักษาถัดไปได้ แต่ไม่ควรปล่อยเกินหนึ่งสัปดาห์ เพราะช่องโหว่ 6 ตัวนี้ถูกใช้จริงแล้ว
ปล. KEV ของตัวล่าสุด (CVE-2026-46300) มีกำหนดแก้ภายใน 31 ต.ค. 2026 ตามเงื่อนไขของหน่วยงานรัฐบาลกลางสหรัฐ เป็นสัญญาณว่าเรื่องนี้ไม่ได้รอได้นาน
ที่มา: CISA Known Exploited Vulnerabilities Catalog (https://www.cisa.gov/known-exploited-vulnerabilities-catalog), CVE records ของทั้ง 6 ตัวบน cve.org (https://www.cve.org/CVERecord?id=CVE-2026-46300), Debian DSA-6602-1 (https://lists.debian.org/debian-security-announce/2026/msg00521.html), Debian Security Tracker (https://security-tracker.debian.org/tracker/CVE-2026-46300), Ubuntu CVE tracker (https://ubuntu.com/security/CVE-2026-46300), Ubuntu blog Dirty Frag (https://ubuntu.com/blog/dirty-frag-linux-vulnerability-fixes-available) ข้อมูลถึง 5 พ.ย. 2026 ถ้า distro อื่นหรือ kernel flavor อื่นออกรุ่นแก้ตามมา เดี๋ยวกลับมาแก้เพิ่มให้ภายหลังครับ
อยากให้เราทำให้ไหม?
ให้เราช่วยติดตั้ง ตั้งค่า ย้ายระบบ หรือแก้ปัญหาเซิร์ฟเวอร์ เพื่อให้คุณมีเวลาไปทำงานที่สำคัญกว่า
เคยเจองานแบบนี้ไหม? ติดตรงไหน?
มาแลกวิธีกันต่อในบอร์ด LinuxThai



ความคิดเห็น 0
ยังไม่มีความคิดเห็น — เป็นคนแรกเลย