บริษัทสตาร์ทอัพในกรุงเบอร์ลินได้เปิดเผยช่องโหว่การเรียกใช้โค้ดจากระยะไกล (RCE) และช่องโหว่การโจมตีแบบ Cross-Site Scripting (XSS) ใน Plingซึ่งเป็นแพลตฟอร์มที่ใช้โดยแคตตาล็อกแอปพลิเคชันหลายแห่งที่สร้างขึ้นบนแพลตฟอร์มนี้ ช่องโหว่นี้อาจทำให้โค้ด JavaScript สามารถทำงานได้ในบริบทของผู้ใช้รายอื่นเว็บไซต์ที่ได้รับผลกระทบ ได้แก่ แคตตาล็อกแอปพลิเคชันโอเพนซอร์สชั้นนำบางแห่งเช่น store.kde.org, appimagehub.com, gnome-look.org, xfce-look.org และ pling.com เป็นต้น
Positive Security ซึ่งพบช่องโหว่กล่าวว่าข้อบกพร่องยังคงมีอยู่ในรหัส Pling และผู้ดูแลไม่ตอบสนองต่อรายงานช่องโหว่
เมื่อต้นปีนี้ เราได้พิจารณาว่าแอปเดสก์ท็อปยอดนิยมจัดการกับ URI ที่ผู้ใช้จัดหาได้อย่างไร และพบช่องโหว่ในการเรียกใช้โค้ดในหลายรายการ หนึ่งในแอพที่ฉันตรวจสอบคือ KDE Discover App Store ซึ่งกลายเป็นว่าจัดการ URI ที่ไม่น่าเชื่อถือด้วยวิธีที่ไม่ปลอดภัย (CVE-2021-28117, KDE Security Advisory)
ระหว่างทาง ฉันพบช่องโหว่ที่ร้ายแรงอีกหลายแห่งในตลาดซอฟต์แวร์เสรีอื่นๆ อย่างรวดเร็ว
XSS แบบเวิร์มซึ่งมีศักยภาพในการโจมตีห่วงโซ่อุปทานในตลาดที่ใช้ Pling และ RCE แบบขับเคลื่อนโดยไดรฟ์ที่ส่งผลต่อผู้ใช้แอปพลิเคชัน PlingStore ยังคงสามารถใช้ประโยชน์ได้
Pling นำเสนอตัวเองว่าเป็นตลาดสำหรับผู้สร้างสรรค์ในการอัปโหลดธีมและกราฟิกสำหรับเดสก์ท็อป Linux รวมถึงสิ่งอื่นๆ โดยหวังจะได้รับเงินจากผู้สนับสนุนมันประกอบด้วยสองส่วน:โค้ดที่จำเป็นสำหรับการสร้างตลาดธีมของคุณเอง และแอปพลิเคชันที่ใช้ Electron ซึ่งผู้ใช้สามารถติดตั้งเพื่อจัดการธีมของตนจากตลาด Pling โค้ดฝั่งเว็บมีช่องโหว่ XSS ในขณะที่ฝั่งไคลเอ็นต์มีทั้งช่องโหว่ XSS และช่องโหว่ RCE Pling เป็นแพลตฟอร์มที่ให้บริการเว็บไซต์หลายแห่ง ตั้งแต่ pling.com และ store.kde.org ไปจนถึง gnome-look.org และ xfce-look.org
ปัญหาหลักคือแพลตฟอร์ม Pling อนุญาตให้เพิ่มบล็อกมัลติมีเดียในรูปแบบ HTMLเช่น การฝังวิดีโอ YouTube หรือรูปภาพโค้ดที่เพิ่มผ่านแบบฟอร์มนั้นไม่ได้ถูกตรวจสอบความถูกต้องอย่างเหมาะสม ทำให้สามารถแทรกโค้ดที่เป็นอันตรายโดยปลอมตัวเป็นรูปภาพและวางข้อมูลในไดเร็กทอรีที่จะเรียกใช้โค้ด JavaScript เมื่อถูกดู หากผู้ใช้ที่มีบัญชีสามารถเข้าถึงข้อมูลนี้ได้ ก็เป็นไปได้ที่จะเริ่มการกระทำในไดเร็กทอรีในนามของผู้ใช้นั้น รวมถึงการเพิ่มการเรียกใช้ JavaScript ลงในหน้าเว็บของพวกเขา ซึ่งเป็นการสร้างเวิร์มเครือข่ายชนิดหนึ่งขึ้นมา
นอกจากนี้ ยังพบช่องโหว่ในแอปพลิเคชัน PlingStoreซึ่งเขียนขึ้นโดยใช้แพลตฟอร์ม Electron ช่องโหว่นี้ทำให้แอปพลิเคชันสามารถเข้าถึงไดเร็กทอรีของ OpenDesktop โดยไม่ต้องใช้เบราว์เซอร์ และติดตั้งแพ็กเกจที่พบในนั้นได้ ช่องโหว่นี้ใน PlingStore อนุญาตให้โค้ดของแอปพลิเคชันทำงานบนระบบของผู้ใช้ได้
เมื่อแอปพลิเคชัน PlingStore ทำงาน กระบวนการ ocs-manager ก็จะเริ่มต้นขึ้นด้วยโดยรับการเชื่อมต่อภายในเครื่องผ่าน WebSocket และดำเนินการคำสั่งต่างๆ เช่น การโหลดและการเปิดใช้งานแอปพลิเคชันในรูปแบบ AppImageคำสั่งเหล่านี้ควรจะถูกส่งโดยแอปพลิเคชัน PlingStore แต่ในความเป็นจริง เนื่องจากขาดการตรวจสอบสิทธิ์ คำขอไปยัง ocs-manager สามารถส่งมาจากเบราว์เซอร์ของผู้ใช้ได้ หากผู้ใช้เปิดเว็บไซต์ที่เป็นอันตราย เว็บไซต์นั้นสามารถเริ่มต้นการเชื่อมต่อกับ ocs-manager และทำให้โค้ดทำงานบนระบบของผู้ใช้ได้
นอกจากนี้ ยังพบช่องโหว่ XSS ในไดเร็กทอรี extensions.gnome.org ด้วย โดยในช่องที่มี URL ของหน้าแรกของปลั๊กอิน คุณสามารถระบุโค้ด JavaScript ในรูปแบบ "javascript:code" และเมื่อคุณคลิกที่ลิงก์ โค้ด JavaScript ที่ระบุจะถูกเรียกใช้งานแทนที่จะเปิดเว็บไซต์ของโปรเจกต์
ในแง่หนึ่งปัญหาดังกล่าวเป็นการคาดเดามากกว่าเนื่องจากกระบวนการตรวจสอบเกี่ยวข้องกับตำแหน่งในไดเร็กทอรี extensions.gnome.org และการโจมตีไม่เพียงแต่ต้องเปิดหน้าเว็บเฉพาะเท่านั้น แต่ยังต้องคลิกลิงก์อย่างชัดเจนด้วย ในอีกแง่หนึ่ง เป็นไปได้ว่าในระหว่างกระบวนการตรวจสอบ ผู้ดูแลระบบอาจต้องการเข้าไปที่เว็บไซต์ของโครงการ ข้ามขั้นตอนการกรอกลิงก์ และเรียกใช้โค้ด JavaScript ภายในบัญชีของตนเอง
สุดท้ายนี้ หากคุณสนใจเรียนรู้เพิ่มเติม สามารถดูรายละเอียดได้ที่ลิงก์ต่อไปนี้