EST. 2026 — บันทึกงานเซิร์ฟเวอร์จริง SYSADMIN · SECURITY · AI · DIRECTADMIN เล่มที่ 01
THE SYSADMIN ALMANAC
หน้าหลัก / Security Notice / Apache Struts ช่องโหว่รันโค้ดผ่าน DMI CVE-2016-3081
Security Notice

Apache Struts ช่องโหว่รันโค้ดผ่าน DMI CVE-2016-3081

โดย Ton-Or ·8 ต.ค. 2026·อ่าน 4 นาที
Apache Struts ช่องโหว่รันโค้ดผ่าน DMI CVE-2016-3081

ผู้ดูแล Apache Struts รุ่นที่ได้รับผลกระทบและเปิด Dynamic Method Invocation ควรเร่งปิดฟังก์ชันนี้หรืออัปเดต เพราะมีการโจมตีจริงแล้ว

สรุปใน 1 นาที

อาการ/ปัญหา
ผู้โจมตีส่ง expression ผ่าน method: prefix เพื่อรันโค้ดบนเซิร์ฟเวอร์ได้เมื่อเปิด Dynamic Method Invocation
ใครควรอ่าน
ผู้ดูแลระบบและนักพัฒนาที่ดูแลแอป Apache Struts รุ่นที่ได้รับผลกระทบและเปิด Dynamic Method Invocation
ทางแก้แบบสั้น
ปิด Dynamic Method Invocation หรืออัปเดตตาม S2-032 เป็น 2.3.20.3, 2.3.24.3 หรือ 2.3.28.1 ตามสายรุ่น
ข้ามไปขั้นตอน

พอดีไล่ฟีด CISA KEV เจอช่องโหว่ Apache Struts หมายเลข CVE-2016-3081 ซึ่งถูกเพิ่มเข้ารายการวันที่ 8 ตุลาคม 2026 มีการใช้โจมตีจริงแล้ว ให้ตรวจว่าแอปใช้รุ่นที่มีช่องโหว่และเปิด Dynamic Method Invocation หรือ DMI อยู่หรือไม่ CISA กำหนดวันแก้เป็น 11 ตุลาคม 2026 ตาม รายการ KEV ทางการ

S2-032ประกาศ Apache
RCEผลกระทบหลัก
2.3.28.1หนึ่งในรุ่นแก้ไข
KEVถูกโจมตีจริงแล้ว

ใครต้องทำอะไร

  • ผู้ดูแลระบบ: หากดูแลแอป Struts รุ่นที่มีช่องโหว่และเปิด DMI ให้เร่งปิดฟังก์ชันนี้หรือประสานทีมแอปเพื่อติดตั้งรุ่นแก้ไขโดยเร็ว
  • นักพัฒนา: หากแอปใช้ Struts รุ่นที่ได้รับผลกระทบและเปิด DMI ให้เร่งอัปเดตไลบรารีตามสายรุ่นหรือปิด DMI พร้อมทดสอบก่อนนำขึ้นใช้งาน

เกิดอะไรขึ้น

ประกาศ Apache S2-032 ระบุว่าเมื่อเปิด DMI ผู้โจมตีจากระยะไกลส่ง expression อันตรายผ่านคำนำหน้า method: ได้ เซิร์ฟเวอร์อาจรันโค้ดตามที่ผู้โจมตีกำหนด ส่วน CVE record ระบุว่าเกี่ยวข้องกับ chained expressions หรือ expression ที่เรียกต่อกัน

Apache จัดระดับสูงสุดไว้ที่ Important ส่วน CISA ADP ใน ข้อมูล CVE record ให้ CVSS 3.1 เท่ากับ 8.1 ระดับ High ซึ่งเป็นคนละระบบการประเมิน สถานะ KEV ยืนยันว่ามีการใช้ช่องโหว่โจมตีจริง แต่ไม่ได้ยืนยันว่าแอปทุกแห่งที่ติดตั้ง Struts ถูกเจาะแล้ว

ใครโดนและรุ่นที่แก้

ตารางยึดช่วงรุ่นจาก CVE record และรุ่นแก้ไขตามสายที่ Apache แนะนำใน S2-032 โดยมีเงื่อนไขว่าเปิด DMI

แพ็กเกจและช่วงรุ่นที่ได้รับผลกระทบตาม CVE รุ่นแก้ไขตาม S2-032
Apache Struts 2.3.19–2.3.20.2 2.3.20.3
Apache Struts 2.3.21–2.3.24.1 2.3.24.3
Apache Struts 2.3.25–2.3.28 2.3.28.1

S2-032 ระบุช่วงรวม 2.3.20–2.3.28 ยกเว้น 2.3.20.3 กับ 2.3.24.3 ขณะที่ CVE record เริ่มที่ 2.3.19 ผู้ใช้ 2.3.19 เลยต้องตรวจด้วย รุ่นในตารางคือรุ่นแก้ CVE นี้ตามประกาศ ไม่ใช่การรับรองความปลอดภัยจากช่องโหว่อื่น

ต้องทำอะไร

ตรวจ dependency และไฟล์ไลบรารีของแอปที่ deploy จริง พร้อมตรวจค่าการเปิด DMI ของแต่ละแอป หมายเลขรุ่นในไฟล์โครงการอย่างเดียวอาจไม่ตรงกับชุดที่กำลังรัน หากเข้าเงื่อนไข ให้สำรองแอปและค่าตั้ง แล้วปิด DMI หากไม่จำเป็นต้องใช้ หรืออัปเดตตามสายรุ่นในตาราง

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

ทางลดความเสี่ยงจาก Apache

ปิด Dynamic Method Invocation หรือพัฒนา ActionMapper ของแอปโดยอิงซอร์สของรุ่นแก้ไขตาม S2-032 แล้วทดสอบการเรียก action ที่แอปใช้งาน

หลังแก้ให้ทดสอบการใช้งานปกติ ตรวจ log และตรวจ dependency ของชุดที่ deploy อีกครั้ง รายการ KEV กำหนดให้ตรวจร่องรอยการบุกรุกด้วย หากพบสิ่งผิดปกติให้เก็บหลักฐานเพื่อตรวจต่อ การแพตช์ไม่ได้ยืนยันว่าแอปไม่เคยถูกโจมตี ส่วนกำหนด 11 ตุลาคม 2026 เป็นวันที่ CISA ระบุใน KEV ผู้ดูแลทั่วไปควรเร่งจัดลำดับงานตามความเสี่ยงของแอป

ส่วนตัวผมให้แอปที่เข้าเงื่อนไขนี้เป็นงานเร่งด่วน เพราะถูกโจมตีจริงแล้ว ที่มา: CVE-2016-3081 (https://www.cve.org/CVERecord?id=CVE-2016-3081), Apache S2-032 และ CISA KEV หากมีข้อมูลทางการเพิ่มเติม เดี๋ยวกลับมาแก้เพิ่มให้ภายหลังครับ

อยากให้เราทำให้ไหม?

ให้เราช่วยติดตั้ง ตั้งค่า ย้ายระบบ หรือแก้ปัญหาเซิร์ฟเวอร์ เพื่อให้คุณมีเวลาไปทำงานที่สำคัญกว่า

คุยเรื่องงานกับเรา

เคยเจองานแบบนี้ไหม? ติดตรงไหน?

มาแลกวิธีกันต่อในบอร์ด LinuxThai

→ คุยต่อในบอร์ด

ความคิดเห็น 0

ยังไม่มีความคิดเห็น — เป็นคนแรกเลย