โครงการ KDE ไม่แนะนำให้ติดตั้งธีมและวิดเจ็ตส่วนกลางที่ไม่เป็นทางการสำหรับ KDE หลังจากเหตุการณ์ที่เกี่ยวข้องกับการลบไฟล์ส่วนบุคคลทั้งหมดจากผู้ใช้ที่ติดตั้งธีม Grey Layout จาก KDE Store โดยมีการดาวน์โหลดประมาณ 4000 ครั้ง เชื่อกันว่าเหตุการณ์ดังกล่าวไม่ได้เกิดจากเจตนาร้าย แต่เกิดจากข้อบกพร่องที่เกี่ยวข้องกับการใช้คำสั่ง "rm -rf" อย่างไม่ปลอดภัย
ธีมส่วนกลางของ KDE ให้ความสามารถในการใช้พลาสมอยด์ที่รันคำสั่งที่กำหนดเอง ซึ่งสามารถใช้เพื่อลบไฟล์ และอื่นๆ อีกมากมาย เมื่อใช้โครงสร้างเช่น “rm -rf $VAR/*” ในโค้ด สถานการณ์อาจเกิดขึ้นเมื่อตัวแปร $VAR ไม่ได้กำหนดค่าเริ่มต้น ซึ่งจะนำไปสู่การดำเนินการจริงของคำสั่ง “rm -rf /*” ก่อนหน้านี้ข้อผิดพลาดที่คล้ายกันปรากฏในสคริปต์การเริ่มต้นของ Squid, Steam และ bumblebee
เหตุการณ์นี้เชื่อมโยงกับรหัสการเรียกจากวิดเจ็ต PlasmaConfSaver ซึ่งมีสคริปต์ save.sh ซึ่งจะลบไฟล์การกำหนดค่าเก่าที่เหลือจากการติดตั้งครั้งล่าสุด ไฟล์จะถูกลบด้วยคำสั่ง “rm -Rf “$configFolder” แม้ว่าโค้ดจะไม่ตรวจสอบการตั้งค่าของตัวแปร $configFolder ซึ่งค่าจะถูกส่งผ่านอาร์กิวเมนต์บรรทัดคำสั่ง (“configFolder=$2”) . เดิมรหัสได้รับการออกแบบมาเพื่อใช้ใน KDE 5 แต่เนื่องจากการเปลี่ยนแปลงใน KDE 6 ตรรกะสำหรับการเรียกตัวจัดการอาจเสียหาย และตัวแปรจะลงเอยด้วยค่าที่จะลบข้อมูลผู้ใช้ทั้งหมด (เช่น แทนที่จะเรียกใช้ “ sh save.sh somepath/ ..." โค้ด “sh save.sh somepath / …” สามารถดำเนินการได้ ซึ่งส่งผลให้ค่า “/” ในตัวแปร configFolder
นักพัฒนา KDE ตั้งใจที่จะตรวจสอบธีมของบุคคลที่สามที่โพสต์ในไดเร็กทอรี KDE Store เพื่อระบุข้อผิดพลาดที่คล้ายกัน และยังจัดระเบียบคำเตือนเมื่อติดตั้งธีมที่โพสต์โดยผู้ใช้บุคคลที่สาม นอกจากนี้ ปัญหาของการแนะนำการคัดกรองล่วงหน้าของโปรเจ็กต์ที่โฮสต์ใน KDE Store นั้นมีการอภิปรายเพื่อตอบโต้การวางตำแหน่งธีมที่เป็นเป้าหมายโดยผู้โจมตีที่มุ่งเป้าไปที่การดำเนินการที่เป็นอันตราย เช่น การขโมยข้อมูลที่ละเอียดอ่อนและกระบวนการที่รันอยู่เพื่อปลอมแปลงหมายเลขกระเป๋าเงินเข้ารหัสลับบน คลิปบอร์ด
โดยทั่วไป ผู้ใช้จำนวนมากไม่คิดว่าโค้ดอาจถูกเรียกใช้งานเมื่อติดตั้งธีม ดังนั้นพวกเขาจึงไม่ให้ความสำคัญกับความปลอดภัยเมื่อติดตั้งธีม ธีมสากลไม่เพียงส่งผลต่อรูปลักษณ์ภายนอกเท่านั้น แต่ยังเปลี่ยนพฤติกรรมของพลาสมาด้วย และอาจรวมถึงการใช้งานล็อกเกอร์หน้าจอและแอปเพล็ตของตัวเองด้วย เช่น ส่วนประกอบที่รันโค้ด เนื่องจากทรัพยากรไม่เพียงพอ โปรเจ็กต์ที่โพสต์ในไดเร็กทอรี KDE Store จะไม่ได้รับการยืนยันแต่อย่างใด และจะวางอยู่บนพื้นฐานของความไว้วางใจเท่านั้น แม้ว่าใครก็ตามสามารถลงทะเบียนในไดเร็กทอรีได้ก็ตาม
ที่มา: opennet.ru
