Google เปิดเผยข้อบกพร่องด้านความปลอดภัยบน GitHub

Project Zero เปิดเผยรายละเอียดของการละเมิดความปลอดภัยที่ร้ายแรงบน GitHub และพวกเขารายงานว่า ข้อผิดพลาดมีผลต่อคำสั่งเวิร์กโฟลว์การดำเนินการ จาก GitHub และอธิบายว่ามีความรุนแรงสูง (ข้อบกพร่องนี้ถูกค้นพบในเดือนกรกฎาคม แต่จากระยะเวลาการเปิดเผยข้อมูลมาตรฐาน 90 วันรายละเอียดได้รับการเผยแพร่ในตอนนี้เท่านั้น)

ข้อบกพร่องนี้กลายเป็นหนึ่งในช่องโหว่ไม่กี่แห่งที่ไม่ได้รับการแก้ไข อย่างถูกต้องก่อนระยะเวลา 90 วันมาตรฐานที่มอบให้โดย Google Project Zero จะหมดอายุ

อ้างอิงจากเฟลิกซ์วิลเฮล์ม (ผู้ค้นพบ) ซึ่งเป็นสมาชิกของทีม Project Zero ข้อบกพร่องมีผลต่อฟังก์ชันการทำงานของ GitHub ซึ่งเป็นเครื่องมือในการทำงานของนักพัฒนาโดยอัตโนมัติ เนื่องจากคำสั่งเวิร์กโฟลว์ Actions "เสี่ยงต่อการโจมตีแบบแทรกซึม":

“ Actions Github สนับสนุนคุณลักษณะที่เรียกว่าคำสั่งเวิร์กโฟลว์เป็นช่องทางการสื่อสารระหว่างโบรกเกอร์ Action และการดำเนินการที่ดำเนินการ คำสั่งเวิร์กโฟลว์ถูกนำไปใช้ใน / src / Runner.Worker / ActionCommandManager.cs และทำงานโดยการแยกวิเคราะห์ STDOUT ของการกระทำทั้งหมดที่ดำเนินการโดยมองหาเครื่องหมายคำสั่งหนึ่งในสองคำสั่ง

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

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

ต่อมา ให้ตัวอย่างบางส่วนของการใช้ประโยชน์จากข้อบกพร่อง และยังแนะนำวิธีแก้ไข:

“ ฉันไม่แน่ใจจริงๆว่าอะไรคือวิธีที่ดีที่สุดในการแก้ไข ฉันคิดว่าวิธีการนำคำสั่งเวิร์กโฟลว์ไปใช้นั้นไม่ปลอดภัยโดยพื้นฐาน การเลิกใช้ไวยากรณ์คำสั่ง v1 และการเสริมความแข็งแกร่งให้กับ set-env ด้วยรายการ allow น่าจะใช้ได้กับเวกเตอร์ RCE โดยตรง

“ อย่างไรก็ตามแม้ความสามารถในการแทนที่ตัวแปรสภาพแวดล้อม 'ปกติ' ที่ใช้ในขั้นตอนต่อมาก็น่าจะเพียงพอที่จะใช้ประโยชน์จากการกระทำที่ซับซ้อนมากขึ้น ฉันไม่ได้วิเคราะห์ผลกระทบด้านความปลอดภัยของการควบคุมอื่น ๆ ในพื้นที่ทำงาน

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

สำหรับ GitHub นักพัฒนาได้โพสต์คำแนะนำเมื่อวันที่ 1 ตุลาคมและเลิกใช้คำสั่งที่มีช่องโหว่ แต่แย้งว่าสิ่งที่ Wilhelm พบนั้นแท้จริงแล้วเป็น "ช่องโหว่ด้านความปลอดภัยระดับปานกลาง" GitHub กำหนดตัวระบุจุดบกพร่อง CVE-2020-15228:

“ มีการระบุช่องโหว่ด้านความปลอดภัยระดับปานกลางในรันไทม์ของ GitHub Actions ที่อนุญาตให้มีการแทรกพา ธ และตัวแปรสภาพแวดล้อมลงในเวิร์กโฟลว์ที่บันทึกข้อมูลที่ไม่น่าเชื่อถือไปยัง STDOUT สิ่งนี้สามารถนำไปสู่การแนะนำหรือปรับเปลี่ยนตัวแปรสภาพแวดล้อมโดยที่ผู้เขียนเวิร์กโฟลว์ไม่ได้ตั้งใจ

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

“ หากคุณใช้โบรกเกอร์ที่โฮสต์เองตรวจสอบให้แน่ใจว่าได้อัปเดตเป็นเวอร์ชัน 2.273.1 หรือสูงกว่า

ตามวิลเฮล์มเมื่อวันที่ 12 ตุลาคม Project Zero ได้ติดต่อ GitHub และเสนอกรอบเวลา 14 วันในเชิงรุกหาก GitHub ต้องการเวลามากขึ้นในการปิดใช้งานคำสั่งที่มีช่องโหว่ แน่นอนว่าข้อเสนอนี้ได้รับการยอมรับแล้วและ GitHub หวังว่าจะปิดใช้งานคำสั่งที่มีช่องโหว่หลังจากวันที่ 19 ตุลาคม จากนั้น Project Zero จะกำหนดวันเปิดเผยข้อมูลใหม่เป็นวันที่ 2 พฤศจิกายน

Fuente: https://bugs.chromium.org


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา