Apa yang terjadi
Di DBHub < 0.22.6, mengatur readonly=true pada alat execute_sql tidak membuat koneksi menjadi read-only: kode yang mengatur default_transaction_read_only PostgreSQL dan mode readOnly SQLite dijalankan berdasarkan nilai konfigurasi yang tidak pernah diisi, sehingga hanya pengklasifikasi kata kunci yang tersisa. Peran istimewa dapat menggunakan SELECT-dengan-efek-samping untuk menulis file arbitrer (lo_export), membaca file host arbitrer (pg_read_file), dan mencapai RCE (dblink + COPY ... TO PROGRAM). Transport HTTP tidak diautentikasi dan terikat ke 0.0.0.0 secara default. Diperbaiki di 0.22.6.
Mengapa penting
Janji isolasi read-only yang diandalkan defender untuk agen AI pada database secara diam-diam rusak, dan dikombinasikan dengan transport HTTP tanpa otentikasi di semua antarmuka, setiap pemanggil jaringan /mcp dapat meningkatkan ke baca/tulis file host dan eksekusi perintah pada server database yang mendukung akses data agen AI.
Vektor serangan
SQL tanpa otentikasi ke endpoint MCP; SELECT dengan efek samping (atau rantai dblink/COPY TO PROGRAM) melewati pengklasifikasi readonly untuk menulis file, membaca file host, atau menjalankan perintah di server database.
Sistem yang terdampak
Server MCP database DBHub < 0.22.6
Mitigasi
Tingkatkan ke DBHub 0.22.6+; batasi eksposur jaringan transport HTTP MCP; gunakan peran DB non-istimewa.