นักวิจัยจาก Wiz พบช่องโหว่ใน PostgreSQL-as-a-Service จากผู้ให้บริการ Cloud หลายแห่ง เช่น Google Cloud Platform (GCP), Azure รวมไปถึงผู้ให้บริการรายอื่นๆ โดยช่องโหว่สามารถทำให้เกิดการยกระดับสิทธิ role ใน database เป็น cloudsqladmin ได้ จึงทำให้ผู้โจมตีสามารถสั่งรันโค้ดบนระบบปฏิบัติการได้, และยังสามารถยกระดับสิทธิเป็น root โดยใช้เทคนิด symlink attack และสุดท้ายเนื่องจาก container ใช้ network interfaces เดียวกันกับเครื่อง Host นักวิจัยจึงสามารถใช้วิธีการ TCP injection ปลอมแปลง response metadata service ทำให้สามารถควบคุม SSH key ของเครื่อง Host และทำการ remote เข้าเครื่อง Host ได้
PostgreSQL privilege escalation
เริ่มแรก user จะใช้สิทธิ cloudsqlsuperuser ซึ่งจะยังไม่สามารถ execute OS command ได้
เมื่อรวมสองเทคนิคเข้าด้วยกัน ถ้ามีการสร้าง table owner เป็น cloudsqladmin และ ใช้ index function run SQL query ด้วยสิทธิ owner จะทำให้นักวิจัยสามารถรัน OS command อะไรก็ได้โดยใช้ สิทธิของ cloudsqladmin
Local privilege escalation to root
นักวิจัยพบ directory /pgsql ที่ user postgres เป็น owner
ซึ่งภายใน directory จะมีไฟล์ iptables-save ที่ใช้สำหรับ iptables rules ซึ่งมี root เป็น owner
โดยทุกครั้งที่มีการแก้ไข network rule บน Cloud SQL console ไฟล์ iptables-save จะถูกอัปเดตด้วยทุกครั้ง
iptables-save
จากข้อมูลด้านบนทำให้นักวิจัยพบวิธีการโจมตีโดยมีขั้นตอนดังนี้
สร้าง shell shared library ไว้ที่ path ‘1.1.1.1/32’
สร้าง symlink iptables-save ไปที่ /etc/ld.