GitHub ปรับ actions/checkout เวอร์ชัน 7 เพื่อบล็อกการโจมตีแบบ pwn request

ที่มาภาพ: InfoWorld

Security25 มิถุนายน 2569 เวลา 06:30อ่าน 8 นาทีInfoWorld

GitHub ปรับ actions/checkout เวอร์ชัน 7 เพื่อบล็อกการโจมตีแบบ pwn request

⚡ สรุป 30 วิ

GitHub ปรับปรุง actions/checkout เวอร์ชัน 7 ให้บล็อก workflow ที่ดึงโค้ดจากฟอร์กที่ยังไม่ได้ตรวจสอบเมื่อใช้ pull_request_target หรือ workflow_run…

GitHub ปรับปรุงความปลอดภัยของ actions/checkout เวอร์ชัน 7 เพื่อป้องกันการโจมตีแบบ “pwn request” ที่ใช้ pull_request_target รันโค้ดจากฟอร์กที่ยังไม่ได้ตรวจสอบ โดยอัตโนมัติทำให้ workflow ที่พยายามดึงโค้ดจากฟอร์กจะล้มเหลว และผู้พัฒนาต้องเปิดใช้งานการยกเว้นเท่านั้น เป็นสัญญาณของยุค “secure by default” ที่ระบบจะกำหนดมาตรการความปลอดภัยให้โดยอัตโนมัติ

Overview

GitHub ประกาศเมื่อ 18 มิถุนายน 2566 ว่า actions/checkout เวอร์ชัน 7 จะบล็อก workflow ที่ทำงานภายใต้เหตุการณ์ pull_request_target หรือ workflow_run เมื่อพยายามเช็คเอาต์โค้ดจากฟอร์กที่ยังไม่ผ่านการรีวิว การบล็อกนี้ทำให้โค้ดที่อาจเป็นอันตรายไม่สามารถรันด้วยสิทธิ์เต็มของ workflow ได้ ผู้ใช้ที่ต้องการยกเว้นสามารถเพิ่มพารามิเตอร์ allow-unsafe-pr-checkout เข้าไปในไฟล์ workflow ได้เท่านั้น

การเปลี่ยนแปลงนี้จะถูกนำกลับไปใช้กับเวอร์ชันหลักทั้งหมดของ actions/checkout ที่รองรับตั้งแต่ 16 กรกฎาคม 2566 ต่อไป โดย workflow ที่อ้างอิงเวอร์ชันหลักแบบ floating tag เช่น actions/checkout@v4 จะรับอัปเดตอัตโนมัติ ส่วน workflow ที่ล็อกไว้ที่ SHA, เวอร์ชันย่อยหรือแพตช์จะไม่ถูกอัปเดตโดยอัตโนมัติและต้องอัปเกรดผ่าน Dependabot หรือกระบวนการอัปเดตที่มีอยู่

Technical Change

เวอร์ชัน 7 ของ actions/checkout เพิ่มการตรวจสอบสถานะของเหตุการณ์ workflow ก่อนทำการเช็คเอาต์ หากเหตุการณ์เป็น pull_request_target หรือ workflow_run และแหล่งที่มาคือฟอร์กที่ไม่ได้รับการตรวจสอบ ระบบจะส่งข้อผิดพลาดและหยุดการดำเนินการทันที การตรวจสอบนี้ทำงานระดับระบบและไม่ขึ้นกับการตั้งค่าใน workflow ของผู้ใช้

  • allow-unsafe-pr-checkout – พารามิเตอร์ที่ต้องเพิ่มเพื่อยกเว้นการบล็อกในกรณีพิเศษ
  • floating major tag – ตัวอย่างเช่น actions/checkout@v4 จะรับการอัปเดตอัตโนมัติเมื่อมีการ backport
  • specific SHA/minor/patch – ไม่ได้รับผลกระทบจากการ backport ต้องอัปเกรดด้วยตนเอง

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

Security Context

จุดอ่อนที่ทำให้เกิดการโจมตีแบบ “pwn request” นั้นไม่ได้อยู่ที่ trigger pull_request_target โดยตรง แต่เกิดจากการใช้ actions/checkout ดึงโค้ดจากฟอร์กที่ยังไม่ผ่านการตรวจสอบ ซึ่งทำให้โค้ดของผู้โจมตีทำงานด้วยสิทธิ์เต็มของ workflow รวมถึงการเข้าถึง secret ต่าง ๆ เช่น API keys และ token เมื่อผู้พัฒนาตั้งค่า pull_request_target โดยไม่ระมัดระวัง ระบบจึงเปิดช่องทางให้ผู้โจมตีฝังโค้ดอันตรายในฟอร์กและรันผ่าน workflow

GitHub ยอมรับว่าปัญหานี้เป็น “blind spot” ที่ถูกค้นพบมานานหลายปี แต่การแก้ไขจริงจังเริ่มขึ้นเมื่อเกิดการระเบิดของการโจมตีในช่วงต้นปี โดยเฉพาะจากกลุ่ม TeamPCP ที่ใช้เทคนิค pwn request เพื่อเข้าควบคุม repository และทำลายความปลอดภัยของระบบ การบล็อกอัตโนมัติของเวอร์ชัน 7 จึงเป็นการตอบสนองที่สำคัญต่อช่องโหว่นี้

Recent Incidents

ในเดือนที่ผ่านมา กลุ่ม TeamPCP ได้โจมตีแพคเกจของ npm จำนวน 170 แพคเกจ รวมถึงระบบนิเวศของ TanStack Router โดยใช้การโจมตีแบบ pwn request ทำให้โค้ดอันตรายถูกแทรกเข้าไปในกระบวนการ build ของผู้ใช้ทั่วโลก เหตุการณ์นี้เป็นตัวอย่างที่ชัดเจนว่าแม้การตั้งค่า pull_request_target จะเป็นมาตรฐานที่ปลอดภัยเมื่อใช้อย่างถูกต้อง แต่การกำหนดค่าที่ไม่เหมาะสมก็สามารถกลายเป็นประตูหลังได้

นอกจากนี้ GitHub เองก็ประสบกับการละเมิดข้อมูลเมื่อเดือนก่อน โดยผู้โจมตีได้ดึงข้อมูลซอร์สโค้ดจาก repository ภายในของบริษัทจำนวน 3,800 แห่ง แม้ว่าการละเมิดนี้ไม่ได้เกี่ยวข้องกับ pwn request แต่แสดงให้เห็นว่าการรักษาความปลอดภัยในระบบ CI/CD ยังคงต้องการการตรวจสอบและอัปเดตอย่างต่อเนื่อง GitHub ยังได้ดำเนินการจำกัดการรันสคริปต์ติดตั้งอัตโนมัติใน npm ซึ่งเป็นมาตรการเสริมเพื่อยับยั้งวิธีการโจมตีแบบอื่น ๆ

Future Outlook

GitHub ระบุว่าการบล็อกในเวอร์ชัน 7 เป็นเพียงขั้นตอนแรกของโครงการ “secure by default” และอาจมีการขยายการ harden ไปยังเหตุการณ์อื่น ๆ ในเวอร์ชันถัดไป โดยเฉพาะเหตุการณ์ที่อาจถูกใช้ในการดึงโค้ดจากฟอร์กโดยไม่ได้ตรวจสอบ การอัปเดตต่อเนื่องนี้คาดว่าจะทำให้ผู้พัฒนาต้องพึ่งพาเครื่องมืออัตโนมัติเช่น Dependabot ในการตรวจสอบและอัปเดต dependencies อย่างสม่ำเสมอ

ในระยะยาว การเปลี่ยนแปลงนี้อาจกระตุ้นให้ผู้ให้บริการ CI/CD รายอื่น ๆ ปรับมาตรการความปลอดภัยเช่นเดียวกัน เพื่อป้องกันการใช้ trigger ที่อาจทำให้เกิดการรั่วไหลของ secret และส่งผลให้ชุมชนพัฒนาโอเพ่นซอร์สต้องคำนึงถึงการกำหนดค่า workflow อย่างระมัดระวังมากขึ้น

Impact

สำหรับผู้ใช้ GitHub Actions ที่อ้างอิง actions/checkout ด้วย tag หลัก เช่น actions/checkout@v4 การอัปเดตนี้จะทำงานโดยอัตโนมัติ ทำให้ส่วนใหญ่ของ repository จะได้รับการป้องกันจากการโจมตีแบบ pwn request โดยไม่ต้องทำการเปลี่ยนแปลงใด ๆ แต่ผู้ใช้ที่ล็อกเวอร์ชันลงระดับ SHA หรือเวอร์ชันย่อยจำเป็นต้องดำเนินการอัปเกรดด้วยตนเอง หากไม่ทำเช่นนั้น workflow ของพวกเขาอาจยังคงเสี่ยงต่อการรันโค้ดที่ไม่ได้รับการตรวจสอบ

องค์กรที่ใช้ GitHub เป็นส่วนสำคัญของกระบวนการพัฒนาจะต้องตรวจสอบนโยบายการใช้ pull_request_target และตรวจสอบว่ามีการเพิ่ม allow-unsafe-pr-checkout เฉพาะในกรณีที่จำเป็นจริง ๆ การตรวจสอบนี้อาจต้องรวมถึงการฝึกอบรมทีมพัฒนาให้เข้าใจความแตกต่างระหว่าง trigger ต่าง ๆ และผลกระทบต่อความปลอดภัยของระบบ CI/CD

Summary

GitHub ปรับปรุง actions/checkout ไปเป็นเวอร์ชัน 7 เพื่อบล็อกการดึงโค้ดจากฟอร์กที่ยังไม่ตรวจสอบในเหตุการณ์ pull_request_target และ workflow_run โดยอัตโนมัติ การเปลี่ยนแปลงนี้เป็นส่วนหนึ่งของแนวทาง “secure by default” ที่คาดว่าจะขยายการป้องกันต่อไปในอนาคต.

แชร์บทความนี้:

ชอบบทความแบบนี้?

สมัคร AI Automate Weekly Newsletter — รับเคล็ดลับ AI + how-to ใหม่
ทุกสัปดาห์ตรงถึง inbox ฟรี ไม่มีสแปม

แหล่งข่าวต้นฉบับ

ชื่อต้นฉบับ
GitHub Actions hardens checkout security to block ‘pwn request’ attacks
ผู้เขียน
Unknown
แหล่ง
InfoWorld
วันที่เผยแพร่
23 มิถุนายน 2569 เวลา 06:43

Related

บทความที่เกี่ยวข้อง

มอนิเตอร์บน Windows สามารถติดตั้งแอปโดยไม่ต้องรับการยินยอม – วิธีแก้ง่ายSecurity
15 สิงหาคม 2569 เวลา 07:00

มอนิเตอร์บน Windows สามารถติดตั้งแอปโดยไม่ต้องรับการยินยอม – วิธีแก้ง่าย

มอนิเตอร์บางรุ่นสามารถส่งไดรเวอร์หรือแอปพลิเคชันไปยังคอมพิวเตอร์ Windows ได้โดยไม่ได้ขอความยินยอมของผู้ใช้ ซึ่งเพิ่มความเสี่ยงด้านความปลอดภัย…

XDA Developers7 นาที
ใช้ Windows Sandbox ในงานโครงการจริงเพื่อความปลอดภัยและลด DowntimeSecurity
29 กรกฎาคม 2569 เวลา 01:00

ใช้ Windows Sandbox ในงานโครงการจริงเพื่อความปลอดภัยและลด Downtime

ผู้เขียนจาก XDA‑Developers รายงานว่า Windows Sandbox ตอนนี้ถูกนำไปใช้ในขั้นตอนพัฒนาโครงการจริง ไม่ใช่แค่ทดสอบไฟล์ดาวน์โหลดเท่านั้น ช่วยแยกสภาพแวดล้อม…

XDA Developers5 นาที
ช่องโหว่ GitLab 18.11.3 ให้ผู้ใช้ที่ตรวจสอบตัวตนรันคำสั่งในฐานะ gitSecurity
27 กรกฎาคม 2569 เวลา 15:30

ช่องโหว่ GitLab 18.11.3 ให้ผู้ใช้ที่ตรวจสอบตัวตนรันคำสั่งในฐานะ git

พบช่องโหว่ Remote Code Execution ใน GitLab เวอร์ชัน 18.11.3 ที่อนุญาตให้ผู้ใช้ที่ผ่านการตรวจสอบสิทธิ์สามารถเรียกใช้คำสั่งระบบได้โดยไม่ต้องเป็นแอดมิน…

The Hacker News6 นาที
Ghostcommit ฝัง Prompt ในไฟล์ PNG เพื่อดึงข้อมูลลับจาก .env ผ่าน AI agentsSecurity
13 กรกฎาคม 2569 เวลา 16:00

Ghostcommit ฝัง Prompt ในไฟล์ PNG เพื่อดึงข้อมูลลับจาก .env ผ่าน AI agents

นักวิจัยเผยเทคนิค Ghostcommit ใช้ steganography ซ่อน prompt ลงในเมตาดาต้า PNG ทำให้ AI agents เช่น CodeRabbit อ่านค่า .env แล้วสั่งให้ส่งออกเป็นตัวเลข…

BleepingComputer7 นาที
คัดลอกลิงก์แล้ว!