ช่องโหว่ SQL Injection ใน Advanced Shipment Tracking for WooCommerce — CVE-2026-120558 (CVSS 7.2)
📋 สรุปช่องโหว่
ช่องโหว่ SQL Injection ใน WordPress Plugin "Advanced Shipment Tracking for WooCommerce" ถูกค้นพบโดยมี CVSS Score 7.2 ระดับ "สูง" ซึ่งถือว่าอันตรายมากและต้องได้รับการแก้ไขอย่างเร่งด่วน
SQL Injection เกิดจากการที่ระบบนำข้อมูลจากผู้ใช้มาประกอบ SQL query โดยตรงโดยไม่ผ่านการ sanitize ผู้โจมตีสามารถแทรก SQL statement อันตรายเพื่อเข้าถึงหรือแก้ไขข้อมูลในฐานข้อมูลได้
ความรุนแรงของช่องโหว่นี้อยู่ที่ความง่ายในการโจมตีและความเสียหายที่สามารถเกิดขึ้นได้ในวงกว้าง ตั้งแต่การขโมยข้อมูลผู้ใช้ทั้งหมด ไปจนถึงการควบคุมเซิร์ฟเวอร์
💥 ผลกระทบที่อาจเกิดขึ้น
ผลกระทบที่อาจเกิดขึ้นจากช่องโหว่นี้:
• ขโมยข้อมูล Users/Passwords: ดึง username email และ password hash ของผู้ใช้ทั้งหมดออกจากฐานข้อมูล
• Bypass Authentication: ข้ามการตรวจสอบรหัสผ่านและเข้าสู่ระบบในฐานะ admin โดยไม่รู้รหัสผ่าน
• แก้ไข/ลบข้อมูล: เปลี่ยนแปลงหรือทำลายข้อมูลในฐานข้อมูลทั้งหมด
• อ่านไฟล์ระบบ: ในบางกรณีอาจใช้ SQL อ่านไฟล์บนเซิร์ฟเวอร์ได้
• Remote Code Execution: หากมีสิทธิ์ FILE อาจเขียน PHP shell ลงในเว็บเซิร์ฟเวอร์
• ขโมยข้อมูลธุรกิจ: ดึงข้อมูลลูกค้า ข้อมูลบัตรเครดิต หรือข้อมูลความลับทางธุรกิจ
🖥️ ซอฟต์แวร์และระบบที่ได้รับผลกระทบ
WordPress Plugin: Advanced Shipment Tracking for WooCommerce
ตรวจสอบเวอร์ชันที่ได้รับผลกระทบที่ https://nvd.nist.gov/vuln/detail/CVE-2026-120558
🔧 แนวทางการแก้ไขและป้องกัน
- ขั้นตอนแก้ไขเร่งด่วน:
- 1. อัพเดตทันที: อัพเดตซอฟต์แวร์เป็นเวอร์ชันล่าสุดที่แก้ไขช่องโหว่แล้ว
- 2. ตรวจสอบ Logs ย้อนหลัง: ค้นหาคำว่า UNION SELECT, OR 1=1, -- ใน access log เพื่อดูว่าถูกโจมตีไปแล้วหรือไม่
- 3. เปลี่ยนรหัสผ่านทั้งหมด: เปลี่ยน DB password, admin password, และ secret keys ทันที
- 4. ตรวจสอบ User Accounts: ดูว่ามี account ที่ไม่รู้จักหรือ permission ที่ผิดปกติ
- 5. ติดตั้ง WAF: ใช้ Cloudflare WAF, ModSecurity หรือ Wordfence เพื่อ block SQL injection attempts
- 6. Backup ฐานข้อมูล: สำรองข้อมูลก่อนดำเนินการแก้ไขใดๆ
- 7. แจ้งผู้ใช้: หากมีข้อมูลผู้ใช้รั่วไหล ควรแจ้งให้ผู้ใช้เปลี่ยนรหัสผ่านทันที
📄 รายละเอียดต้นฉบับ (ภาษาอังกฤษ)
The Advanced Shipment Tracking for WooCommerce plugin for WordPress is vulnerable to SQL Injection via the `tracking_provider` parameter of the `POST /wp-json/wc-ast/v3/orders/<order_id>/shipment-trackings` REST endpoint in all versions up to, and including, 3.9. This is due to insufficient escaping on the user-supplied parameter and lack of sufficient preparation on the existing SQL query in `WC_Advanced_Shipment_Tracking_Admin::get_provider_slug_from_name()` — the value is concatenated directly into the format string of `$wpdb->prepare()` rather than bound as a parameter, bypassing parameterised-query protections. This makes it possible for authenticated attackers, with Shop Manager-level access and above, to append additional SQL queries into the already-existing query that can be used to extract sensitive information from the database.