Babel เสี่ยงรันโค้ดระหว่างคอมไพล์บน Ubuntu — USN-9054-1
ผู้ดูแลระบบและนักพัฒนาที่ใช้ Babel บน Ubuntu 18.04 LTS หรือ 20.04 LTS ควรเร่งอัปเดตก่อนคอมไพล์โค้ดจากภายนอก
1-minute summary
- Symptom / problem
- Babel อาจประเมินโค้ดผิดระหว่างคอมไพล์ร่วมกับปลั๊กอินบางตัวจนผู้โจมตีรันโค้ดได้
- Who should read
- ผู้ดูแลระบบที่ดูแลเครื่อง build และนักพัฒนาที่ใช้ Babel จากแพ็กเกจ Ubuntu 18.04 LTS หรือ 20.04 LTS
- Fix in short
- อัปเดตแพ็กเกจจาก 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
ใครต้องทำอะไร
- ผู้ดูแลระบบ: ถ้าเครื่อง 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 เดี๋ยวกลับมาแก้เพิ่มให้ภายหลังครับ
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