ช่องโหว่ในไลบรารี PharStreamWrapper ที่ส่งผลต่อ Drupal, Joomla และ Typo3

ในห้องสมุด PharStreamWrapperซึ่งจัดให้มีตัวจัดการเพื่อป้องกัน ของ การโจมตี ผ่านการทดแทนไฟล์ในรูปแบบ “ฟาร์” ระบุ จุดอ่อน (CVE-2019-11831) ซึ่งช่วยให้คุณข้ามการป้องกันการดีซีเรียลไลซ์โค้ดได้โดยการแทนที่อักขระ “..” ในเส้นทาง ตัวอย่างเช่น ผู้โจมตีสามารถใช้ URL เช่น “phar:///path/bad.phar/../good.phar” ในการโจมตี และไลบรารีจะไฮไลต์ชื่อฐาน “/path/good.phar” เมื่อ การตรวจสอบ แม้ว่าในระหว่างการประมวลผลเส้นทางดังกล่าวเพิ่มเติม ไฟล์ "/path/bad.phar" จะถูกนำมาใช้

ไลบรารีนี้ได้รับการพัฒนาโดยผู้สร้าง CMS TYPO3 แต่ยังใช้ในโครงการ Drupal และ Joomla ซึ่งทำให้มีความเสี่ยงต่อช่องโหว่เช่นกัน แก้ไขปัญหาในการเผยแพร่ PharStreamWrapper 2.1.1 และ 3.1.1. โครงการ Drupal แก้ไขปัญหาในการอัปเดต 7.67, 8.6.16 และ 8.7.1 ใน Joomla ปัญหาปรากฏขึ้นตั้งแต่เวอร์ชัน 3.9.3 และได้รับการแก้ไขแล้วในรุ่น 3.9.6 หากต้องการแก้ไขปัญหาใน TYPO3 คุณต้องอัปเดตไลบรารี PharStreamWapper

ในทางปฏิบัติ ช่องโหว่ใน PharStreamWapper ช่วยให้ผู้ใช้ Drupal Core ที่มีสิทธิ์ 'ธีมผู้ดูแลระบบ' สามารถอัปโหลดไฟล์ phar ที่เป็นอันตราย และทำให้โค้ด PHP ที่อยู่ในนั้นถูกดำเนินการภายใต้หน้ากากของไฟล์เก็บถาวร phar ที่ถูกต้องตามกฎหมาย โปรดจำไว้ว่าสาระสำคัญของการโจมตี "Phar deserialization" คือเมื่อตรวจสอบไฟล์วิธีใช้ที่โหลดของฟังก์ชัน PHP file_exists() ฟังก์ชันนี้จะทำการดีซีเรียลไลซ์ข้อมูลเมตาจากไฟล์ Phar (PHP Archive) โดยอัตโนมัติเมื่อประมวลผลเส้นทางที่ขึ้นต้นด้วย "phar://" . คุณสามารถถ่ายโอนไฟล์ phar เป็นรูปภาพได้ เนื่องจากฟังก์ชัน file_exists() จะกำหนดประเภท MIME ตามเนื้อหา ไม่ใช่ตามส่วนขยาย

ที่มา: opennet.ru

เพิ่มความคิดเห็น