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