ช่องโหว่ในไลบรารี Rust ชื่อ zip-rs และ librsvg

มีการค้นพบช่องโหว่ (CVE-2026-115905) ในไลบรารี zip-rs ซึ่งเขียนด้วยภาษา Rust และมีการดาวน์โหลดประมาณ 10 ล้านครั้งต่อสัปดาห์ ช่องโหว่นี้อนุญาตให้สร้างไฟล์เก็บถาวรที่ดูเหมือนไม่มีอันตราย แต่เมื่อแตกไฟล์แล้ว ไฟล์ที่ไม่เกี่ยวข้องจะถูกแยกออกมา ไฟล์สามารถถูกวางไว้ในไฟล์เก็บถาวรนอกโครงสร้าง "ไดเร็กทอรีกลาง" ทำให้รายการไฟล์แสดงเนื้อหาเหมือนเดิม แต่เมื่อแตกไฟล์โดยใช้ API ZipStreamReader ไฟล์ที่ไม่เกี่ยวข้องจะถูกแยกออกมา ปัญหาดังกล่าวได้รับการจัดระดับความรุนแรงที่ 10 จาก 10 ช่องโหว่นี้ได้รับการแก้ไขแล้วใน zip-rs เวอร์ชัน 9.0.5

ช่องโหว่นี้เกิดจากการใช้ส่วนหัวที่แตกต่างกันระหว่างการเข้าถึงไฟล์เก็บถาวรแบบสุ่มโดยใช้ API ของ ZipArchive และระหว่างการดึงข้อมูลแบบสตรีมมิ่งโดยใช้ API ของ ZipStreamReader ตัวจัดการของ ZipArchive อาศัยส่วนหัว CDFH (Central Directory File Header) ในขณะที่ ZipStreamReader ให้ความสำคัญกับส่วนหัว LFH (Local File Header) เมื่อดึงไฟล์โดยไม่ซิงโครไนซ์เมตาเดตาที่ซ้ำกัน

ช่องโหว่นี้สามารถใช้เพื่อหลีกเลี่ยงตัวกรองอีเมล โปรแกรมสแกนไวรัส และระบบรักษาความปลอดภัยอื่นๆ ผู้โจมตีสามารถวางเอกสารหรือรูปภาพไว้ในส่วนที่มองเห็นได้ของไฟล์เก็บถาวร และวางไฟล์ปฏิบัติการที่มีโค้ดที่เป็นอันตรายไว้ในส่วนที่ซ่อนอยู่ ไฟล์ปฏิบัติการนี้จะไม่ถูกตรวจพบโดยซอฟต์แวร์ป้องกันไวรัส แต่จะถูกบันทึกไว้ในดิสก์เมื่อผู้ใช้แตกไฟล์ ตัวอย่างเช่น การโจมตีไมโครเซอร์วิส แพลตฟอร์ม SaaS และระบบแยกคอนเทนเนอร์ ซึ่งการแตกไฟล์เก็บถาวรที่ไม่เป็นอันตราย (เช่น สไตล์ชีต ไฟล์ข้อความ หรือรูปภาพ) ลงในไดเร็กทอรีที่มีโปรเจกต์งานอยู่ สามารถเขียนทับสคริปต์และไฟล์ปฏิบัติการได้

พบช่องโหว่อีกจุดหนึ่ง (CVE-2026-96889) ในไลบรารี librsvg ซึ่งพัฒนาโดยโครงการ GNOME ด้วยภาษา Rust ไลบรารีนี้ใช้ในแอปพลิเคชัน GTK และ GNOME สำหรับการเรนเดอร์ SVG และยังรวมอยู่ในแพ็กเกจ sharp NPM ยอดนิยม ซึ่งมีการดาวน์โหลด 80 ล้านครั้งต่อสัปดาห์ และถูกใช้เป็นส่วนประกอบในโครงการเกือบ 11 โครงการ ช่องโหว่นี้อนุญาตให้มีการเรียกใช้โค้ดที่กำหนดเองเมื่อประมวลผลภาพ SVG ที่สร้างขึ้นเป็นพิเศษ ปัญหาได้รับการแก้ไขแล้วใน librsvg เวอร์ชัน 2.56.6, 2.60.3, 2.62.4 และ 2.63.1 รวมถึงในแพ็กเกจ sharp NPM เวอร์ชัน 0.35.5 โครงการที่ได้รับผลกระทบรวมถึงแพลตฟอร์ม PeerTube (ส่วนประกอบได้รับการอัปเดตใน PeerTube เวอร์ชัน 8.3.2 ที่เผยแพร่ในวันนี้)

ในการแยกวิเคราะห์มาร์กอัป XML ที่ใช้ในไฟล์ SVG นั้น librsvg ใช้ฟังก์ชันจากไลบรารี C libxml2 ช่องโหว่นี้เกิดขึ้นเนื่องจาก XML Xinclude ที่ซ้อนกันในไฟล์ SVG ซึ่งรวมถึงองค์ประกอบที่ซ้ำกันที่มีชื่อซ้ำกัน ทำให้เกิดการเข้าถึงหน่วยความจำหลังจากที่หน่วยความจำนั้นถูกปล่อยไปแล้ว การทำงานผิดพลาดเกิดขึ้นเนื่องจาก librsvg ปล่อยหน่วยความจำสำหรับองค์ประกอบ XML ที่ยังคงถูกใช้งานโดยตัวแยกวิเคราะห์ libxml2 อยู่

ที่มา: opennet.ru

ซื้อโฮสติ้งที่เชื่อถือได้สำหรับไซต์ที่มีการป้องกัน DDoS เซิร์ฟเวอร์ VPS VDS 🔥 ซื้อบริการเว็บโฮสติ้งที่เชื่อถือได้ พร้อมระบบป้องกัน DDoS และเซิร์ฟเวอร์ VPS/VDS | ProHoster