メインコンテンツへスキップ
記事一覧へ戻る

CodeQL 2.27.2 อัปเดตการสแกน C++, Go, Rust และ JavaScript: ทีมพัฒนาต้องเช็กอะไร

GitHub ประกาศ CodeQL 2.27.2 เพิ่มการวิเคราะห์หลายภาษา พร้อมข้อควรระวังสำหรับ macOS/Xcode และ Go custom query

CodeQL 2.27.2 อัปเดตการสแกน C++, Go, Rust และ JavaScript: ทีมพัฒนาต้องเช็กอะไร

GitHub เผยแพร่ CodeQL 2.27.2 เมื่อวันที่ 9 ตุลาคม 2026 โดยเพิ่มความสามารถวิเคราะห์ C++, Go, Rust และ JavaScript/TypeScript พร้อมแจ้งข้อจำกัดที่ทีมใช้ macOS รุ่นใหม่ควรตรวจสอบก่อนอัปเกรด ข่าวนี้สรุปจากประกาศของ GitHub และแยกสิ่งที่เปลี่ยนจริงออกจากสิ่งที่ทีมพัฒนาควรทดสอบเอง

ข่าวสำคัญของรุ่นนี้

CodeQL เป็นเครื่องมือวิเคราะห์โค้ดแบบ static analysis ที่อยู่เบื้องหลัง GitHub code scanning รุ่น 2.27.2 เพิ่ม parser สำหรับ regular expression แบบ ECMAScript ใน std::regex ของ C++ และเพิ่มโมเดลตรวจเส้นทางข้อมูลของ Comdb2 C API, Bloomberg BDE และตัวแปลงข้อมูลบางชนิด การเพิ่มโมเดลเหล่านี้ช่วยให้เครื่องมือเข้าใจแหล่งข้อมูลและจุดที่ข้อมูลไหลไปได้ดีขึ้น แต่ไม่ได้หมายความว่าโปรเจกต์ทุกตัวจะมี alert ใหม่ทันที

ฝั่ง Go เพิ่มการรู้จัก import path github.com/coder/websocket ควบคู่กับ nhooyr.io/websocket ส่วน Rust ปรับการติดตาม data flow ใน async block ที่ใช้ await และเพิ่ม flow summary ให้ native-tls, async-native-tls และ tokio-native-tls JavaScript/TypeScript เพิ่มการรู้จัก directive use workflow และ use step ของ Workflow SDK รวมทั้งปรับการติดตาม request input ใน Hapi ที่ลงทะเบียน route ผ่าน helper หรือ higher-order function

สิ่งที่ทีมใช้ CodeQL ต้องเช็ก

หากใช้ GitHub code scanning บน github.com GitHub ระบุว่าจะนำ CodeQL รุ่นใหม่ไปใช้ให้อัตโนมัติ แต่ทีมที่รัน CLI เองหรือใช้ GitHub Enterprise Server ควรตรวจเวอร์ชันที่ติดตั้งและรอบการอัปเดตของตนเองก่อนสรุปว่าได้รับความสามารถใหม่แล้ว สำหรับ GHES ความสามารถนี้จะตามมาในรุ่นอนาคต และระบบรุ่นเก่าสามารถอัปเกรด CodeQL เองตามเอกสาร GitHub

การทดสอบที่มีประโยชน์คือเลือก repository ตัวแทนของแต่ละภาษา รันการสแกนด้วยเวอร์ชันเดิมและเวอร์ชันใหม่ แล้วเทียบจำนวน alert, ประเภท query, เวลาสแกน และ false positive ที่ต้อง triage อย่าตัดสินคุณภาพจากจำนวน alert รวมอย่างเดียว เพราะโมเดล data flow ที่ดีขึ้นอาจทำให้พบเส้นทางใหม่ หรือเปลี่ยนการเชื่อมโยงของผลเดิมได้

ข้อควรระวังสำหรับ macOS และ Go query ที่เขียนเอง

ประกาศระบุว่า CodeQL แบบ autobuild และ manual สำหรับภาษาที่ต้องคอมไพล์ไม่รองรับ macOS 27 เมื่อใช้ Xcode ใด ๆ และไม่รองรับ macOS 26 เมื่อเลือก Xcode 27 สาเหตุเกี่ยวกับ binary แบบหลายสถาปัตยกรรมที่จำเป็นต่อ traced analysis ทีม CI ที่อัปเดต image ของ runner ควรตรวจ matrix ของ macOS/Xcode และผลสแกนจริงก่อนสลับรุ่น การใช้ build mode none เป็นอีกแนวทางที่ GitHub กำลังปรับปรุง แต่ควรตรวจความครอบคลุมของภาษาที่ใช้ในงานจริง

ผู้ดูแล custom query สำหรับ Go มีการเปลี่ยนแปลงที่อาจกระทบโดยตรง: control-flow graph เปลี่ยนไปใช้ไลบรารี CFG ร่วม มี node และขอบเขต basic block ต่างจากเดิม พร้อม API บางตัวถูกลบหรือเลิกแนะนำ หากมี query ที่อาศัยโครงสร้าง CFG เดิม ให้ compile และรันทดสอบ query เหล่านั้นก่อนอัปเกรด production

วิธีนำข่าวนี้ไปใช้

  1. ตรวจว่า workflow หรือ CLI ปัจจุบันใช้ CodeQL เวอร์ชันใด และมีภาษา C++, Go, Rust หรือ JavaScript/TypeScript ที่เกี่ยวข้องหรือไม่
  2. ถ้ารันบน macOS ให้ตรวจรุ่น macOS, Xcode และ build mode ก่อนอัปเดต runner
  3. ถ้ามี Go custom query ให้ทดสอบการ compile และผลลัพธ์กับ CodeQL 2.27.2
  4. เทียบผลสแกนใน repository ตัวแทนและให้ผู้รับผิดชอบ triage alert ใหม่ก่อนขยายไปทุกโครงการ

ข่าวนี้อ้างอิง ประกาศ CodeQL 2.27.2 ของ GitHub วันที่ 9 ตุลาคม 2026 โดยตรง รายละเอียดการเปลี่ยน query และ CLI เพิ่มเติมอยู่ใน changelog ที่ GitHub เชื่อมไว้ในประกาศนั้น