เมื่อเร็ว ๆ นี้ Pavel Cheremushkin de Kaspersky Lab วิเคราะห์การใช้งานระบบการเข้าถึงระยะไกล VNC ที่หลากหลาย (คอมพิวเตอร์เครือข่ายเสมือน) และระบุช่องโหว่ 37 ช่อง เกิดจากปัญหาหน่วยความจำ
ตรวจพบช่องโหว่ในการใช้งานเซิร์ฟเวอร์ VNC สามารถใช้ประโยชน์ได้โดยผู้ใช้ที่ได้รับการพิสูจน์ตัวตนเท่านั้น และการโจมตีช่องโหว่ในรหัสไคลเอ็นต์เป็นไปได้เมื่อผู้ใช้เชื่อมต่อกับเซิร์ฟเวอร์ที่ควบคุมโดยผู้โจมตี
ในบล็อก Kaspersky พวกเขาแสดงความคิดเห็นว่าช่องโหว่เหล่านี้สามารถใช้ประโยชน์ได้ด้วยวิธีต่อไปนี้:
แอปพลิเคชัน VNC ประกอบด้วยสองส่วน: เซิร์ฟเวอร์ที่ติดตั้งบนคอมพิวเตอร์ที่พนักงานของคุณเชื่อมต่อกับระยะไกลและไคลเอนต์ที่ทำงานบนอุปกรณ์ที่พวกเขาเชื่อมต่อ ช่องโหว่นั้นพบได้น้อยกว่ามากในฝั่งเซิร์ฟเวอร์ซึ่งมักจะง่ายกว่าเล็กน้อยและมีข้อบกพร่องน้อยกว่า อย่างไรก็ตามผู้เชี่ยวชาญ CERT ของเราพบข้อบกพร่องในทั้งสองส่วนของแอปพลิเคชันที่อยู่ระหว่างการตรวจสอบแม้ว่าในหลาย ๆ กรณีการโจมตีเซิร์ฟเวอร์อาจเป็นไปไม่ได้หากไม่ได้รับอนุญาต
เกี่ยวกับช่องโหว่
พบช่องโหว่ส่วนใหญ่ในแพ็คเกจ UltraVNCพร้อมใช้งานสำหรับแพลตฟอร์ม Windows เท่านั้น โดยรวมใน UltraVNC มีการระบุช่องโหว่ 22 ช่อง. ช่องโหว่ 13 ช่องอาจนำไปสู่การเรียกใช้โค้ดในระบบ 5 ช่องอาจทำให้เนื้อหาของพื้นที่หน่วยความจำรั่วไหลและ 4 ช่องโหว่อาจนำไปสู่การปฏิเสธการให้บริการ
ช่องโหว่ทั้งหมดนี้ได้รับการแก้ไขแล้วในเวอร์ชัน 1.2.3.0
ขณะอยู่ในไลบรารี LibVNC แบบเปิด (LibVNCServer และ LibVNCClient) ซึ่งใช้ใน VirtualBox มีการระบุช่องโหว่ 10 ช่อง. ช่องโหว่ 5 ช่อง (CVE-2018-20020, CVE-2018-20019, CVE-2018-15127, CVE-2018-15126, CVE-2018-6307) เกิดจากบัฟเฟอร์ล้นและอาจนำไปสู่การเรียกใช้โค้ด ช่องโหว่ 3 ประการอาจนำไปสู่การรั่วไหลของข้อมูล 2 เพื่อปฏิเสธการให้บริการ
นักพัฒนาได้แก้ไขปัญหาทั้งหมดแล้ว- การแก้ไขส่วนใหญ่รวมอยู่ในรุ่น LibVNCServer 0.9.12 แต่จนถึงขณะนี้การแก้ไขทั้งหมดจะแสดงเฉพาะในสาขาหลักและการปรับปรุงที่สร้างการแจกแจง
ใน TightVNC 1.3 (cross-platform legacy branch ทดสอบแล้ว) เนื่องจากเวอร์ชันปัจจุบัน 2.x ได้รับการเผยแพร่สำหรับ Windows เท่านั้น) มีการค้นพบช่องโหว่ 4 ช่อง ปัญหาสามประการ (CVE-2019-15679, CVE-2019-15678, CVE-2019-8287) เกิดจากบัฟเฟอร์ล้นในฟังก์ชัน InitialiseRFBConnection, rfbServerCutText และ HandleCoRREBBP และอาจนำไปสู่การเรียกใช้โค้ด
ปัญหา (CVE-2019-15680) นำไปสู่การปฏิเสธการให้บริการ แม้ว่านักพัฒนา TightVNC จะได้รับแจ้งเกี่ยวกับปัญหานี้เมื่อปีที่แล้ว แต่ช่องโหว่ยังคงไม่ได้รับการแก้ไข
ในแพ็คเกจข้ามแพลตฟอร์ม เทอร์โบวีเอ็นซี (ทางแยกของ TightVNC 1.3 ซึ่งใช้ไลบรารี libjpeg-turbo) พบช่องโหว่เพียงช่องโหว่เดียว (CVE-2019-15683) แต่จะเป็นอันตรายและหากมีการตรวจสอบสิทธิ์การเข้าถึงเซิร์ฟเวอร์จะทำให้สามารถจัดระเบียบการเรียกใช้โค้ดของคุณได้เช่นเดียวกับบัฟเฟอร์ล้นจึงเป็นไปได้ที่จะควบคุมทิศทางการส่งคืน ปัญหาได้รับการแก้ไขเมื่อวันที่ 23 สิงหาคมและไม่ปรากฏในเวอร์ชันปัจจุบัน 2.2.3
หากคุณต้องการทราบข้อมูลเพิ่มเติม คุณสามารถตรวจสอบรายละเอียดในโพสต์ต้นฉบับ ลิงค์คือนี่
ในส่วนของการอัปเดตแพ็กเกจสามารถทำได้ดังต่อไปนี้
เซิร์ฟเวอร์ libvnc
รหัสห้องสมุด พวกเขาสามารถดาวน์โหลดได้จากที่เก็บของพวกเขาบน GitHub (ลิงค์คือนี่) หากต้องการดาวน์โหลดเวอร์ชันล่าสุดในขณะนี้คุณสามารถเปิดเทอร์มินัลและพิมพ์สิ่งต่อไปนี้:
wget https://github.com/LibVNC/libvncserver/archive/LibVNCServer-0.9.12.zip
เปิดเครื่องรูดด้วย:
unzip libvncserver-LibVNCServer-0.9.12
คุณเข้าสู่ไดเร็กทอรีด้วย:
cd libvncserver-LibVNCServer-0.9.12
และคุณสร้างแพ็คเกจด้วย:
mkdir build cd build cmake .. cmake --build .
เทอร์โบวีเอ็นซี
หากต้องการอัปเดตเป็นเวอร์ชันใหม่นี้ เพียงดาวน์โหลดแพ็คเกจเวอร์ชันเสถียรล่าสุดซึ่งสามารถหาได้จาก ลิงค์ต่อไปนี้
ดาวน์โหลดแพคเกจเสร็จแล้ว ตอนนี้คุณสามารถติดตั้งได้โดยการดับเบิลคลิก และให้ศูนย์ซอฟต์แวร์ดูแลการติดตั้งหรือสามารถทำได้ด้วยตัวจัดการแพ็กเกจที่ต้องการหรือจากเทอร์มินัล
พวกเขาทำอย่างหลังโดยการวางตำแหน่งของตัวเองว่าแพ็คเกจที่ดาวน์โหลดอยู่ในเทอร์มินัลของพวกเขาและในนั้นพวกเขาต้องพิมพ์เท่านั้น:
sudo dpkg -i turbovnc_2.2.3_amd64.deb