ช่องโหว่ Server-Side Request Forgery (SSRF) — CVE-2026-58141 (CVSS 7.6)
📋 สรุปช่องโหว่
ช่องโหว่ SSRF มี CVSS Score 7.6 ระดับ "สูง" ทำให้ผู้โจมตีบังคับให้เซิร์ฟเวอร์ส่ง HTTP request ไปยัง destination ที่ผู้โจมตีกำหนด รวมถึง internal services ที่ปกติไม่เปิดให้เข้าถึงจากภายนอก
ช่องโหว่นี้อันตรายเป็นพิเศษในสภาพแวดล้อม cloud เพราะสามารถใช้เข้าถึง metadata service (169.254.169.254) เพื่อขโมย cloud credentials ได้
💥 ผลกระทบที่อาจเกิดขึ้น
ผลกระทบจาก SSRF:
• เข้าถึง Internal Services: localhost:6379 (Redis), localhost:3306 (MySQL), internal APIs
• ขโมย Cloud Credentials: AWS/GCP/Azure metadata endpoint ให้ access key
• Port Scanning: ใช้เซิร์ฟเวอร์ scan network ภายใน
• Bypass Firewall: เข้าถึง service ที่ firewall block ไม่ให้เข้าจากภายนอก
• Read Local Files: ผ่าน file:// protocol อาจอ่านไฟล์บนระบบได้
🖥️ ซอฟต์แวร์และระบบที่ได้รับผลกระทบ
ตรวจสอบที่ https://nvd.nist.gov/vuln/detail/CVE-2026-58141
🔧 แนวทางการแก้ไขและป้องกัน
- ขั้นตอนแก้ไข:
- 1. อัพเดตทันที: ติดตั้งเวอร์ชันที่แก้ไขแล้ว
- 2. Block Metadata Endpoint: ตั้ง firewall rule block 169.254.169.254 จาก web process
- 3. Allowlist URLs: จำกัด outbound request เฉพาะ domain ที่อนุญาต
- 4. ตรวจสอบ Logs: ดู outbound request ที่น่าสงสัย
- 5. Network Segmentation: แยก web server ออกจาก internal network
📄 รายละเอียดต้นฉบับ (ภาษาอังกฤษ)
Dify before 1.15.0 contains a server-side request forgery vulnerability that allows any authenticated console user to bypass SSRF protections and issue arbitrary HTTP requests to internal services and cloud metadata endpoints due to the Squid proxy configuration only defining source ACLs without destination deny rules and the make_request() helper performing no independent destination IP validation. Attackers can use endpoints such as GET /console/api/remote-files/<url>, POST /console/api/remote-files/upload, the HTTP Request workflow node, website crawl, or document import from URL to reach internal components like the sandbox, internal APIs, and PostgreSQL, and on AWS deployments read IAM credentials from the instance metadata service, with the HTTP Request node further enabling POST, PUT, and DELETE writes to internal services relying on network isolation for authorization.