ช่องโหว่ Path Traversal — CVE-2026-53980 (CVSS 8.1)
📋 สรุปช่องโหว่
ช่องโหว่ Path Traversal มี CVSS Score 8.1 ระดับ "สูง" ทำให้ผู้โจมตีสามารถอ่านไฟล์นอก directory ที่กำหนดได้ โดยใช้ ../../../ หรือ URL encoding เพื่อ traverse ขึ้นไปยัง directory ที่สูงกว่า
ช่องโหว่นี้อาจเปิดเผยไฟล์สำคัญเช่น /etc/passwd, wp-config.php หรือ .env ที่มี credentials สำคัญ
💥 ผลกระทบที่อาจเกิดขึ้น
ผลกระทบจาก Path Traversal:
• อ่าน Credentials: ดึง database password จาก wp-config.php หรือ .env
• อ่านไฟล์ระบบ: /etc/passwd, /etc/shadow, SSH keys
• ขโมย Source Code: อ่าน source code ของแอปพลิเคชัน
• ค้นหาช่องโหว่เพิ่มเติม: ใช้ข้อมูลจากไฟล์ config โจมตีต่อไป
🖥️ ซอฟต์แวร์และระบบที่ได้รับผลกระทบ
ตรวจสอบจาก https://nvd.nist.gov/vuln/detail/CVE-2026-53980
🔧 แนวทางการแก้ไขและป้องกัน
- ขั้นตอนแก้ไข:
- 1. อัพเดตทันที: อัพเดตเป็นเวอร์ชันที่แก้ไขแล้ว
- 2. Validate File Paths: ตรวจสอบและ normalize path ก่อนใช้งาน ใช้ realpath() และตรวจว่า path อยู่ใน allowed directory
- 3. ตรวจสอบ Log: ค้นหา request ที่มี ../ หรือ %2e%2e ใน access log
- 4. จำกัดสิทธิ์ไฟล์: ตั้งค่า file permission ให้ web server อ่านได้เฉพาะที่จำเป็น
- 5. เปลี่ยน Credentials: เปลี่ยนรหัสผ่านทั้งหมดหากสงสัยว่าถูกอ่านไปแล้ว
📄 รายละเอียดต้นฉบับ (ภาษาอังกฤษ)
Charmbracelet wish before 2.0.5 contains a path traversal vulnerability in the git middleware (charm.land/wish/v2) that allows authenticated SSH users to escape the configured repository directory by supplying crafted repo paths that bypass a flawed forward-slash-count containment check in git.Middleware(). Attackers can use a single-depth path ../evil, or on Windows a payload ..\..\evil that defeats the slash-count guard entirely, to read or write arbitrary repositories outside the intended root via git-upload-pack, git-upload-archive, or git-receive-pack.