สรุปสั้น

โค้ดอันตรายถูกแอบใส่เข้าไปในปลั๊กอินฝังวิดีโอยอดนิยมของ WordPress ชื่อ Advanced Responsive Video Embedder หรือ ARVE ซึ่งใช้สำหรับดึงวิดีโอจาก YouTube, Vimeo, Rumble และบริการอื่น ๆ มาแสดงบนเว็บไซต์ โดยปลั๊กอินตัวนี้มีการติดตั้งใช้งานอยู่ราว 20,000 เว็บไซต์ ผลของโค้ดที่ถูกฝังคือใครก็ตามที่รู้ค่าโทเค็นลับเพียงตัวเดียวจะสามารถล็อกอินเข้าเว็บไซต์ในฐานะผู้ดูแลระบบได้ทันที โดยไม่ต้องมีบัญชี ไม่ต้องรู้รหัสผ่าน ไม่ต้องให้ผู้ใช้คลิกอะไร และไม่ต้องเดารหัสผ่านแบบ brute force เลยแม้แต่ครั้งเดียว

ระบบตรวจจับอัตโนมัติชื่อ PRISM ของบริษัท Wordfence ตรวจพบโค้ดชุดนี้ภายในเวลาไม่ถึง 2 ชั่วโมงหลังจากมันถูกใส่เข้าไปในซอร์สโค้ดเมื่อวันที่ 28 กรกฎาคม 2569 เวอร์ชันที่ได้รับผลกระทบคือ 10.8.7 ซึ่งถูกออกเลข CVE-2026-18072 และจัดระดับความรุนแรงเป็นวิกฤตด้วยคะแนน CVSS 9.8 เต็ม 10 โดยบริษัท Wordfence ระบุว่าโค้ดนี้น่าจะถูกใส่โดยผู้โจมตีที่เข้าถึงสิทธิ์ commit ในบัญชีของนักพัฒนาได้ ไม่ใช่ความผิดพลาดในการเขียนโปรแกรม และในบันทึกช่องโหว่ของบริษัทระบุสถานะของเวอร์ชันนี้ว่ายังไม่ได้รับการแก้ไข

จุดที่ทำให้เหตุการณ์นี้ไม่กลายเป็นหายนะคือกลไกหน่วงเวลาที่ WordPress.org เพิ่งเริ่มใช้เมื่อเดือนมิถุนายนที่ผ่านมา ซึ่งชะลอการปล่อยปลั๊กอินและธีมเวอร์ชันใหม่ไว้ได้ถึง 24 ชั่วโมงเพื่อให้มีเวลาสแกนอัตโนมัติและตรวจสอบโดยคนก่อนส่งเข้าสู่ระบบอัปเดตอัตโนมัติ ผลคือ WordPress.org แจ้งกับ Wordfence ว่าเวอร์ชัน 10.8.7 ยังไม่ถูกกระจายออกไป และเว็บไซต์ที่ตั้งค่าอัปเดตอัตโนมัติตามปกติจึงไม่ควรได้รับเวอร์ชันที่ถูกฝังแบ็กดอร์ อย่างไรก็ตามความเห็นระหว่างผู้พัฒนากับ Wordfence ยังไม่ตรงกันในเรื่องคำแนะนำที่ควรให้กับผู้ใช้

รายละเอียดข่าว

เว็บไซต์ HackRead รายงานเมื่อวันที่ 31 กรกฎาคม 2569 ว่า บริษัท Wordfence ตรวจพบแบ็กดอร์ระดับวิกฤตในปลั๊กอิน WordPress ชื่อ Advanced Responsive Video Embedder ซึ่งเป็นเครื่องมือช่วยฝังวิดีโอจากบริการภายนอกลงบนเว็บไซต์ และมีการติดตั้งใช้งานอยู่ประมาณ 20,000 เว็บไซต์ทั่วโลก

ตามไทม์ไลน์ที่ Wordfence เผยแพร่ โค้ดอันตรายถูกใส่เข้าไปเมื่อเวลา 8:42 น. ของวันที่ 28 กรกฎาคม ระบบ PRISM ตรวจพบเมื่อเวลา 10:33 น. และนักวิจัยของบริษัทยืนยันผลอีก 10 นาทีถัดมา จากนั้นเมื่อเวลา 11:09 น. WordPress.org ก็ปิดการดาวน์โหลดปลั๊กอินตัวนี้ รวมระยะเวลาตั้งแต่โค้ดถูกใส่จนถูกถอดออกจากคลังกลางอยู่ที่ราว 2 ชั่วโมงครึ่ง

บริษัท Wordfence ระบุว่าโค้ดดังกล่าวน่าจะถูกใส่โดยผู้โจมตีที่ยึดสิทธิ์ commit ในบัญชีของนักพัฒนาได้ ซึ่งเป็นรูปแบบการโจมตีห่วงโซ่อุปทานซอฟต์แวร์ที่อาศัยความไว้วางใจของผู้ใช้ปลายทางที่มีต่อคลังปลั๊กอินอย่างเป็นทางการ ไม่ใช่การเจาะเว็บไซต์แต่ละแห่งโดยตรง

ประเด็นที่ยังเป็นข้อถกเถียงคือคำแนะนำหลังเกิดเหตุ นาย Nicolas Jonas ผู้พัฒนาปลั๊กอิน ARVE ยืนยันว่าเวอร์ชันที่ถูกฝังแบ็กดอร์ไม่เคยไปถึงมือผู้ใช้ผ่าน WordPress.org และตั้งคำถามกับคำแนะนำของ Wordfence ที่บอกให้ผู้ใช้ถอนการติดตั้งปลั๊กอิน ขณะที่ Wordfence ตอบกลับว่าสำเนาที่ติดตั้งด้วยมือหรืออัปเดตที่ได้มาจากแหล่งภายนอกยังอาจเป็นเวอร์ชัน 10.8.7 ได้อยู่ อีกทั้งตัวปลั๊กอินยังอยู่ในสถานะถูกบุกรุกและถูกถอดออกจากคลังอย่างเป็นทางการ

กลไกที่ช่วยชีวิตในกรณีนี้คือมาตรการที่ WordPress ประกาศใช้เมื่อเดือนมิถุนายน 2569 ซึ่งหน่วงการเผยแพร่ปลั๊กอินและธีมเวอร์ชันใหม่ไว้สูงสุด 24 ชั่วโมง เพื่อเปิดช่องให้ระบบสแกนอัตโนมัติและผู้ตรวจสอบที่เป็นคนได้ดูก่อนที่อัปเดตจะถูกส่งไปยังเว็บไซต์ปลายทาง มาตรการนี้เพิ่งถูกวิจารณ์ในแง่ที่ทำให้การออกแพตช์ฉุกเฉินช้าลง แต่เหตุการณ์ครั้งนี้กลายเป็นตัวอย่างที่ชัดที่สุดว่ามันมีไว้เพื่ออะไร

สำหรับผู้ใช้ที่ซื้อบริการของ Wordfence แบบเสียเงิน บริษัทออกกฎไฟร์วอลล์ป้องกันให้ตั้งแต่วันที่ 28 กรกฎาคม ส่วนผู้ใช้บริการฟรีมีกำหนดได้รับกฎเดียวกันในวันที่ 27 สิงหาคม ซึ่งเป็นช่วงห่างตามนโยบายปกติของบริษัท

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

รายละเอียดช่องโหว่

โค้ดอันตรายถูกซ่อนไว้ในไฟล์ชื่อ php/fn-update-check.php ซึ่งตั้งชื่อให้ดูเหมือนโค้ดตรวจสอบการอัปเดตปลั๊กอินตามปกติ เทคนิคการอำพรางแบบนี้อาศัยความคุ้นเคยของผู้ตรวจโค้ดกับชื่อไฟล์ที่ดูไม่มีพิษภัย ทำให้การไล่อ่านซอร์สแบบผ่าน ๆ มีโอกาสมองข้ามได้สูง

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

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

เมื่อค่าตรงกัน โค้ดจะเลือกบัญชีผู้ดูแลระบบขึ้นมาบัญชีหนึ่ง สร้างคุกกี้สำหรับล็อกอินแบบคงสถานะไว้ให้ผู้โจมตี แล้วส่งผู้โจมตีเข้าสู่หน้าแดชบอร์ดของ WordPress โดยตรง เท่ากับได้สิทธิ์สูงสุดของเว็บไซต์ในคำขอเดียว นอกจากนี้โค้ดยังส่งที่อยู่เว็บไซต์และชื่อผู้ใช้ของแอดมินที่ถูกเลือกไปยังโดเมน fontswp.com ซึ่งบริษัท Wordfence ระบุว่าเป็นเซิร์ฟเวอร์สั่งการที่ผู้โจมตีควบคุมอยู่ พฤติกรรมนี้บ่งชี้ว่าผู้โจมตีตั้งใจสร้างรายชื่อเว็บไซต์ที่ยึดได้ไว้ใช้ต่อในภายหลัง ไม่ใช่แค่เจาะเข้ามาแบบสุ่ม

ผลกระทบ

ผลกระทบที่แท้จริงของเหตุการณ์นี้ถูกจำกัดไว้ด้วยกลไกหน่วงเวลา 24 ชั่วโมงของ WordPress.org ไม่ใช่ด้วยความยากของการโจมตี เพราะถ้าเวอร์ชัน 10.8.7 หลุดเข้าสู่ระบบอัปเดตอัตโนมัติได้จริง เว็บไซต์หลักหมื่นแห่งจะถูกยึดสิทธิ์แอดมินได้ด้วยคำขอ HTTP เพียงคำขอเดียว โดยเจ้าของเว็บไม่มีทางรู้ตัว และเนื่องจากค่าที่ใช้ยืนยันถูกฝังอยู่ในซอร์สโค้ดที่เปิดเผยต่อสาธารณะ ผู้โจมตีรายอื่นที่อ่านโค้ดเจอก็จะใช้ประตูหลังบานเดียวกันได้ทันทีเช่นกัน

ในเชิงโครงสร้าง เหตุการณ์นี้ตอกย้ำว่าจุดอ่อนที่สุดของระบบนิเวศปลั๊กอินไม่ใช่คุณภาพโค้ดของนักพัฒนา แต่คือความปลอดภัยของบัญชีที่มีสิทธิ์ commit หากบัญชีนักพัฒนาคนเดียวถูกยึด โค้ดอันตรายจะไหลผ่านช่องทางที่ทุกฝ่ายถือว่าน่าเชื่อถือที่สุด นั่นคือปุ่มอัปเดตในหน้าแดชบอร์ด ซึ่งเป็นสิ่งที่ทีมความมั่นคงปลอดภัยแนะนำให้ผู้ใช้กดมาโดยตลอด

อีกประเด็นที่ควรพิจารณาคือผู้ที่ไม่ได้ติดตั้งปลั๊กอินผ่านช่องทางทางการ เว็บไซต์ที่อัปโหลดไฟล์ zip เข้าไปเอง ใช้สคริปต์ดึงจาก mirror ภายนอก หรือรับปลั๊กอินมาพร้อมกับธีมหรือชุดติดตั้งสำเร็จรูปจากผู้รับจ้างพัฒนา อาจได้เวอร์ชัน 10.8.7 มาโดยไม่ผ่านกลไกหน่วงเวลาของ WordPress.org เลย กลุ่มนี้จึงเป็นกลุ่มเสี่ยงจริงที่เหลืออยู่ และเป็นเหตุผลที่ Wordfence ยังยืนยันคำแนะนำให้ตรวจสอบและถอนการติดตั้ง

คำแนะนำ

สิ่งแรกที่ต้องทำคือตรวจสอบเวอร์ชันของปลั๊กอิน ARVE บนทุกเว็บไซต์ที่ดูแลอยู่ หากพบว่าเป็นเวอร์ชัน 10.8.7 ให้ถอนการติดตั้งทันที จากนั้นตรวจสอบรายชื่อบัญชีผู้ดูแลระบบว่ามีบัญชีแปลกปลอมถูกเพิ่มเข้ามาหรือไม่ ยกเลิกเซสชันที่ยังใช้งานอยู่ทั้งหมด และหมุนเปลี่ยนค่า secret key ของ WordPress ในไฟล์ wp-config.php เพื่อทำให้คุกกี้ล็อกอินที่ผู้โจมตีอาจสร้างค้างไว้ใช้การไม่ได้อีก

ถัดมาให้ตรวจสอบไฟล์และระเบียนในฐานข้อมูลว่ามีการเปลี่ยนแปลงที่ไม่ได้รับอนุญาตหรือไม่ โดยเน้นที่ไฟล์ปลั๊กอินและธีมที่มีวันแก้ไขล่าสุดใกล้เคียงกับวันที่ 28 กรกฎาคม 2569 รวมถึงค้นหาไฟล์ php/fn-update-check.php ในไดเรกทอรีของปลั๊กอิน และค้นล็อกของเว็บเซิร์ฟเวอร์ย้อนหลังเพื่อหาคำร้องขอที่มีพารามิเตอร์ _wplogin หรือ _wpm ซึ่งเป็นหลักฐานตรงที่สุดว่ามีการพยายามใช้ประตูหลังนี้จริง

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

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

Indicators of Compromise (IoCs)

หมายเหตุ: โดเมนด้านล่างถูก defang (ใส่วงเล็บคั่นจุด) เพื่อป้องกันการคลิกโดยไม่ตั้งใจ

ประเภทตัวบ่งชี้คำอธิบาย
ไฟล์php/fn-update-check.phpไฟล์ที่ซ่อนโค้ดแบ็กดอร์ ตั้งชื่อให้ดูเหมือนโค้ดตรวจสอบการอัปเดต
พารามิเตอร์_wplogin, _wpmพารามิเตอร์ในคำร้องขอที่ใช้ส่งโทเค็นลับเข้ามาเพื่อล็อกอินเป็นแอดมิน
C2fontswp[.]comเซิร์ฟเวอร์สั่งการที่รับที่อยู่เว็บไซต์และชื่อแอดมินที่ถูกยึด
เวอร์ชันARVE 10.8.7เวอร์ชันเดียวที่ถูกฝังแบ็กดอร์ (CVE-2026-18072)

แหล่งอ้างอิง