การแจ้งเตือนความปลอดภัย · สูง
PostgreSQL CVE-2026-6460: ผู้ใช้ฐานข้อมูลที่สร้างออบเจกต์ได้ อาจรันโค้ดบนเซิร์ฟเวอร์
· อ่าน 1 นาที · Centoculus Security Team
ทราบมาตั้งแต่
ที่ได้รับผลกระทบ: PostgreSQL ก่อนเวอร์ชัน 18.7, 17.12, 16.16, 15.20 และ 14.25
เกิดอะไรขึ้น
เมื่อวันที่ 12 พฤศจิกายน 2026 PostgreSQL Global Development Group ได้เผยแพร่ PostgreSQL 18.7, 17.12, 16.16, 15.20 และ 14.25 ตามรายงานของ The Hacker News การเผยแพร่ครั้งนี้แก้ไขช่องโหว่ด้านความปลอดภัย 52 รายการ ช่องโหว่ที่ร้ายแรงที่สุดคือ CVE-2026-6460 (CVSS 8.8) ซึ่งเป็นช่องโหว่ type confusion ในตัวเซิร์ฟเวอร์หลัก
ผู้ใช้ฐานข้อมูลที่สามารถสร้างออบเจกต์ได้อาจใช้คำสั่ง ALTER ... SET DATA TYPE เพื่อให้เซิร์ฟเวอร์อ่านค่าที่ล้าสมัยเหมือนเป็นค่าชนิดใหม่ คำสั่ง DDL อื่นก็ทำได้เช่นกัน เช่น ALTER TABLE ... ADD COLUMN; ROLLBACK; ALTER TABLE ... ADD COLUMN ซึ่งทำให้ผู้ใช้รันโค้ดตามอำเภอใจในฐานะผู้ใช้ระบบปฏิบัติการที่รัน PostgreSQL การแก้ไขเพิ่มการตรวจสอบเวอร์ชัน เพื่อให้เซิร์ฟเวอร์ตรวจจับค่าที่ไม่ตรงกับชนิดของตนอีกต่อไปได้
นักวิจัยด้านความปลอดภัย Mehmet Ince เผยแพร่บทความทางเทคนิคพร้อมโค้ดโจมตีที่ใช้งานได้จริง ซึ่งเขาสาธิตบน PostgreSQL 18.6 บทความมี SQL ที่ทำให้เซิร์ฟเวอร์ที่ยังไม่ได้แก้ไขขัดข้อง และขั้นตอนที่รั่วไหลที่อยู่หน่วยความจำ แต่ไม่มีขั้นตอนสุดท้ายที่รันคำสั่ง เขาเขียนว่าสามารถทำให้เกิดการขัดข้องได้ด้วยบทบาทล็อกอินที่มีสิทธิ์ต่ำที่สุด แหล่งข้อมูลไม่ได้ระบุว่าบัญชีที่มีเพียงสิทธิ์เริ่มต้นสามารถรันโค้ดได้หรือไม่ Red Hat ระบุว่าผู้โจมตีต้องมีบัญชีฐานข้อมูลที่สามารถสร้างหรือแก้ไขออบเจกต์ได้
โครงการ PostgreSQL ยังไม่มีรายงานการโจมตีที่ใช้ช่องโหว่นี้ และ CISA ก็ยังไม่ได้ระบุว่ามีการใช้ประโยชน์จากช่องโหว่นี้
การเผยแพร่ชุดเดียวกันนี้ยังแก้ไขช่องโหว่อื่น รวมถึง CVE-2026-116322 ซึ่งทำให้ไคลเอนต์ที่ไม่ได้รับการยืนยันตัวตนสามารถบังคับให้เซิร์ฟเวอร์ PostgreSQL 18 รีสตาร์ทได้ นอกจากนี้ยังแก้ไขช่องโหว่ในเครื่องมือฝั่งไคลเอนต์ โดยไฟล์เก็บถาวรที่ถูกสร้างขึ้นเป็นพิเศษอาจทำให้ pg_restore รันโค้ดในฐานะผู้ใช้ที่เรียกใช้งาน และเซิร์ฟเวอร์ต้นทางที่ถูกบุกรุกอาจทำให้ psql รันโค้ดผ่านสคริปต์การกู้คืนในผลลัพธ์ tar ของ pg_dump
ใครได้รับผลกระทบ
- PostgreSQL 18 ก่อนเวอร์ชัน 18.7, 17 ก่อนเวอร์ชัน 17.12, 16 ก่อนเวอร์ชัน 16.16, 15 ก่อนเวอร์ชัน 15.20 และ 14 ก่อนเวอร์ชัน 14.25
- เวอร์ชันหลักที่เก่ากว่าก็ได้รับผลกระทบเช่นกัน และจะไม่ได้รับการอัปเดต PostgreSQL 14 หมดอายุการสนับสนุนแล้ว และ 14.25 เป็นรุ่นสุดท้ายของมัน
- ความเสี่ยงสูงที่สุดในเซิร์ฟเวอร์ที่มีผู้ใช้ซึ่งคุณไม่ได้เชื่อถืออย่างเต็มที่ มีบัญชีล็อกอินฐานข้อมูลที่สามารถสร้างหรือเปลี่ยนแปลงออบเจกต์ได้ ซึ่งรวมถึงโฮสติ้งแบบแชร์ ฐานข้อมูลที่มอบให้ลูกค้า และแอปพลิเคชันเว็บที่บัญชีฐานข้อมูลเป็นเจ้าของ schema ของตนเอง หากผู้โจมตีเข้าควบคุมแอปพลิเคชันดังกล่าว เช่นผ่าน SQL injection ก็อาจใช้บัญชีฐานข้อมูลของแอปในลักษณะนี้ได้
- บริการที่ได้รับการจัดการ: นักวิจัยได้แชร์ proof of concept กับ AWS (RDS, Aurora), Microsoft (Azure PostgreSQL), Google (AlloyDB), Supabase, Databricks และ Ubicloud สถานะการแก้ไขปัจจุบันของแต่ละรายยังไม่ทราบ กรุณาตรวจสอบประกาศจากผู้ให้บริการของคุณ
- เซิร์ฟเวอร์ที่ไม่ได้รัน PostgreSQL ไม่ได้รับผลกระทบ MySQL และ MariaDB ไม่ได้รับผลกระทบ
สิ่งที่ควรทำตอนนี้
- สำรองการตั้งค่า PostgreSQL ของคุณ (เช่น
postgresql.confและpg_hba.conf) และตรวจสอบให้แน่ใจว่าคุณมีการสำรองฐานข้อมูลล่าสุด - อัปเดตเซิร์ฟเวอร์เป็นรุ่นที่แก้ไขแล้วสำหรับเวอร์ชันหลักของคุณ ได้แก่ 18.7, 17.12, 16.16, 15.20 หรือ 14.25 หากคุณใช้แพ็กเกจจากการกระจาย Linux ของคุณ (Debian, Ubuntu, RHEL และระบบที่เข้ากันได้) กรุณาติดตั้งแพ็กเกจที่แก้ไขแล้วซึ่งระบุไว้ในประกาศของการกระจายนั้นทันทีที่พร้อมใช้งาน จากนั้นใช้ตัวจัดการแพ็กเกจตามปกติ (
apt update && apt upgradeหรือdnf upgrade) - อัปเดตหรือสร้างส่วนขยายภาษา C ทั้งหมดใหม่พร้อมกับเซิร์ฟเวอร์ ผู้ดูแล RPM ของโครงการเตือนว่าส่วนขยายที่สร้างขึ้นกับรุ่นเก่ายังโหลดได้ แต่อาจไม่ได้รับการป้องกัน บางส่วนยังต้องมีการแก้ไขซอร์สโค้ด แพ็กเกจส่วนขยายในคลัง RPM ของ PostgreSQL ตอนนี้ต้องใช้รุ่นย่อยใหม่
- รีสตาร์ท PostgreSQL หากรันนอก service unit ของแพ็กเกจเอง เช่นภายใต้ Patroni กรุณารีสตาร์ทด้วยตนเองทันทีหลังอัปเดต
- ปฏิบัติตามขั้นตอนการทำดัชนีใหม่ในประกาศการเผยแพร่อย่างเป็นทางการ หากคุณใช้การสำรองแบบ incremental กรุณาสร้างการสำรองแบบเต็มใหม่และให้การสำรองแบบ incremental ในอนาคตอ้างอิงจากการสำรองนั้น
- อัปเดตเครื่องมือฝั่งไคลเอนต์ เช่น pg_dump, pg_restore, psql, reindexdb และ vacuumdb บนทุกเครื่องที่ใช้งาน รวมถึงเครื่องสำรองข้อมูลและเวิร์กสเตชันของผู้ดูแลระบบ
- อย่าใช้การตั้งค่า
composite_type_mismatchใหม่เพื่อปิดการตรวจสอบใหม่ โครงการระบุว่าการทำเช่นนั้นมีความเสี่ยงด้านความปลอดภัย - หากคุณยังอัปเดตไม่ได้ทันที กรุณาจำไว้ว่าโครงการไม่มีวิธีแก้ชั่วคราว ระหว่างที่รอ กรุณาตรวจสอบว่าบัญชีใดบ้างที่สามารถสร้างหรือเปลี่ยนแปลงออบเจกต์ได้ โดยเฉพาะบัญชีที่แอปพลิเคชันเว็บใช้หรือมอบให้ลูกค้า และตรวจสอบให้แน่ใจว่า PostgreSQL ไม่สามารถเข้าถึงได้จากอินเทอร์เน็ต เว้นแต่จำเป็นจริงๆ
- หากคุณยังใช้ PostgreSQL 14 หรือเวอร์ชันที่เก่ากว่า กรุณาวางแผนอัปเกรดเป็นเวอร์ชันหลักที่ยังได้รับการสนับสนุน
วิธีตรวจสอบว่าคุณได้รับผลกระทบหรือไม่
- ตรวจสอบเวอร์ชันของเซิร์ฟเวอร์ที่กำลังทำงานด้วย
psql -c 'SELECT version();'หรือSHOW server_version;เวอร์ชันที่ต่ำกว่า 18.7, 17.12, 16.16, 15.20 หรือ 14.25 ภายในชุดเวอร์ชันหลักของตนเองได้รับผลกระทบ - ตรวจสอบไบนารีและแพ็กเกจที่ติดตั้งด้วย
postgres -V,dpkg -l | grep postgresqlหรือrpm -qa | grep postgresqlหากเวอร์ชันที่กำลังทำงานเก่ากว่าเวอร์ชันที่ติดตั้ง กรุณารีสตาร์ทเซิร์ฟเวอร์ - แสดงรายการส่วนขยายที่ติดตั้งด้วย
SELECT extname, extversion FROM pg_extension;ในแต่ละฐานข้อมูล ตรวจสอบให้แน่ใจว่าส่วนขยาย C ทุกตัวได้รับการอัปเดตหรือสร้างใหม่สำหรับรุ่นใหม่แล้ว - ตรวจสอบบันทึกของ PostgreSQL เพื่อหาการขัดข้องของ backend ที่ไม่คาดคิด เช่น กระบวนการเซิร์ฟเวอร์ที่ถูกยุติด้วยสัญญาณ โค้ดโจมตีที่เผยแพร่ทำให้เซิร์ฟเวอร์ที่ยังไม่ได้แก้ไขขัดข้อง ดังนั้นการขัดข้องลักษณะนี้จึงควรได้รับการตรวจสอบอย่างใกล้ชิด
แหล่งข้อมูล
- https://nvd.nist.gov/vuln/detail/CVE-2026-6460
- https://www.postgresql.org/support/security/CVE-2026-6460/
แหล่งข้อมูลเพิ่มเติม (1)
หากคุณใช้ ฐานข้อมูล ให้ตรวจสอบเพิ่มเติม
โพสต์ที่เกี่ยวข้อง
การแจ้งเตือน ·
Citrix NetScaler ADC และ Gateway: ช่องโหว่หน่วยความจำระดับวิกฤตอาจทำให้ระบบให้บริการไม่ได้ (CVE-2026-120868)
Citrix แก้ไขช่องโหว่หน่วยความจำระดับวิกฤตเก้าจุดใน NetScaler ADC และ NetScaler Gateway ที่อาจทำให้ระบบให้บริการไม่ได้ CVE-2026-120868 กระทบทุกการติดตั้ง ให้อัปเดตเป็น 14.1-73.57, 13.1-64.39 หรือบิลด์ FIPS ที่ตรงกัน
การแจ้งเตือน ·
Node.js: ช่องโหว่ HTTP/2 และ HTTPS ทำให้ไคลเอนต์ทำเซิร์ฟเวอร์ล่มและอ่านข้อมูลของผู้ใช้อื่นได้
Node.js แก้ไขช่องโหว่ 16 รายการ โดยเจ็ดรายการมีระดับความรุนแรงสูง ไคลเอนต์ที่ไม่ได้ยืนยันตัวตนสามารถทำให้เซิร์ฟเวอร์ HTTP/2 ล่มหรืออ่านหน่วยความจำจากการเชื่อมต่ออื่น รวมถึงคีย์ TLS ได้ เวอร์ชันที่แก้ไขแล้วคือ 22.23.5, 24.22.3 และ 26.13.1
การแจ้งเตือน ·
การโจมตีผู้ให้บริการโฮสติ้ง Mittwald ผ่านเซิร์ฟเวอร์ MCP: บริการผู้ดูแลระบบหยุดให้บริการ ลูกค้าควรตรวจสอบ
ผู้ให้บริการเว็บโฮสติ้ง Mittwald อยู่ในโหมดฉุกเฉินหลังถูกโจมตีผ่านเซิร์ฟเวอร์ MCP บริการผู้ดูแลระบบสำหรับลูกค้าถูกปิดอยู่ ลูกค้าควรพึ่งพาเฉพาะประกาศอย่างเป็นทางการ และเตรียมตรวจสอบบัญชีและเว็บไซต์ของคุณ