Chromium เปิดเผย exploit ที่อ้างว่าแก้แล้วหลังผ่านไป 4 ปี แต่พบว่ายังไม่ได้รับการแก้ไขจริง
(infosec.exchange)- ช่องโหว่ในเบราว์เซอร์ที่ใช้ Chromium ซึ่งถูกค้นพบในปี 2022 สามารถทำให้เบราว์เซอร์กลายเป็นสมาชิกถาวรของ JavaScript botnet ได้โดยไม่ต้องมีการโต้ตอบจากผู้ใช้
- ใน Microsoft Edge สามารถคงการเชื่อมต่อ C2 และการรัน JavaScript ต่อไปได้แม้ปิดเบราว์เซอร์แล้ว โดยผู้ใช้ไม่เห็นความผิดปกติใด ๆ
- ประเด็นของ Chromium นี้ถูกเปิดเผยเกือบ 4 ปีให้หลัง แต่หลังจากเปิดเผยก็ยืนยันได้ว่ายังใช้งานได้อยู่ จึงถูกเปลี่ยนกลับเป็น ไม่เปิดเผยสาธารณะ อีกครั้ง
- ขณะนี้ใน Edge ไม่มีแม้แต่เมนูดาวน์โหลดปรากฏขึ้น ทำให้ยืนยันได้ว่าเพียงเข้าเว็บไซต์เดียวก็สามารถเกิด JavaScript RCE แบบเงียบ ๆ ได้
- ไม่สามารถบรรเทาได้ด้วยฟิลเตอร์ uBlock แต่ NoScript สามารถป้องกันได้ด้วยการปิด JavaScript หรือ Service Worker ของหน้านั้น
การเปิดเผยและการปิดซ่อนอีกครั้งของช่องโหว่ในเบราว์เซอร์ที่ใช้ Chromium
- บั๊กที่ Rebane ค้นพบในปี 2022 สามารถทำให้เบราว์เซอร์ที่ใช้ Chromium ใด ๆ กลายเป็นสมาชิกถาวรของ JavaScript botnet ได้ โดยไม่ต้องมีการโต้ตอบจากผู้ใช้
- ใน Microsoft Edge สามารถคงการเชื่อมต่อ C2 และการรัน JavaScript ต่อไปได้แม้ปิดเบราว์เซอร์แล้ว โดยผู้ใช้ไม่เห็นความผิดปกติใด ๆ
- ประเด็นใน Chromium ที่เกี่ยวข้องถูกเปิดเผยเกือบ 4 ปีให้หลังที่ issues.chromium.org/issues/40062121
- ทันทีหลังการเปิดเผย มีการยืนยันว่าปัญหานี้ยังไม่ได้รับการแก้ไขอย่างถูกต้องและยังคงใช้งานได้อยู่
- หลังจากนั้นประเด็นดังกล่าวก็ถูกเปลี่ยนกลับเป็นไม่เปิดเผยสาธารณะอีกครั้ง
ผลกระทบที่ยืนยันได้ในปัจจุบัน
- ใน Edge ไม่มีแม้แต่เมนูดาวน์โหลดปรากฏขึ้นอีกต่อไป ทำให้ยืนยันได้ว่าเพียงเข้าเว็บไซต์เดียวก็สามารถเกิด JavaScript RCE แบบเงียบสนิท ได้
- JavaScript ที่ถูกรันสามารถทำงานต่อไปได้แม้ปิดเบราว์เซอร์แล้ว
- ต้นฉบับมีวิดีโอสาธิตรวมอยู่ด้วย แต่ในส่วนข้อความไม่ได้เปิดเผยขั้นตอนการทำซ้ำอย่างละเอียด
- ในการอ้างอิงบทความของ Ars Technica มีการระบุว่า Brave, Opera, Vivaldi, Arc ก็เป็นเบราว์เซอร์ที่ได้รับผลกระทบเช่นกัน
ความเป็นไปได้ในการบรรเทา
- ฟิลเตอร์ uBlock ไม่สามารถบรรเทาช่องโหว่นี้ได้
- NoScript สามารถบรรเทาได้โดยปิด JavaScript หรือ Service Worker ในหน้านั้น
- ผู้ใช้รายหนึ่งเสนอแนวทางให้ uBlock Origin ที่ใช้ Manifest v2 ฉีดนโยบาย CSP เพื่อกำหนด
worker-src 'none'- uBlock Origin Static filter syntax: CSP
- ยกตัวอย่างรูปแบบ
||$csp=worker-src 'none'และเสนอแนวทางปิด Service Worker แบบทั้งระบบ
- ยังไม่แน่ชัดว่าวิธีนี้จะทำให้ส่วนขยายที่ใช้ Service Worker ใช้งานไม่ได้หรือไม่ และส่วนขยายสามารถฉีดส่วนหัว CSP ให้กับส่วนขยายอื่นได้หรือไม่
- มีการแชร์วิธีปิด Service Worker ด้วย uBlock ในเบราว์เซอร์ที่ใช้ Chromium เช่นกัน
คำถามที่ยังคงค้างอยู่และที่มาของการเปิดเผย
- คำตอบบางส่วนกล่าวถึง “Background fetch” แต่ในต้นฉบับยังยืนยันความสัมพันธ์ระหว่างฟีเจอร์นี้กับช่องโหว่ดังกล่าวได้ไม่ชัดเจน
- ยังไม่มีคำตอบที่ชัดเจนว่าโปรเซส Service Worker จะยังคงอยู่ใน Edge ได้หรือไม่แม้ไม่มีโปรเซสเบราว์เซอร์หลัก และหากปิดการทำงานเบื้องหลังของ Edge แล้ว จะป้องกันการทำงานหลังปิดเบราว์เซอร์ได้หรือไม่
- ผู้ใช้รายหนึ่งชี้ไปที่ comment56 ของประเด็น Chromium และกล่าวว่าฝั่ง Chromium เป็นผู้เปิดเผย
- ประเด็นที่เปิดเผยแล้วถูกตั้งกลับเป็นไม่เปิดเผยสาธารณะในภายหลัง และมีผู้ใช้บางรายระบุว่ายังมีสำเนาเก็บไว้ที่ archive.today, archive.is, archive.ph
1 ความคิดเห็น
ความเห็นจาก Lobste.rs
ลำดับบทสนทนาแบบ "มันยังดูเหมือนเอาไปใช้โจมตีได้อยู่เลยไม่ใช่เหรอ?" ตามด้วย "ยังไม่ได้ลองนะ หวังว่าไม่ใช่", แล้วก็ "อ้าว ไม่เอาน่า.." เป็น บทสนทนาที่ชวนขำแบบแปลกๆ ทุกครั้งที่เห็น
จะเรียกสิ่งนี้ว่า browser RCE ก็ดูไม่ค่อยตรงนัก
มันใกล้เคียงกับ RCE ในความหมายที่ว่า ถ้าเปิด example.com แล้ว example.com สามารถรันโค้ดในเบราว์เซอร์ของฉันได้
การที่มันยังใช้ทรัพยากรต่อหลังจากปิดแท็บไปแล้วเป็นปัญหาจริง แต่ก็ยังห่างจากสิ่งที่ปกติเรียกกันว่า browser remote code execution
มันดูเหมือนเป็นวิธีสำหรับรัน botnet แบบกระจายได้ในราคาถูก หรือขาย IP บ้านพักอาศัย
ไม่เข้าใจว่าทำไม Twitter กับพวกโคลนของมันถึงมี ประสบการณ์ผู้ใช้ ที่แย่แบบนี้อยู่เรื่อย
พออ่านโพสต์ที่ไม่ได้เรียงตามลำดับเวลาแล้วรู้สึกเหมือนจะเป็นอัมพาตเลย
บางทีฉันอาจกำลังกลายเป็น boomer สายเทคที่ไม่รู้เรื่องก็ได้
ที่นั่นก็จัดเรียงตาม เธรด เหมือนกัน