สรุปสั้น
ผู้ไม่ประสงค์ดีเริ่มโจมตีช่องโหว่ zero-day ใน GeoServer ที่ยังไม่มีแพตช์ ภายในเวลาเพียงไม่กี่ชั่วโมงหลังจากช่องโหว่ถูกเปิดเผยต่อสาธารณะ ตามรายงานของบริษัท WatchTowr ซึ่งเป็นผู้ให้บริการด้านการจัดการพื้นผิวการโจมตี ช่องโหว่นี้ถูกอธิบายว่าเป็นปัญหา SQL Injection ที่ในบางเงื่อนไขสามารถต่อยอดไปสู่การรันโค้ดจากระยะไกลหรือ RCE ได้ และถูกเปิดเผยโดยนักวิจัยอิสระที่ใช้ชื่อว่า q1uf3ng
จุดที่มีปัญหาอยู่ที่ฟังก์ชัน jsonArrayContains ซึ่งเป็นนิพจน์ตัวกรองสำหรับค้นหาในฟิลด์ชนิด JSON array ว่ามีค่าที่ต้องการอยู่หรือไม่ โดยใช้งานร่วมกับดาต้าสโตร์ PostGIS และ Oracle JDBC สาเหตุน่าจะมาจากการที่อาร์กิวเมนต์ที่ผู้ใช้ส่งเข้ามาไม่ถูกทำความสะอาดอย่างเหมาะสมก่อนนำไปประกอบเป็นคำสั่งฐานข้อมูล
WatchTowr ระบุว่าบันทึกความพยายามโจมตีได้หลายร้อยครั้งจากไอพีต้นทางจำนวนไม่มาก โดยขณะนี้ยังเป็นเพียงการหยั่งเชิงเพื่อหาระบบที่มีช่องโหว่ ยังไม่พบกิจกรรมต่อเนื่องหลังจากนั้น แต่เตือนว่าสถานการณ์คงไม่เป็นเช่นนี้นาน เพราะ GeoServer มีประวัติถูกโจมตีเป็นวงกว้างมาแล้วหลายครั้ง และมีช่องโหว่หลายรายการถูกบรรจุอยู่ในบัญชี Known Exploited Vulnerabilities ของ CISA
รายละเอียดข่าว
เว็บไซต์ SecurityWeek รายงานเมื่อวันที่ 14 สิงหาคม 2569 ว่า ผู้โจมตีเริ่มใช้ช่องโหว่ zero-day ใน GeoServer ที่ยังไม่มีแพตช์ หลังนักวิจัยที่ใช้ชื่อ q1uf3ng เผยแพร่รายละเอียดสู่สาธารณะเมื่อวันพุธที่ผ่านมา GeoServer เป็นแพลตฟอร์มโอเพนซอร์สยอดนิยมสำหรับแบ่งปันและประมวลผลข้อมูลเชิงพื้นที่ ใช้กันกว้างขวางในภาครัฐ เกษตร โทรคมนาคม ขนส่งมวลชน และอุตสาหกรรมอื่น ตามโพสต์ของนักวิจัยบน X ช่องโหว่อยู่ในฟังก์ชัน jsonArrayContains ซึ่งเป็นนิพจน์ตัวกรองที่ใช้ตรวจว่าฟิลด์ JSON array มีค่าที่ระบุหรือไม่ และใช้ร่วมกับดาต้าสโตร์ PostGIS และ Oracle JDBC ได้ ช่องโหว่จัดเป็น SQL Injection ที่น่าจะเกิดจากการนำอาร์กิวเมนต์จากผู้ใช้ไปใส่ในคำสั่งฐานข้อมูลโดยไม่ตรวจและทำความสะอาดพอ ซึ่งในบางการตั้งค่าเปิดทางไปสู่การรันโค้ดจากระยะไกล
ด้านนาย Jake Knott จาก WatchTowr ระบุว่าทีมเริ่มเห็นความพยายามโจมตีภายในไม่กี่ชั่วโมงหลังการเปิดเผย และบันทึกได้หลายร้อยครั้งจาก IP ต้นทางไม่กี่แห่ง ซึ่งเป็นอีกตัวอย่างว่าผู้โจมตีขยับเร็วแค่ไหนเมื่อช่องโหว่หลุดสู่สาธารณะ ขณะนี้ผู้โจมตียังแค่หยั่งเชิงหาระบบที่มีช่องโหว่ และยังไม่พบกิจกรรมต่อเนื่องหลังเข้าถึง แต่ Knott เตือนว่าสภาพนี้ไม่น่าอยู่นาน เพราะ GeoServer เคยถูกโจมตีวงกว้างมาก่อนและมีหลายช่องโหว่อยู่ในบัญชี Known Exploited Vulnerabilities ของ CISA เมื่อยังไม่มีแพตช์แต่มีการโจมตีแล้ว เขาแนะนำให้องค์กรค้นหาอินสแตนซ์ที่เปิดสู่ภายนอก จำกัดการเข้าถึงจากสาธารณะ และติดตามการออกแพตช์จากผู้พัฒนา
รายละเอียดช่องโหว่
ช่องโหว่อยู่ที่ jsonArrayContains ซึ่งเป็นฟังก์ชันตัวกรองสำหรับสืบค้นข้อมูลในฟิลด์ชนิด JSON array โดยรับค่าจากผู้เรียกใช้เพื่อระบุว่าต้องการตรวจหาค่าใดในอาเรย์นั้น ค่าที่รับเข้ามานี้ถูกนำไปประกอบเป็นคำสั่งฐานข้อมูลโดยตรงโดยไม่ผ่านการทำความสะอาดที่รัดกุมพอ ผู้โจมตีจึงสามารถแทรกคำสั่ง SQL ของตัวเองเข้าไปในคำสั่งที่ระบบจะนำไปประมวลผลได้
ผลลัพธ์จะรุนแรงแค่ไหนขึ้นอยู่กับการตั้งค่าของแต่ละระบบ โดยฟังก์ชันนี้ใช้งานร่วมกับดาต้าสโตร์ PostGIS และ Oracle JDBC ซึ่งในบางการกำหนดค่า ความสามารถในการแทรกคำสั่งฐานข้อมูลจะยกระดับกลายเป็นการรันโค้ดบนระบบปฏิบัติการของเซิร์ฟเวอร์ได้
สิ่งที่ทำให้ช่องโหว่นี้อันตรายเป็นพิเศษไม่ใช่แค่ระดับความรุนแรงทางเทคนิค แต่คือจังหวะเวลา รายละเอียดถูกเผยแพร่ต่อสาธารณะก่อนที่จะมีแพตช์ออกมา ผู้ดูแลระบบจึงไม่มีทางเลือกในการแก้ที่ตัวซอฟต์แวร์ และต้องพึ่งการลดพื้นที่การโจมตีแทนไปก่อน
ทั้งนี้ รายงานยังไม่ระบุหมายเลข CVE ของช่องโหว่ ไม่ได้ระบุช่วงเวอร์ชันของ GeoServer ที่ได้รับผลกระทบอย่างชัดเจน และไม่ได้เปิดเผยรายละเอียดของไอพีต้นทางที่ใช้โจมตี จึงยังไม่สามารถระบุขอบเขตของระบบที่เสี่ยงได้อย่างแม่นยำจากข้อมูลชุดนี้
ผลกระทบ
GeoServer ถูกใช้เป็นชั้นเผยแพร่ข้อมูลเชิงพื้นที่ของหน่วยงานรัฐ ภาคเกษตร โทรคมนาคม และระบบขนส่ง ซึ่งโดยธรรมชาติของงานมักถูกติดตั้งให้เข้าถึงได้จากอินเทอร์เน็ต เพื่อให้เว็บแผนที่หรือระบบภายนอกเรียกใช้ข้อมูลได้ ระบบเหล่านี้จึงมีโอกาสอยู่ในกลุ่มที่ถูกสแกนเจอได้ง่ายเป็นพิเศษ
เมื่อช่องโหว่เป็น SQL Injection ที่ต่อยอดเป็น RCE ได้ ความเสียหายจึงไม่จำกัดอยู่แค่ข้อมูลแผนที่ที่ตั้งใจเผยแพร่อยู่แล้ว แต่ครอบคลุมถึงข้อมูลอื่นในฐานข้อมูลเดียวกัน และในกรณีที่ยกระดับเป็นการรันโค้ดได้ ก็หมายถึงการยึดเซิร์ฟเวอร์เพื่อใช้เป็นหัวสะพานเข้าสู่เครือข่ายภายในต่อไป
ประเด็นที่ควรกังวลที่สุดคือรูปแบบการโจมตีในขณะนี้เป็นเพียงการหยั่งเชิงเพื่อทำบัญชีเป้าหมาย ซึ่งมักเป็นขั้นตอนก่อนหน้าการโจมตีรอบใหญ่ องค์กรที่ยังไม่ถูกโจมตีจริงในวันนี้จึงไม่ควรตีความว่าปลอดภัย เพราะเป็นไปได้ว่าระบบของตนถูกบันทึกไว้ในรายชื่อเป้าหมายเรียบร้อยแล้ว
คำแนะนำ
สิ่งแรกที่ควรทำคือค้นหาอินสแตนซ์ GeoServer ทั้งหมดในองค์กร รวมถึงตัวที่ถูกติดตั้งไว้โดยหน่วยงานย่อยหรือโครงการเก่าที่ไม่มีเจ้าของชัดเจน แล้วตรวจว่าตัวใดเปิดออกสู่อินเทอร์เน็ตโดยตรงบ้าง
จากนั้นควรจำกัดการเข้าถึงจากสาธารณะทันที เช่น วางไว้หลัง reverse proxy ที่บังคับยืนยันตัวตน จำกัดการเข้าถึงตามช่วงไอพี หรือปิดการเข้าถึงจากภายนอกสำหรับระบบที่ไม่จำเป็นต้องเปิด และหากเป็นไปได้ควรพิจารณาปิดหรือจำกัดการใช้งานฟังก์ชันตัวกรอง jsonArrayContains รวมถึงจำกัดสิทธิ์ของบัญชีฐานข้อมูลที่ GeoServer ใช้ให้เหลือเท่าที่จำเป็นจริง เพื่อลดผลกระทบหากถูกแทรกคำสั่งสำเร็จ
ควบคู่กันควรตรวจสอบล็อกย้อนหลังตั้งแต่วันที่ช่องโหว่ถูกเปิดเผย เพื่อหาคำร้องขอที่มีลักษณะผิดปกติต่อจุดที่เกี่ยวข้องกับตัวกรอง และเฝ้าติดตามประกาศจากผู้พัฒนา GeoServer เพื่อติดตั้งแพตช์ทันทีที่ออก
