EST. 2026 — บันทึกงานเซิร์ฟเวอร์จริง SYSADMIN · SECURITY · AI · DIRECTADMIN เล่มที่ 01
THE SYSADMIN ALMANAC
หน้าหลัก / Security Notice / Babel เสี่ยงรันโค้ดระหว่างคอมไพล์บน Ubuntu — USN-9054-1
Security Notice

Babel เสี่ยงรันโค้ดระหว่างคอมไพล์บน Ubuntu — USN-9054-1

โดย Ton-Or ·11 พ.ย. 2026·อ่าน 3 นาที
Babel เสี่ยงรันโค้ดระหว่างคอมไพล์บน Ubuntu — USN-9054-1

ผู้ดูแลระบบและนักพัฒนาที่ใช้ Babel บน Ubuntu 18.04 LTS หรือ 20.04 LTS ควรเร่งอัปเดตก่อนคอมไพล์โค้ดจากภายนอก

สรุปใน 1 นาที

อาการ/ปัญหา
Babel อาจประเมินโค้ดผิดระหว่างคอมไพล์ร่วมกับปลั๊กอินบางตัวจนผู้โจมตีรันโค้ดได้
ใครควรอ่าน
ผู้ดูแลระบบที่ดูแลเครื่อง build และนักพัฒนาที่ใช้ Babel จากแพ็กเกจ Ubuntu 18.04 LTS หรือ 20.04 LTS
ทางแก้แบบสั้น
อัปเดตแพ็กเกจจาก node-babel ให้ตรงรุ่นแก้ของ Ubuntu แต่ละรุ่นผ่าน Ubuntu Pro/ESM Apps และตรวจ dependency ที่ติดตั้งผ่าน npm แยกด้วย
ข้ามไปขั้นตอน

พอดีไล่ฟีด Ubuntu เจอประกาศ USN-9054-1 ลงวันที่ 11 พฤศจิกายน 2026 แก้ช่องโหว่ใน Babel ซึ่งเป็นเครื่องมือแปลงโค้ด JavaScript ถ้าผู้ใช้หรือระบบอัตโนมัติคอมไพล์โค้ดที่ผู้โจมตีเตรียมมา ขณะใช้ปลั๊กอินบางตัว ผู้โจมตีอาจรันโค้ดบนเครื่อง build ได้ แพตช์ในประกาศนี้ครอบคลุม Ubuntu 18.04 LTS และ 20.04 LTS

USN-9054ประกาศฉบับ USN-9054-1
Babelเครื่องมือที่มีช่องโหว่
Buildจุดเสี่ยงระหว่างคอมไพล์

ใครต้องทำอะไร

  • ผู้ดูแลระบบ: ถ้าเครื่อง build ใช้ Babel จาก Ubuntu 18.04 LTS หรือ 20.04 LTS ให้เร่งอัปเดตผ่าน Ubuntu Pro ก่อนรับโค้ดจากภายนอก
  • นักพัฒนา: อัปเดต Babel ในเครื่องพัฒนาและงาน build ก่อนคอมไพล์โค้ดที่ไม่เชื่อถือ โดยตรวจทั้งแพ็กเกจ Ubuntu และ dependency ในโครงการ

เกิดอะไรขึ้น

ช่องโหว่นี้คือ CVE-2023-45133 Babel อาจประเมินโค้ดผิดระหว่างคอมไพล์เมื่อใช้ปลั๊กอินบางตัว ผลคือโค้ดที่เตรียมมาโจมตีอาจทำงานด้วยสิทธิ์ของผู้ที่รันงาน build ตามข้อมูลประกาศของ Canonical

ประกาศของโครงการ Babel ระบุว่าปัญหาเกี่ยวกับปลั๊กอินที่เรียก path.evaluate() หรือ path.evaluateTruthy() ตัวอย่างคือ @babel/plugin-transform-runtime และ @babel/preset-env เมื่อเปิด useBuiltIns ผู้ที่คอมไพล์เฉพาะโค้ดที่เชื่อถือได้ไม่เข้าเงื่อนไขโจมตีที่ประกาศอธิบาย

จุดที่ควรตรวจคือเครื่องนักพัฒนาและระบบ build อัตโนมัติ โดยเฉพาะงานที่รับซอร์สโค้ดจากบุคคลภายนอก การตรวจแค่เครื่องที่ให้บริการเว็บอาจพลาดจุดที่คอมไพล์โค้ด คำแนะนำนี้ใช้ช่วยจัดคิวตรวจงาน ไม่ได้หมายความว่าทุกโครงการที่ใช้ Babel จะถูกโจมตีได้เหมือนกัน

ใครโดนและรุ่นที่แก้

แพ็กเกจต้นทางใน USN คือ node-babel รุ่นแก้ต่อไปนี้รับผ่าน Ubuntu Pro/ESM Apps ให้ตรวจแพ็กเกจย่อยที่งาน build เรียกใช้ด้วย

Ubuntu / แพ็กเกจต้นทาง รุ่นที่แก้
18.04 LTS / node-babel 6.26.0+dfsg-3ubuntu0.1~esm1
20.04 LTS / node-babel 6.26.0+repack-3ubuntu0.1~esm1

สำหรับ npm โครงการ Babel ระบุรุ่นแก้ของ @babel/traverse เป็น 7.23.2 และ 8.0.0-alpha.4 ส่วน babel-traverse สาย 6 ไม่มีแพตช์จากโครงการต้นทาง แต่ Canonical ระบุแพ็กเกจ Ubuntu สาย 6 ในตารางว่าแก้แล้ว ข้อมูลสองส่วนนี้เป็นคนละช่องทางอัปเดต ให้เทียบกับช่องทางที่ติดตั้งจริง

ต้องทำอะไร

ตรวจว่า Babel มาจากแพ็กเกจ Ubuntu หรือ dependency ของโครงการ ถ้าเป็นแพ็กเกจระบบ ให้ตรวจสิทธิ์รับอัปเดต ESM Apps แล้วอัปเดตระบบตามปกติ คำสั่งนี้อาจอัปเดตแพ็กเกจอื่นร่วมด้วย ให้อ่านรายการก่อนยืนยัน

sudo apt update
sudo apt upgrade
apt-cache policy node-babel-traverse

หลังอัปเดต ให้เทียบรุ่นที่ติดตั้งกับตารางและทดสอบงานคอมไพล์ หากใช้ image สำหรับเครื่อง build ให้สร้าง image ใหม่จากแพ็กเกจที่แก้แล้วด้วย ส่วนโครงการที่ใช้ npm ต้องอัปเดต dependency และ lockfile ของโครงการแยกจาก apt

ระหว่างรอแพตช์ ควรหยุดคอมไพล์โค้ดที่ไม่เชื่อถือและจำกัดสิทธิ์ของงาน build เท่าที่จำเป็น วิธีนี้ช่วยลดโอกาสรับโค้ดอันตราย แต่ยังต้องอัปเดตแพ็กเกจให้ครบก่อนกลับไปรับงานตามปกติ

ส่วนตัวผมให้เร่งอัปเดตเครื่อง build ที่รับโค้ดจากภายนอกก่อน ที่มา: USN-9054-1: Babel vulnerability และ ข้อมูลประกาศจาก Canonical เดี๋ยวกลับมาแก้เพิ่มให้ภายหลังครับ

อยากให้เราทำให้ไหม?

ให้เราช่วยติดตั้ง ตั้งค่า ย้ายระบบ หรือแก้ปัญหาเซิร์ฟเวอร์ เพื่อให้คุณมีเวลาไปทำงานที่สำคัญกว่า

คุยเรื่องงานกับเรา

เคยเจองานแบบนี้ไหม? ติดตรงไหน?

มาแลกวิธีกันต่อในบอร์ด LinuxThai

→ คุยต่อในบอร์ด

ความคิดเห็น 0

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