FlawOpen

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

● CVE-2026-107322 · CVSS 7.8[1], [4] · उच्च
सुरक्षा अनुसंधान · FlawOpen

CVE-2026-107322: AWS एजेंट प्लगइन में psql कमांड इंजेक्शन

CVE-2026-107322 ने AWS के databases-on-aws प्लगइन के वैकल्पिक psql helper को प्रभावित किया। फ़िल्टर psql मेटा-कमांड चूक गया; दूरस्थ सामग्री से होस्ट पर कमांड तभी चल सकते थे जब एजेंट बाद में वह मान helper को देता। 1.7.1 या बाद के संस्करण पर अपडेट करें।[1], [2], [4]

CVSS वेक्टरCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H[1], [4]
💡 आसान भाषा में (ELI5)

एक कर्मचारी नोट में अतिरिक्त SQL निर्देश खोजता है, लेकिन भूल जाता है कि डेटाबेस क्लाइंट की अपनी कमांड भाषा है। बाहरी सामग्री दूसरे इंटरप्रेटर तक तभी पहुँचती जब एजेंट उसे स्थानीय helper को देता। सुधार helper चलने से पहले उस सिंटैक्स को अस्वीकार करता है।[1], [2]

इस पेज के मुख्य शब्द

psql मेटा-कमांड
PostgreSQL के इंटरैक्टिव क्लाइंट द्वारा समझा जाने वाला निर्देश, डेटाबेस सर्वर द्वारा नहीं। यह SQL से अलग पार्सिंग सीमा है।[2], [3]
CWE-184: निषिद्ध इनपुट की अधूरी सूची
फ़िल्टर कुछ रूप रोकता है, लेकिन ऐसा दूसरा रूप छोड़ देता है जिसे अगला घटक विशेष अर्थ देता है।[2], [4]
एजेंट द्वारा ग्रहण की गई सामग्री
दूरस्थ या अविश्वसनीय स्रोत से AI एजेंट को मिली सामग्री। AWS सामग्री के पहुँचने का तरीका नहीं बताता।[1]
स्थानीय helper
एजेंट के होस्ट पर चलने वाली वैकल्पिक psql स्क्रिप्ट; OS कमांड helper प्रक्रिया की अनुमतियों से चलते हैं।[1], [3]

फ्रेमवर्क मैपिंग

  • इस गाइड में बताई गई कमजोरी के लिए CWE संदर्भ: CWE-184

हमले का चरण-दर-चरण प्रवाह

चरण 1

अविश्वसनीय सामग्री एजेंट तक पहुँचती है

AWS कहता है कि बिना प्रमाणीकरण वाला दूरस्थ पक्ष एजेंट द्वारा ग्रहण की जाने वाली सामग्री दे सकता है। सूचना स्रोत या वितरण नहीं बताती; किसी खास prompt injection रास्ते का अनुमान न लगाएँ।[1], [2]

चरण 2

एजेंट वैकल्पिक helper को मान देता है

कमज़ोर स्थिति के लिए एजेंट को तैयार डेटाबेस-कमांड मान के साथ स्थानीय helper बुलाना पड़ता है। केवल सामग्री ग्रहण करना निष्पादन ट्रिगर नहीं है।[1], [3]

चरण 3

SQL जाँच psql भाषा नहीं देखती

helper विभाजक और SQL टिप्पणियाँ रोकता है, पर बचे बैकस्लैश नहीं। psql मेटा-कमांड स्थानीय रूप से समझता है।[2], [3]

चरण 4

helper निष्पादन से पहले सिंटैक्स रोकता है

अपस्ट्रीम सुधार पुरानी SQL जाँचों से पहले बचे बैकस्लैश जाँचता है। 1.7.1 या बाद पर अपडेट करें और सक्रिय संस्करण जाँचें।[1], [2], [3]

मूल कारण विश्लेषण (Root Cause)

AWS और परियोजना के अनुरक्षक के अनुसार CVE-2026-107322 का कारण databases-on-aws के वैकल्पिक psql कनेक्शन helper में अधूरा इनपुट फ़िल्टर था। सुधार से पहले, जाँच के लिए बनी प्रतिलिपि से helper एकल-उद्धरण वाले SQL literals हटाता और SQL कथनों के विभाजक व टिप्पणियाँ रोकता था, लेकिन शेष बैकस्लैश को नहीं रोकता था; psql इन्हें अपनी मेटा-कमांड भाषा के रूप में पढ़ता है। सुधार पहले एकल-उद्धरण वाले मानों को संसाधित करता है, फिर मौजूदा जाँचों से पहले बचे बैकस्लैश अस्वीकार करता है और इस प्रकार छूटी हुई पार्सिंग सीमा को बंद करता है।[1], [2], [3]

सोर्स कोड: कमज़ोर बनाम सुरक्षित कार्यान्वयन

अपस्ट्रीम पैच एकल-उद्धरण वाले SQL लिटरल हटाने के बाद, psql चलाने और बाकी जाँचों से पहले बचे बैकस्लैश रोकता है। यह संक्षिप्त अंश है, सामान्य SQL parser नहीं; मूल quote handling के कुछ सीमांत मामले दर्ज हैं। जटिल या अविश्वसनीय query के लिए वैकल्पिक shell helper न लें; AWS की सलाह के अनुसार DSQL MCP server या हाथ से जाँचा SQL इस्तेमाल करें। प्रक्रिया को कम-से-कम अधिकार दें: इससे प्रभाव घटता है, अपडेट की आवश्यकता नहीं हटती।[2], [3]

सोर्स अंश: plugins/databases-on-aws/scripts/psql-connect.sh — --command फ़िल्टर का संक्षिप्त अंश

कमज़ोर कार्यान्वयन
# संक्षिप्त अंश: SQL-केंद्रित जाँच psql meta-command syntax को अस्वीकार नहीं करती थी।
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"
सुरक्षित और सुदृढ़ फ़िक्स
# संक्षिप्त अंश upstream संस्करण 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"

इंजीनियरिंग और सिस्टम सुरक्षा चेकलिस्ट

स्रोत

← AI Security Directory →