ช่องโหว่ระดับ Critical บน Linux Kernel ‘ssh-keysign-pwn’ เสี่ยงทำ SSH keys และ Shadow Passwords รั่วไหล

 

ช่องโหว่ที่เพิ่งถูกเปิดเผยล่าสุดบน Linux Kernel กำลังสร้างความกังวลอย่างมากในชุมชนความปลอดภัยไซเบอร์ เนื่องจากช่องโหว่นี้ทำให้ผู้โจมตีสามารถเข้าถึงข้อมูลที่มีความสำคัญสูง รวมถึง SSH private keys และค่าแฮชรหัสผ่านบนระบบที่ได้รับผลกระทบ

ช่องโหว่ดังกล่าวมีหมายเลข CVE-2026-46333 และถูกเรียกว่า “ssh-keysign-pwn” โดยส่งผลกระทบต่อระบบปฏิบัติการ Linux หลากหลายเวอร์ชัน

ระบบปฏิบัติการ Linux เผชิญกับช่องโหว่หลายรายการในปี 2026 รวมถึง Dirty Pipe, io_uring UAF, Copy Fail, io_uring ZCRX Freelist, Dirty Frag และ Fragnesia

ช่องโหว่บน Linux Kernel “ssh-keysign-pwn”

ช่องโหว่ดังกล่าวมีต้นตอมาจาก logic การควบคุมการเข้าถึงของ ptrace ใน Linux Kernel โดยเฉพาะภายในฟังก์ชัน __ptrace_may_access()

โดยปกติแล้ว กลไกนี้มีหน้าที่จำกัดไม่ให้ Process ต่าง ๆ สามารถตรวจสอบ หรือโต้ตอบกับ Process อื่น ๆ ได้ ทว่าเกิดข้อผิดพลาดทาง logic ที่เชื่อมโยงกับการตรวจสอบสถานะ "Dumpability" ของ Kernel จนทำให้เกิดเงื่อนไขการแย่งชิงทรัพยากรที่อันตรายขึ้น

เมื่อ Process ที่ได้รับสิทธิ์ระดับสูง (เช่น ssh-keysign หรือ chage) กำลังจะปิดตัวลง จะมีช่วงเวลาสั้น ๆ ที่หน่วยความจำของมันถูกล้างค่าไปแล้ว (mm = NULL) แต่ไฟล์ข้อมูลที่เปิดค้างไว้จะยังคงอยู่ ในระหว่างช่องว่างนี้ ผู้โจมตีในระดับ Local ที่ไม่มีสิทธิ์ระดับสูง สามารถใช้ช่องโหว่นี้โดยใช้คำสั่ง pidfd_getfd() เพื่อขโมย File Descriptors เหล่านั้นไปได้

การกระทำนี้จะ bypass การยืนยันตัวตนตามปกติ ส่งผลให้ผู้โจมตีสามารถเข้าถึงไฟล์ที่มีความสำคัญสูงได้โดยไม่ได้รับอนุญาต

นักวิจัยด้านความปลอดภัย ซึ่งรวมถึง Qualys ได้ออกมาเตือนว่า ช่องโหว่นี้อาจนำไปสู่ผลกระทบที่ร้ายแรงตามมา ดังนี้:

  • การขโมย SSH Private Keys ซึ่งจะทำให้ผู้โจมตีสามารถสวมรอยเป็น systems หรือ users ได้
  • การโจมตีแบบ Man-in-the-middle (MitM) จนกว่า Keys ที่ถูกบุกรุกจะถูกเปลี่ยนใหม่
  • สิทธิ์การอ่านไฟล์ /etc/shadow อย่างสมบูรณ์ ทำให้ผู้โจมตีเห็นค่าแฮชของรหัสผ่าน เพื่อนำไปถอดรหัสแบบออฟไลน์
  • โอกาสในการขยายวงของการโจมตี สามารถเจาะเข้าสู่โครงสร้างพื้นฐานส่วนอื่น ๆ ของระบบโดยใช้ข้อมูล Credential ที่ขโมยมาได้

เนื่องจาก SSH keys มักจะถูกนำไปใช้ซ้ำในสภาพแวดล้อมต่าง ๆ ระบบที่ถูกบุกรุกเพียงระบบเดียวสามารถแพร่กระจายไปยังเครือข่ายที่กว้างขึ้นได้

ระบบที่ได้รับผลกระทบ

ช่องโหว่นี้ส่งผลกระทบต่อระบบปฏิบัติการ Linux ส่วนใหญ่ที่ใช้ Kernel เวอร์ชันก่อนหน้าแพตช์ความปลอดภัยที่ปล่อยออกมาเมื่อวันที่ 14 พฤษภาคม 2026 ซึ่งรวมถึง:

  • Ubuntu
  • Debian
  • Arch Linux
  • CentOS
  • Raspberry Pi OS

เนื่องจากมีรายงานว่าช่องโหว่นี้แฝงตัวอยู่มานานกว่า 6 ปี ระบบที่มีการติดตั้ง และใช้งานในระยะยาว จำนวนมากอาจได้รับผลกระทบ

ปัญหาหลักของช่องโหว่นี้อยู่ที่วิธีที่ Kernel จัดการกับ processes ที่ไม่มี memory context โดยแฟล็กสถานะ "Dumpability" ซึ่งเดิมทีถูกออกแบบมาเพื่อควบคุมการทำ Core Dumps ได้ถูกนำกลับมาใช้ซ้ำในการตรวจสอบของ ptrace ทั้ง ๆ ที่ในทาง logic แล้วไม่สมเหตุสมผลอีกต่อไป

เมื่อกระบวนการทำงานสิ้นสุดลง หน่วยความจำของมันจะถูกปล่อยออกไปก่อนที่ไฟล์ข้อมูลที่เปิดค้างไว้ จะถูกล้างข้อมูลตาม

โดย Kernel ไม่สามารถบังคับใช้ข้อจำกัดการเข้าถึงได้อย่างถูกต้องในช่วงสถานะเปลี่ยนผ่านนี้ ทำให้ผู้โจมตีสามารถ bypass ขอบเขตความปลอดภัยได้

ตัวอย่างการโจมตี (PoC) บน GitHub ที่ชื่อว่า ssh-keysign-pwn ได้แสดงให้เห็นอย่างชัดเจนถึงวิธีเปลี่ยนเงื่อนไขการแย่งชิงทรัพยากรนี้ใน Kernel เวอร์ชันก่อน 31e62c2ebbfd

PoC นี้จะสร้างกระบวนการโจมตีขึ้นมาซ้ำ ๆ เพื่อชิงจังหวะกับช่วงที่ตัวช่วยระบบระดับสูงกำลังจะปิดตัวลง โดยใช้คำสั่ง pidfd_getfd เข้าไปฉกชิงไฟล์ข้อมูลของระบบที่มีสิทธิ์ระดับ Root มาให้ได้ก่อนที่ไฟล์เหล่านั้นจะถูกปิดลง

จากการวิเคราะห์ที่มีการเผยแพร่สู่สาธารณะ การเจาะระบบด้วยวิธีนี้มักจะประสบความสำเร็จภายใน 100 ถึง 2,000 ครั้ง ทำให้สามารถใช้งานได้จริงบนระบบจริง

มีการเน้นย้ำถึงเส้นทางการโจมตีหลัก 2 รูปแบบ ได้แก่:

  • การโจมตี ssh-keysign เพื่ออ่าน SSH host private keys จากไฟล์ /etc/ssh/ssh_host_{ecdsa,ed25519,rsa}_key
  • การโจมตีไปที่คำสั่ง chage -l <user> เพื่ออ่านไฟล์ /etc/shadow ผ่านรูปแบบการขโมยไฟล์ข้อมูลระบบในลักษณะเดียวกัน

แนวทางการลดความเสี่ยง

องค์กรต่าง ๆ ควรดำเนินการทันทีเพื่อลดความเสี่ยง ดังนี้:

  • อัปเดตแพตช์ Kernel เวอร์ชันล่าสุด เพื่อแก้ไขช่องโหว่ CVE-2026-46333
  • เปลี่ยน SSH keys ใหม่ทั้งหมด โดยเฉพาะอย่างยิ่งบนระบบที่มีความสำคัญ
  • ตรวจสอบประวัติการเข้าถึงไฟล์ที่มีความสำคัญ เช่น /etc/shadow
  • ตรวจสอบการใช้งานที่น่าสงสัยของระบบที่เรียกใช้ ptrace หรือ pidfd
  • จำกัดสิทธิ์การเข้าถึงของผู้ใช้ในระดับ Local เท่าที่เป็นไปได้ เนื่องจากการโจมตีต้องอาศัยการเข้าถึงในระดับ Local

การที่มีโค้ดสาธิตการโจมตี (PoC) เผยแพร่สู่สาธารณะบน GitHub แล้ว ยิ่งเพิ่มความเป็นไปได้ที่จะเกิดการโจมตีจริงในวงกว้าง ซึ่งทำให้การอัปเดตแพตช์กลายเป็นเรื่องที่ต้องทำอย่างเร่งด่วนที่สุด

เนื่องจาก SSH ถือเป็นแกนหลักในการเข้าถึงระบบอย่างปลอดภัย ทั้งในสภาพแวดล้อมแบบคลาวด์ และในองค์กร การรั่วไหลของ private keys จึงเป็นความเสี่ยงที่มีผลกระทบสูงที่ไม่สามารถมองข้ามได้

ที่มา : Cybersecuritynews