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 ทางการ
ใครต้องทำอะไร
- ผู้ดูแลระบบ: หากดูแลแอป 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 ที่แอปใช้งานไว้ด้วย
ปิด 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
ยังไม่มีความคิดเห็น — เป็นคนแรกเลย