Ubuntu แก้ ruby-jwt เสี่ยงปลอมโทเคนข้ามล็อกอิน USN-9059-1
ผู้ดูแลระบบและนักพัฒนาที่ใช้ ruby-jwt ตรวจโทเคนแบบ HMAC ควรตรวจคีย์และติดตั้งแพตช์โดยเร็ว โดยเร่งระบบที่อาจส่งคีย์ว่างเข้าตัวตรวจลายเซ็นก่อน
1-minute summary
- Symptom / problem
- ผู้โจมตีจากระยะไกลอาจปลอมโทเคนผ่านการตรวจลายเซ็น HMAC ได้เมื่อคีย์ตรวจสอบว่างหรือขาดหาย
- Who should read
- ผู้ดูแลระบบและนักพัฒนาที่ใช้ ruby-jwt ในเส้นทางยืนยันตัวตนของแอปพลิเคชัน
- Fix in short
- อัปเดต ruby-jwt เป็นแพ็กเกจที่แก้แล้วตามรุ่น Ubuntu และตรวจว่าแอปปฏิเสธการตรวจโทเคนเมื่อไม่มีคีย์ที่ใช้ได้
พอดีเห็น Ubuntu ออกประกาศ USN-9059-1 ลงวันที่ 11 พฤศจิกายน 2026 เรื่อง ruby-jwt ซึ่งเป็นไลบรารี Ruby สำหรับจัดการ JSON Web Token หรือ JWT ปัญหาอยู่ที่การตรวจลายเซ็น HMAC ด้วยคีย์ว่าง ผู้โจมตีอาจปลอมโทเคนให้ผ่านการตรวจ แล้วเข้าถึงบริการโดยไม่ได้รับอนุญาต
ใครต้องทำอะไร
- ผู้ดูแลระบบ: ถ้าบริการบน Ubuntu ใช้ ruby-jwt ตรวจโทเคน ให้ตรวจรุ่นแพ็กเกจและติดตั้งแพตช์โดยเร็ว โดยให้ความสำคัญกับบริการที่รับคำขอจากอินเทอร์เน็ตก่อน
- นักพัฒนา: ถ้าแอปใช้ ruby-jwt ตรวจลายเซ็น HMAC ให้ตรวจว่าคีย์อาจว่างหรือหาไม่พบได้หรือไม่ และอัปเดตไลบรารีพร้อมแก้การจัดการคีย์โดยเร็ว
เกิดอะไรขึ้น
ลายเซ็น HMAC ใช้คีย์ลับตรวจว่าโทเคนมาจากผู้ที่เชื่อถือได้ ช่องโหว่ CVE-2026-45363 ทำให้ ruby-jwt ยอมตรวจลายเซ็นด้วยคีย์ว่าง ผู้โจมตีเลยอาจสร้างโทเคนให้ผ่านการตรวจของแอปที่เข้าเงื่อนไข
ปัญหาครอบคลุม HS256, HS384 และ HS512 รวมถึงบางกรณีที่ฟังก์ชันค้นหาคีย์ส่งค่าว่างกลับมา ตามประกาศผู้พัฒนา แอปที่ส่งคีย์คงที่ซึ่งไม่ว่างไม่กระทบเงื่อนไขนี้ ผู้พัฒนาควรตรวจกรณีหาไม่พบคีย์ด้วย อย่าตรวจเฉพาะการตั้งค่าตอนเริ่มแอป
ช่องโหว่นี้ยังไม่อยู่ใน KEV ฉบับ 10 พฤศจิกายน 2026 สถานะนี้ไม่ได้แปลว่าไม่มีการโจมตี
ใครโดนและรุ่นที่แก้
ตารางนี้อ้างอิงหน้า CVE ของ Ubuntu ที่เชื่อมกับ USN-9059-1 เพราะหน้า USN ฉบับเต็มเปิดไม่ได้ระหว่างตรวจบทความ
| Ubuntu | แพ็กเกจ | รุ่นที่แก้แล้ว |
|---|---|---|
| 26.04 LTS | ruby-jwt | 2.7.1-1+deb13u1build0.26.04.1 |
| 24.04 LTS | ruby-jwt | 2.7.1-1+deb13u1build0.24.04.1 |
| 22.04 LTS | ruby-jwt | 2.2.2-1ubuntu0.1~esm1 |
| 20.04 LTS | ruby-jwt | 2.1.0-2ubuntu0.1~esm1 |
| 18.04 LTS | ruby-jwt | 1.5.6-1ubuntu0.1~esm1 |
| 16.04 LTS | ruby-jwt | 1.0.0-3ubuntu0.1~esm1 |
หน้า CVE ระบุว่า Ubuntu 26.10 ไม่กระทบช่องโหว่นี้ และให้ Ubuntu priority เป็น Medium ส่วนคะแนน CVSS ต่างกัน: Ubuntu และ CVE record ให้ 9.1 Critical แต่ประกาศผู้พัฒนาให้ 7.4 High จุดที่ต่างคือ Attack Complexity เป็น Low กับ High ตามลำดับ
ถ้าติดตั้ง gem โดยตรง ผู้พัฒนาระบุรุ่นแก้เป็น 2.10.3 และ 3.2.0 ส่วนแพ็กเกจ Ubuntu ให้เทียบเลขรุ่นเต็มในตาราง เพราะมีการนำแพตช์มาใส่ในรุ่นเดิมได้
ต้องทำอะไร
สำหรับระบบที่ใช้แพ็กเกจจาก Ubuntu ให้รีเฟรชรายการแพ็กเกจ ตรวจรุ่นที่คลังเสนอ แล้วอัปเดต ruby-jwt คำสั่งต่อไปนี้ใช้กับแพ็กเกจที่ติดตั้งอยู่แล้ว จากนั้นดูรุ่นที่ติดตั้งและเทียบกับแถวของ Ubuntu รุ่นนั้น:
sudo apt update
apt-cache policy ruby-jwt
sudo apt install --only-upgrade ruby-jwt
dpkg-query -W ruby-jwt
หน้า CVE ระบุว่าแพตช์ของ Ubuntu 22.04 LTS, 20.04 LTS และ 18.04 LTS ต้องรับผ่าน Ubuntu Pro ในส่วน ESM Apps หากคลังยังไม่เสนอรุ่นที่แก้แล้ว ให้ตรวจสิทธิ์และการเปิดใช้คลังนี้ก่อนถือว่าอัปเดตสำเร็จ
ถ้าแอปติดตั้ง jwt ผ่าน Bundler ต้องอัปเดต dependency ของแอปและนำชุดที่แก้แล้วขึ้นใช้งานด้วย การอัปเดตแพ็กเกจระบบอย่างเดียวอาจไม่เปลี่ยน gem ที่แอปโหลดอยู่ หลังอัปเดตควรเริ่มโปรเซสแอปใหม่ แล้วทดสอบว่าโทเคนถูกต้องยังใช้งานได้ ขณะที่โทเคนผิดลายเซ็นและกรณีหาไม่พบคีย์ถูกปฏิเสธ
ส่วนตัวผมให้เร่งแพตช์บริการที่ใช้ HMAC และมีโอกาสรับคีย์ว่างก่อน เพราะกระทบจุดตัดสินว่าใครเข้าระบบได้ ที่มา: USN-9059-1: ruby-jwt vulnerability เดี๋ยวกลับมาแก้เพิ่มให้ภายหลังครับ
Want us to set this up?
Get help with server setup, configuration, migration, or troubleshooting. Save time for the work that matters.
Hit something like this? Stuck somewhere?
Come trade notes on the LinuxThai board



Comments 0
No comments yet — be the first