ในระหว่างการตรวจสอบเว็บไซต์ OpenCart โดยใช้ธีม Journal ยอดนิยม เราพบว่าปลายทางเฉพาะเจาะจงมีความเสี่ยงต่อการเปิดเผยข้อมูลที่ละเอียดอ่อนผ่านข้อผิดพลาดของ SQL Journal รุ่น 3.1.0 แก้ไขปัญหาเผยแพร่เมื่อวันที่ 1 กรกฎาคม 2020
รหัส CVE: CVE-2020-15478
สรุป
Journal ธีม OpenCart ที่ขายดีที่สุดที่ใช้ในเว็บไซต์กว่า 25,000 แห่ง พบว่ามีการเปิดเผยข้อมูลที่ละเอียดอ่อนและอาจเสี่ยงต่อการถูกโจมตีมากขึ้น เช่น SQL Injection
การเปิดเผยข้อมูลที่ละเอียดอ่อน ซึ่งเป็นช่องโหว่ 10 อันดับแรกของ OWASP เกิดขึ้นเมื่อแอปพลิเคชันไม่สามารถรักษาความปลอดภัยข้อมูลที่ละเอียดอ่อนได้อย่างเพียงพอ ข้อมูลที่เปิดเผยอาจรวมถึงรหัสผ่าน โทเค็นของเซสชัน ข้อมูลบัตรเครดิต ข้อมูลสุขภาพส่วนตัว และอื่นๆ
ช่องโหว่
รายละเอียดเพิ่มเติมเกี่ยวกับช่องโหว่จะถูกเพิ่มในวันที่ 15 กรกฎาคม เพื่อให้ผู้ใช้ธีมมีเวลาเพียงพอในการอัปเดตเป็นเวอร์ชันล่าสุด
อัปเดตพร้อมรายละเอียดทางเทคนิค:
เนื่องจากวิธีที่พารามิเตอร์ “page” เป็นแบบ typecast เป็นจำนวนเต็มใน /catalog/controller/journal3/blog.php หากมีคนป้อนสตริง จะส่งผลให้ข้อความแสดงข้อผิดพลาดโดยละเอียดแสดงข้อผิดพลาด SQL รายละเอียดฐานข้อมูล และเส้นทางภายใน
ข้อมูลดังกล่าวสามารถช่วยให้ผู้โจมตีเตรียมการโจมตีได้ดีขึ้น เราพบว่า $page เป็นประเภทที่แปลงเป็นจำนวนเต็มโดยใช้ $page = (int)Arr::get($this->request->get, 'page', 1);
ในไฟล์ดังกล่าว
ไทม์ไลน์
รายงานช่องโหว่ไปยังทีม Journal เมื่อวันที่ 11 มิถุนายน 2020
เวอร์ชัน 3.1.0 ที่มีการแก้ไขช่องโหว่เผยแพร่เมื่อวันที่ 1 กรกฎาคม 2020
คำแนะนำ
- ขอแนะนำอย่างยิ่งให้อัปเดตธีมเป็นเวอร์ชันล่าสุด
- คุณยังสามารถเพิ่มรหัสต่อไปนี้หลังบรรทัด
$page = (int)Arr::get($this->request->get, 'page', 1);
ใน /catalog/controller/journal3/blog.php:
if ($page == 0)
{
$page=1;
}
ข้อมูลอ้างอิง
- https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-15478
- https://docs.journal-theme.com/changelog
- https://nvd.nist.gov/vuln/detail/CVE-2020-15478