Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
sqlite-fj-using-auth — SQLite 3.53.4 - عالي - محلي - بقايا صلاحيات - FULL JOIN USING يتخطى sqlite3AuthRead | Kitploit
أدوات/GitHubGitHub/abraxas/sqlite-fj-using-auth
المصادقة والترخيصتصعيد الامتيازاتالتحليل الثابتتحليل الثغرات الأمنيةتحليل الكودالاستغلالالأوراق والأبحاثأمن قواعد البيانات
GitHubabraxas/sqlite-fj-using-auth

sqlite-fj-using-auth

SQLite 3.53.4 - عالي - محلي - بقايا صلاحيات - FULL JOIN USING يتخطى sqlite3AuthRead

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

الأكثر شعبية

عرض الكل →

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

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

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

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

Abraxas Labs - sqlite-fj-using-auth

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  sqlite-fj-using-auth

sqlite-fj-using-auth

الفئة: صلاحية متبقية الوصول: محلي

SQLite 3.53.4 (b09c88c / SOURCE_ID 2026-07-24 19:02:57 bf7c7f30031888f4e796e429ab3978879485813aaca6f641c7b33e4e09459bcc) - Hwaci

lookupName() يعيد كتابة عمود FULL JOIN USING إلى coalesce(...) (TK_FUNCTION). يتم تشغيل sqlite3AuthRead فقط من أجل TK_COLUMN / TK_TRIGGER، لذا لا تحصل أعمدة USING أبداً على استدعاء SQLITE_READ. المُضمِّن الذي ثبّت sqlite3_set_authorizer و DENY/IGNORE لـ READ على t2.x لا يزال يُرجع ذلك العمود عبر SELECT x FROM t1 FULL JOIN t2 USING(x).

المُفوِّض (Authorizer) معطّل عند الفتح الافتراضي. بقايا من واجهة C API تلك. ليس RCE. FULL JOIN ON و LEFT JOIN USING يبقيان مرفوضين / بلا تسريب. coalesce(t2.x) الصريح لا يزال يُفوَّض.

IDلا يوجد CVE بعد
الفئةصلاحية متبقية (تخطي المُفوِّض على مستوى العمود)
الوصولمحلي (المُضمِّن sqlite3_set_authorizer؛ SQL المهاجم)
CWECWE-863، CWE-284
CVSSمرتفع: 7.5 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
المنتجSQLite (مرآة GitHub sqlite/sqlite)
المتأثر3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69). إصلاح المُفوِّض FULL JOIN USING الخاص بـ 3.54 فقط (2cb2287768) غير موجود في هذا الإصدار GA.
المصادقةالمُضمِّن ثبّت sqlite3_set_authorizer؛ الاستدعاء الافتراضي هو NULL
الترخيصGNU Affero GPL v3.0
المختبر127.0.0.1:18840 فقط. سلسلة الشاهد. ليس RCE.

ما يمكن للمهاجم فعله

ضد مُضمِّن ثبّت sqlite3_set_authorizer كقائمة تحكم بالوصول على مستوى الأعمدة، جهّز SELECT x FROM t1 FULL JOIN t2 USING(x) (أو NATURAL FULL JOIN). SELECT x FROM t2 المجرّد مرفوض (SQLITE_AUTH 23). صيغة FULL JOIN USING تُرجع العمود المرفوض قراءته. لا يتم إطلاق أي استدعاء READ t2.x.

المُفوِّض معطّل ما لم يثبّت المُضمِّن واحداً. sqlite3_open الافتراضي ليس هذه البقايا. ليس RCE.

كيف وجدته

عشرون عملية بحث في المصدر للإصدار 3.53.4 بعد PHP. قائمة التخطي كانت قد حددت بالفعل إيداع فحص المُفوِّض FULL JOIN USING الخاص بـ 3.54. لا يزال مفقوداً في أحدث إصدار GA. pExpr->op هو TK_FUNCTION عند lookupname_end، لذا لا تعمل بوابة AuthRead أبداً. كما أن WRC_Prune يمنع المُتجوِّل من النزول إلى وسائط coalesce.

lookupname_end:
  if( cnt==1 ){
#ifndef SQLITE_OMIT_AUTHORIZATION
    if( pParse->db->xAuth
     && (pExpr->op==TK_COLUMN || pExpr->op==TK_TRIGGER)
    ){
      sqlite3AuthRead(pParse, pExpr, pSchema, pNC->pSrcList);
    }
#endif

المنعطفات الخاطئة المسجّلة مسبقاً: اعتبار المُفوِّض مفعّلاً افتراضياً؛ توقع تسريب LEFT JOIN USING أو FULL JOIN ON؛ توقع أن coalesce(t2.x) الصريح يتخطى AuthRead؛ تثبيت 3.54.0 بينما كان لا يزال مسودة.

المختبر

cd lab
./run.sh

يبني دمج sqlite-src-3530400 الرسمي. أداة الاختبار هي lab/auth.c. Loopback 127.0.0.1:18840. المُفوِّض DENY READ t2.x. SELECT x FROM t2 مرفوض. SELECT x FROM t1 FULL JOIN t2 USING(x) يُرجع الشاهد، 0 READ t2.x. FULL JOIN ON مرفوض. LEFT JOIN USING بلا تسريب. خط الأساس IGNORE هو NULL؛ IGNORE FULL JOIN USING لا يزال يسرّب.

SUCCESS sqlite-fj-using-auth how=full-join-using-skip-authread baseline=denied fj-using=witness fj-on=denied left-using=no-leak SQLITE-FJ-USING-AUTH-WITNESS

الإصلاح

كرّر sqlite3AuthRead على كل فرع pFJMatch بعد إعادة كتابة coalesce، بالطريقة التي يفعلها trunk 2cb2287768 / Git 5694c3bb للإصدار 3.54. تفويض a[0] فقط (bbd69ce274) ليس كافياً. LEFT JOIN USING و FULL JOIN ON يُفوَّضان بالفعل؛ ليسا هذه البقايا.

المراجع

  • sqlite.org/src وسم version-3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69)
  • src/resolve.c إعادة كتابة coalesce في lookupName وبوابة AuthRead
  • src/auth.c sqlite3AuthRead / sqlite3AuthReadCol
  • المنتدى 2026-07-24T02:52:08Z / 2026-05-31T02:00:37Z
تنزيل الأداة