FlawOpen

flawopen.com/AI Security/cve-2026-107322-aws-databases-on-aws-psql-command-injection

● CVE-2026-107322 · CVSS 7.8[1], [4] · Tinggi
Riset Keamanan · FlawOpen

CVE-2026-107322: injeksi perintah pada plugin agen AWS

CVE-2026-107322 berdampak pada helper psql opsional di plugin AWS databases-on-aws. Filternya melewatkan meta-command psql; konten jarak jauh hanya dapat menjalankan perintah pada host jika agen kemudian meneruskan nilainya ke helper. Tingkatkan ke versi 1.7.1 atau lebih baru.[1], [2], [4]

Vektor CVSSCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H[1], [4]
💡 Penjelasan Sederhana (ELI5)

Bayangkan petugas memeriksa catatan untuk instruksi SQL tambahan, tetapi lupa bahwa klien database memiliki bahasa perintah sendiri. Konten eksternal hanya mencapai interpreter kedua jika agen menyerahkannya ke helper lokal. Perbaikannya menolak sintaks tersebut sebelum helper dijalankan.[1], [2]

Konsep Kunci & Istilah

Meta-command psql
Instruksi yang ditafsirkan klien interaktif PostgreSQL, bukan server database. Ini merupakan batas parsing tersendiri dari SQL.[2], [3]
CWE-184: daftar input terlarang tidak lengkap
Filter menolak beberapa bentuk, tetapi melewatkan bentuk lain yang ditafsirkan khusus oleh komponen berikutnya.[2], [4]
Konten yang diterima agen
Konten dari sumber jarak jauh atau tidak tepercaya. AWS tidak menjelaskan cara konten khusus mencapai agen.[1]
Helper lokal
Skrip koneksi psql opsional pada host agen; perintah OS menggunakan hak proses helper.[1], [3]

Pemetaan kerangka kerja

  • Referensi CWE untuk kelemahan yang dijelaskan dalam panduan ini: CWE-184

Alur Serangan Langkah demi Langkah

Langkah 1

Konten tak tepercaya mencapai agen

AWS menyebut aktor jarak jauh tanpa autentikasi dapat menyediakan konten untuk diterima agen. Pemberitahuan tidak menyebut sumber atau alur; jangan mengasumsikan jalur prompt injection tertentu.[1], [2]

Langkah 2

Agen meneruskan nilai ke helper opsional

Kondisi rentan mengharuskan agen memanggil helper lokal dengan nilai yang dibuat khusus. Penerimaan konten saja bukan pemicu eksekusi yang didokumentasikan.[1], [3]

Langkah 3

Pemeriksaan SQL melewatkan bahasa psql

Helper memfilter pemisah dan komentar SQL, tetapi tidak menolak garis miring terbalik tersisa. psql menafsirkan meta-command secara lokal.[2], [3]

Langkah 4

Helper menolak sintaks sebelum eksekusi

Perbaikan upstream memeriksa garis miring terbalik sebelum pemeriksaan SQL lama. Tingkatkan ke 1.7.1 atau lebih baru dan verifikasi setiap lingkungan.[1], [2], [3]

Analisis Akar Masalah (Root Cause)

AWS dan pengelola proyek mengaitkan CVE-2026-107322 dengan filter input yang tidak lengkap pada helper koneksi psql opsional databases-on-aws. Sebelum diperbaiki, tahap validasi menghapus literal SQL berpetik tunggal dari salinan kerja serta menolak pemisah pernyataan dan komentar SQL, tetapi membiarkan garis miring terbalik yang ditafsirkan klien psql sebagai sintaks meta-command. Perbaikan menolak garis miring terbalik yang tersisa setelah pemrosesan literal dan sebelum pemeriksaan yang ada, sehingga menutup batas parser yang terlewat.[1], [2], [3]

Kode Sumber: Rentan vs Aman

Patch upstream menolak garis miring terbalik yang tersisa setelah menghapus literal SQL berpetik tunggal, sebelum memanggil psql dan menjalankan pemeriksaan lain. Cuplikan ini disederhanakan dan bukan parser SQL umum; penanganan tanda petik awal memiliki kasus batas yang terdokumentasi. Untuk kueri kompleks atau tidak tepercaya, hindari helper shell opsional dan gunakan DSQL MCP server atau SQL yang ditinjau manual, sesuai saran AWS. Jalankan proses dengan hak minimum: ini membatasi dampak, tetapi tidak menggantikan pembaruan.[2], [3]

Cuplikan sumber: plugins/databases-on-aws/scripts/psql-connect.sh — cuplikan ringkas filter --command

IMPLEMENTASI RENTAN
# Cuplikan ringkas: pemeriksaan yang berfokus pada SQL tidak menolak sintaks meta-command psql.
stripped=$(echo "$COMMAND" | sed "s/'[^']*'//g")
if echo "$stripped" | grep -q ';'; then
  echo "Error: multiple SQL statements are not allowed." >&2
  exit 1
fi
if echo "$stripped" | grep -q -- '--'; then
  echo "Error: SQL comments are not allowed." >&2
  exit 1
fi
psql --command "$COMMAND"
PERBAIKAN AMAN & KUAT
# Cuplikan ringkas berdasarkan perbaikan upstream versi 1.7.1.
stripped=$(echo "$COMMAND" | sed "s/'[^']*'//g")
if echo "$stripped" | grep -q '\\'; then
  echo "Error: psql meta-commands are not allowed." >&2
  exit 1
fi
if echo "$stripped" | grep -q ';'; then
  echo "Error: multiple SQL statements are not allowed." >&2
  exit 1
fi
if echo "$stripped" | grep -q -- '--'; then
  echo "Error: SQL comments are not allowed." >&2
  exit 1
fi
psql --command "$COMMAND"

Daftar Periksa Penguatan Sistem Rekayasa

Sumber

← AI Security Directory →