ช่องโหว่ในปลั๊กอิน GiveWP บน WordPress อาจทำให้ผู้โจมตีสามารถรันคำสั่งที่เป็นอันตรายบนเซิร์ฟเวอร์ได้

พบช่องโหว่ที่มีระดับความรุนแรงสูงสุดบนปลั๊กอิน GiveWP ของ WordPress ที่ทำให้ผู้โจมตีที่ไม่ผ่านการยืนยันตัวตนสามารถรันคำสั่งใด ๆ ก็ได้บนเครื่องเซิร์ฟเวอร์ได้

ช่องโหว่นี้มีหมายเลข CVE-2026-82222 ส่งผลกระทบต่อปลั๊กอิน GiveWP จนถึงเวอร์ชัน 4.16.7.1 ซึ่งได้รับการรายงานจาก Udin Chan นักวิจัยด้านช่องโหว่ระบบเมื่อวันที่ 28 กรกฎาคม 2026 ผ่านแพลตฟอร์ม vulnerability intelligence อย่าง Patchstack

ปลั๊กอิน GiveWP มียอดการติดตั้งมากกว่า 100,000 ครั้ง โดยเป็นเครื่องมือที่ช่วยในการรวบรวมเงินบริจาค และจัดการแคมเปญระดมทุน

นักวิจัยจาก Patchstack อธิบายว่า การโจมตีผ่านช่องโหว่นี้สามารถทำได้โดยอาศัยช่องโหว่ 3 ประการ ได้แก่

  1. ฟังก์ชัน helper ที่ไม่ปลอดภัยสำหรับการทำ Unserialize ข้อมูลรูปแบบ PHP
  2. กระบวนการรับบริจาค (Donation-processing flow) ที่เปิดช่องให้ผู้โจมตีสามารถแทรก Serialized object ที่เป็นอันตรายเข้ามาบันทึกในระบบได้
  3. Gadget chain ภายในไลบรารีที่มาพร้อมกับปลั๊กอิน ซึ่งสามารถเรียกใช้ System commands ใด ๆ ก็ได้

Patchstack ระบุว่า ความสำเร็จในการโจมตีนั้นขึ้นอยู่ที่แฮ็กเกอร์มีบัญชีผู้ใช้งานบนเว็บไซต์เป้าหมายหรือไม่ ทั้งนี้การเปิดให้ลงทะเบียนโดยไม่ต้องยืนยันตัวตน กลับช่วยให้แฮ็กเกอร์สามารถสร้างบัญชีผู้ใช้งานได้แม้เว็บไซต์ดังกล่าวจะปิดรับการลงทะเบียนไปแล้วก็ตาม

Patchstack อธิบายว่า "GiveWP ได้เปิดให้มีการสร้างบัญชีผู้ใช้งานที่ไม่ต้องผ่านการยืนยันตัวตน (give_action=user_register) โดยไม่มีการตรวจสอบตัวเลือก users_can_register ของ WordPress หลักเลย"

"แม้ว่าเว็บไซต์ดังกล่าวจะปิดระบบการลงทะเบียนไว้ แต่แฮ็กเกอร์ก็ยังสามารถสร้างบัญชี และรับ Authentication cookie ได้ หลังจากนั้นแฮ็กเกอร์จึงดำเนินการโจมตีในส่วนที่เหลือตามลำดับขั้นตอนเดิม"

หลังผ่านการยืนยันตัวตนสำเร็จ แฮ็กเกอร์จะสามารถบันทึก Object แบบ Serialized ที่เป็นอันตรายไว้ในหน้าโปรไฟล์ส่วนตัว และจากนั้นจะทำการแทรกโค้ดเข้าไปใน Session database ของปลั๊กอิน ผ่านการส่งข้อมูล Donation ที่ถูกปรับแต่งขึ้นมาเป็นพิเศษ

George Johnstone นักวิจัยด้านความปลอดภัยทางไซเบอร์จาก Patchstack ระบุว่า "เซิร์ฟเวอร์จะทำการบันทึกข้อมูล Gadget object ลงใน wp_give_sessions เป็นอันดับแรก จากนั้นจึงค่อยส่ง Error HTTP 500 กลับมา"

เมื่อมีการ Request พร้อมแนบ Authentication cookie ไปยังส่วนแสดงผลหน้า Front-end เซิร์ฟเวอร์ก็จะทำการ Unserialize ข้อมูล Gadget object ดังกล่าว ซึ่งส่งผลให้คำสั่งของผู้โจมตีถูกประมวลผลบนระบบทันที

แม้ว่าปลั๊กอินเวอร์ชัน 4.16.6 ถึง 4.16.7.1 จะยังคงมีช่องโหว่ดังกล่าว แต่การโจมตีจะประสบความสำเร็จก็ต่อเมื่อเว็บไซต์เป้าหมายมีการเปิดใช้งาน Donation form แบบเดิมอยู่ ซึ่งไม่มีการระบุค่า 'formBuilderSettings' เท่านั้น

Patchstack ให้ความเห็นว่า เงื่อนไขดังกล่าวอาจเกิดขึ้นได้ในระบบที่มีการอัปเกรด, เว็บไซต์ที่ใช้งาน Form editor แบบ Option ของปลั๊กอิน หรือเมื่อมีการ Import หรือ Restore form เวอร์ชันเก่า

GiveWP ได้ออกแพตช์แก้ไขช่องโหว่ดังกล่าวในเวอร์ชัน 4.16.7.2 ซึ่งปล่อยอัปเดตเมื่อวันที่ 27 สิงหาคม ที่ผ่านมา โดยปรับเพิ่มมาตรการความปลอดภัยด้วยการบล็อก Serialized data ในระหว่างประมวลผล Donation form พร้อมทั้งจำกัดสิทธิ์การสร้าง Object ในจุดต่าง ๆ ที่มีการทำ Deserialization

นอกจากนี้แพตช์ความปลอดภัยดังกล่าวยังครอบคลุมถึงการลบ Payload ประเภท Serialized object ที่ตกค้างอยู่ในฐานข้อมูลที่ได้รับผลกระทบออกไปด้วย

อย่างไรก็ตาม Patchstack ระบุว่า แม้ขั้นตอนการลงทะเบียนของ GiveWP ยังคงไม่เป็นไปตามการตั้งค่าการลงทะเบียนผู้ใช้ของ WordPress แต่ก็ไม่สามารถใช้ประโยชน์จากช่องโหว่นี้เพื่อรันโค้ดได้อีกต่อไป

ผู้ดูแลเว็บไซต์ที่ใช้งานปลั๊กอิน GiveWP ควรอัปเดตแพตช์เป็นเวอร์ชันล่าสุดโดยเร็ว เพื่อป้องกันผู้ไม่หวังดีนำช่องโหว่ CVE-2026-82222 ไปใช้โจมตีระบบ

ในปีที่ผ่านมา แฮ็กเกอร์ได้มุ่งเป้าโจมตี GiveWP เพื่อเจาะระบบ Pi-hole ซึ่งเป็นเครื่องมือ Ad-blocker ในระดับเครือข่ายยอดนิยม ส่งผลให้ชื่อ และที่อยู่อีเมลของผู้บริจาคจำนวน 30,000 รายเกิดการรั่วไหลออกมา

ที่มาbleepingcomputer