สรุปสั้น

โครงการ GeoNetwork ออกแพตช์ปิดช่องโหว่สองรายการที่ต่อกันเป็นห่วงโซ่แล้วนำไปสู่การรันโค้ดจากระยะไกลโดยไม่ต้องยืนยันตัวตน บนซอฟต์แวร์แคตาล็อกเมทาดาทาภูมิสารสนเทศแบบโอเพนซอร์สที่ทำหน้าที่เป็นระบบหลังบ้านของ geoportal ในหน่วยงานรัฐจำนวนมาก โดยแพตช์ออกในเวอร์ชัน 4.4.12 และ 4.2.17 ตั้งแต่วันที่ 8 กรกฎาคม 2569 ส่วนรายละเอียดของช่องโหว่เพิ่งถูกเปิดเผยเมื่อวันที่ 31 สิงหาคม

ช่องโหว่แรกคือ CVE-2026-63219 ซึ่งได้คะแนน CVSS 8.6 เป็นการขาดการตรวจสอบสิทธิ์ที่ปลายทางสำหรับอัปโหลดไฟล์ formatter ทำให้ผู้ใช้ที่ไม่ระบุตัวตนเขียนไฟล์ .xsl หรือ .zip เข้าไปในไดเรกทอรี formatter ของเซิร์ฟเวอร์ได้ ส่วนช่องโหว่ที่สองคือ CVE-2026-58400 ซึ่งได้คะแนน CVSS 9.1 เป็นการตั้งค่าตัวประมวลผล XSLT ชื่อ Saxon อย่างไม่ปลอดภัย ทำให้สไตล์ชีตที่ถูกโหลดเรียกใช้ java.lang.Runtime.exec() หรือ java.lang.ProcessBuilder แล้วสั่งรันคำสั่งของระบบปฏิบัติการในสิทธิ์ของผู้ใช้ที่รันโปรเซส GeoNetwork ได้

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

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

เว็บไซต์ The Hacker News รายงานเมื่อวันที่ 2 กันยายน 2569 ว่า GeoNetwork ซึ่งเป็นซอฟต์แวร์ที่ถือกำเนิดจากองค์การอาหารและการเกษตรแห่งสหประชาชาติ และปัจจุบันดูแลภายใต้มูลนิธิ Open Source Geospatial Foundation (OSGeo) ได้ปิดช่องโหว่ที่ต่อกันเป็น RCE โดยซอฟต์แวร์ตัวนี้เป็นองค์ประกอบหลักของการวางโครงสร้างพื้นฐานข้อมูลเชิงพื้นที่จำนวนมากทั้งในยุโรปและที่อื่น รวมถึงเป็นระบบหลังบ้านของ geoportal ตามกรอบ INSPIRE ของยุโรป

บริษัท Ethiack ซึ่งนักวิจัยในสังกัดคือนาย Rafael Castilho เป็นผู้รายงานช่องโหว่ทั้งสองรายการ ระบุว่าห่วงโซ่นี้เข้าถึงได้ตั้งแต่เวอร์ชัน 4.0.6 เป็นต้นมา ซึ่งเป็นรุ่นที่มีการปรับโครงสร้างโค้ดของปลายทาง formatter ใหม่แล้วบรรทัดที่ตรวจสอบสิทธิ์หลุดหายไป

GeoNetwork patches an unauthenticated RCE chain affecting government geoportal backends

Ethiack ยังระบุว่าได้สแกนหาลายนิ้วมือของระบบที่เปิดสู่อินเทอร์เน็ต แล้วพบการติดตั้ง GeoNetwork ที่รันเวอร์ชันซึ่งได้รับผลกระทบจำนวน 121 แห่งใน 39 ประเทศ โดย 89 เปอร์เซ็นต์ของทั้งหมดเกี่ยวข้องกับหน่วยงานรัฐ หน่วยงานทหาร หรือหน่วยงานระดับชาติ ซึ่งเป็นตัวเลขที่สะท้อนว่าซอฟต์แวร์ตัวนี้ฝังอยู่ในระบบราชการมากเพียงใด

เวอร์ชันที่ได้รับผลกระทบคือรุ่น 4.4.x ทั้งหมดจนถึง 4.4.11 และรุ่น 4.2.x ทั้งหมดจนถึง 4.2.16 โดยได้รับการแก้ไขแล้วใน 4.4.12 และ 4.2.17 ซึ่งทางโครงการระบุในประกาศปล่อยรุ่นว่า “ขอแนะนำอย่างยิ่งให้ผู้ใช้ทุกรายอัปเกรดเป็นเวอร์ชัน 4.4.12 หรือ 4.2.17 โดยเร็วที่สุด”

ในแง่สถานะการถูกโจมตี The Hacker News ระบุว่าไม่พบการอ้างถึงช่องโหว่ของ GeoNetwork ในบัญชีช่องโหว่ที่ถูกใช้โจมตีจริง (KEV) ของ CISA ณ เวลาที่เปิดเผย และยังไม่มีรายงานสาธารณะว่ามีการโจมตีในธรรมชาติ อย่างไรก็ตามควรระบุข้อจำกัดไว้ด้วยว่าตัวเลขระบบที่เปิดสู่อินเทอร์เน็ต 121 แห่งเป็นการนับเครื่องที่รันเวอร์ชันมีช่องโหว่ ไม่ใช่จำนวนเหยื่อหรือระบบที่ถูกยึดจริง และมาจากการสำรวจของผู้ขายเพียงรายเดียวโดยยังไม่มีแหล่งอื่นยืนยัน

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

ห่วงโซ่นี้เกิดจากการรวมข้อผิดพลาดสองแบบเข้าด้วยกัน แบบแรกคือการขาดการตรวจสอบสิทธิ์ และแบบที่สองคือการวางเครื่องมือแปลงเอกสารที่มีความสามารถสูงไว้ในตำแหน่งที่รับข้อมูลจากภายนอกได้ ตามลำพังแล้ว CVE-2026-63219 ก็ถือเป็นการเปิดให้เขียนไฟล์ลงพื้นที่จัดเก็บของเซิร์ฟเวอร์โดยไม่ได้รับอนุญาตอยู่แล้ว ซึ่งประกาศของโครงการระบุไว้ตรง ๆ ว่า “ผู้โจมตีที่ไม่ต้องยืนยันตัวตนสามารถอัปโหลดไฟล์ formatter นามสกุล .xsl หรือ .zip ตามอำเภอใจขึ้นไปบนเซิร์ฟเวอร์ได้”

ส่วน CVE-2026-58400 อยู่ที่การตั้งค่าของตัวประมวลผล XSLT ชื่อ Saxon ที่ใช้เรนเดอร์ formatter ซึ่งเปิดทางให้สไตล์ชีตเรียกใช้ฟังก์ชันส่วนขยายของ Java ได้ ผลคือไฟล์ .xsl ที่ควรจะเป็นแค่แม่แบบจัดรูปแบบการแสดงผล กลับสั่งรันคำสั่งของระบบปฏิบัติการได้จริงในสิทธิ์ของผู้ใช้ที่รันโปรเซส GeoNetwork เดิมทีช่องโหว่นี้ถูกให้คะแนนบนสมมติฐานว่าต้องมีสิทธิ์สูงจึงจะอัปโหลด formatter ได้ แต่เมื่อต่อกับช่องโหว่แรก เงื่อนไขนั้นก็หมดไป

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

ผลกระทบ

ผู้ที่เสี่ยงที่สุดคือหน่วยงานรัฐและองค์กรที่เปิด geoportal ให้ประชาชนค้นหาข้อมูลเชิงพื้นที่ เพราะระบบเหล่านี้ต้องเปิดสู่อินเทอร์เน็ตโดยหน้าที่ของมันเอง และตัวเลขจาก Ethiack ที่ว่า 89 เปอร์เซ็นต์ของระบบที่เปิดอยู่และมีช่องโหว่เป็นของหน่วยงานรัฐ ทหาร หรือหน่วยงานระดับชาติ ก็ชี้ว่าฐานผู้ใช้ของซอฟต์แวร์ตัวนี้กระจุกอยู่ในภาครัฐเป็นหลัก

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

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

บริบทที่ทำให้เรื่องนี้ต้องรีบคือชุดซอฟต์แวร์ภูมิสารสนเทศตกเป็นเป้าอย่างต่อเนื่องมาตลอด ทั้งช่องโหว่ร้ายแรงของ GeoServer (CVE-2024-36401 คะแนน CVSS 9.8) ที่ถูกใช้แพร่บอตเน็ต โปรแกรมขุดคริปโต และแบ็กดอร์ SideWalk เมื่อปีที่แล้ว ช่องโหว่ XXE ของ GeoServer (CVE-2025-58360) ที่ถูกเพิ่มเข้าบัญชี KEV ของ CISA เมื่อเดือนธันวาคม 2568 หลังพบการโจมตีจริง และช่องโหว่ SQL injection สู่ RCE แบบ zero-day ของ GeoServer ที่ถูกไล่สแกนหาทันทีหลังเปิดเผยเมื่อเดือนที่แล้ว (ดูโพสต์ 2026/08/094 )

คำแนะนำ

ผู้ดูแลระบบควรอัปเกรด GeoNetwork เป็นเวอร์ชัน 4.4.12 หรือ 4.2.17 โดยเร็วที่สุด และหากยังอัปเกรดไม่ได้ทันที ประกาศของโครงการแนะนำให้บล็อกเมท็อดที่ใช้เขียนข้อมูลไปยังปลายทาง formatter ที่ชั้นรีเวิร์สพร็อกซี โดยฝั่ง Apache httpd ให้ปฏิเสธคำขอเมท็อด POST, PUT และ PATCH ที่ตำแหน่ง /geonetwork/srv/api/formatters ส่วนฝั่ง Nginx ให้จำกัดตำแหน่งเดียวกันไว้เฉพาะเมท็อด GET, HEAD และ OPTIONS ทั้งนี้ต้องเข้าใจว่ามาตรการนี้จะทำให้การอัปโหลด formatter ที่ถูกต้องผ่านหน้าคอนโซลผู้ดูแลระบบใช้งานไม่ได้ไปด้วย

องค์กรที่รันเวอร์ชันตั้งแต่ 4.0.6 ขึ้นมาเป็นเวลานานควรถือว่าระบบอาจถูกเข้าถึงไปแล้วและตรวจสอบย้อนหลัง โดยเฉพาะการตรวจไดเรกทอรี formatter ว่ามีไฟล์ .xsl หรือ .zip ที่ไม่ทราบที่มาถูกเพิ่มเข้ามาหรือไม่ ตรวจบันทึกของเว็บเซิร์ฟเวอร์ว่ามีคำขอ POST ไปยังปลายทาง formatter จากภายนอกหรือไม่ และไล่ดูโปรเซสลูกที่ถูกสร้างโดยโปรเซสของ GeoNetwork ซึ่งเป็นร่องรอยของการเรียก Runtime.exec()

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

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