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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
sqlite-fts5-securedel — SQLite 3.53.4 - عالي - محلي - انهيار - FTS5 secure-delete PutVarint تجاوز الذيل | Kitploit
أدوات/GitHubGitHub/abraxas/sqlite-fts5-securedel
التحليل الثابتتحليل الذاكرة الجنائيتحليل الثغرات الأمنيةالاستغلالالاختبار العشوائيتحليل الملفات الثنائيةالأوراق والأبحاثأمن قواعد البيانات
GitHubabraxas/sqlite-fts5-securedel

sqlite-fts5-securedel

SQLite 3.53.4 - عالي - محلي - انهيار - FTS5 secure-delete PutVarint تجاوز الذيل

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

الأكثر شعبية

عرض الكل →

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

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

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

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

Abraxas Labs - sqlite-fts5-securedel

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  sqlite-fts5-securedel

المقال: https://abraxaslabs.tech/research/sqlite-fts5-securedel

sqlite-fts5-securedel

الفئة: انهيار الوصول: محلي

SQLite 3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69) - Hwaci

تعيد fts5DoSecureDelete بناء تذييل ورقة FTS5 باستخدام sqlite3Fts5PutVarint بعد nPg = iPgIdx. لا يتم تقييد إزاحات المفاتيح المفكوكة من التذييل مقابل الكتلة الأصلية، لذا يتجاوز مؤشر PutVarint الحد nn + FTS5_DATA_PADDING (20). عادةً ما يكون SQLITE_ENABLE_FTS5 إضافيًا. قاعدة بيانات الهجوم كانت تستخدم secure-delete بالفعل.

هذا من بقايا لاحق في Fossil 9cd4f9e920 / Git d9de6eedbe91 / branch-3.53 34171bee08 (2026-08-11، YEONBA). هذا الإيداع يأتي بعد هذا الإصدار GA. وهو ليس CVE-2026-11824: فـ fts5LeafRead يرفض بالفعل szLeaf<4 على هذا الإصدار المثبّت.

المعرّفلا يوجد CVE بعد
الفئةانهيار (كتابة ASan بحجم 1؛ لم يُثبت استغلال RCE)
الوصولمحلي (فتح قاعدة بيانات FTS5 مصنوعة، ثم DELETE/تفريغ)
CWECWE-787
CVSSمرتفع: 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
المنتجSQLite (نسخة GitHub المرآة sqlite/sqlite)
المتأثر3.53.4 SOURCE_ID 2026-07-24 19:02:57 bf7c7f30031888f4e796e429ab3978879485813aaca6f641c7b33e4e09459bcc
المصادقةلا شيء (ملف فهرس غير موثوق)
الترخيصGNU Affero GPL v3.0
المختبر127.0.0.1:18860 فقط. كتابة ASan على الكومة. لا حمولة RCE.

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

فتح قاعدة بيانات FTS5 مصنوعة كانت تستخدم secure-delete بالفعل، ثم DELETE (أو أي كتابة تؤدي إلى تفريغ secure-delete) بحيث تكتب fts5DoSecureDelete متغيرات التذييل بما يتجاوز Fts5Data. انهيار / كتابة ASan على الكومة بحجم 1. لم يُثبت استغلال RCE. ليس CVE-2026-11824.

MATCH فقط ليس هذا المصبّ. المُحفّز هو DELETE/التفريغ. الملف المصنوع لا يحتاج إلى تعطيل SQLITE_DBCONFIG_DEFENSIVE.

كيف وجدته

عشرون عملية بحث في مصدر SQLite 3.53.4 بعد إصدارات أخرى لقواعد البيانات وخوادم HTTP. تم إغلاق CVE-2026-11822 / CVE-2026-11824 على هذه الشجرة (fts5LeafRead szLeaf<4). أما الحد اللاحق في trunk الخاص بـ YEONBA فلم يُغلق. ملف fts5corruptB.test في 3.53.4 لا يزال ينتهي عند الاختبار 3.2؛ اختبار trunk 4.0 هو hexdb بالإضافة إلى DELETE FROM t WHERE rowid = 1.

iPgIdx -= nShift;
nPg = iPgIdx;
fts5PutU16(&aPg[2], iPgIdx);

for(iIdx=0; iIdx<nIdx; /* no-op */){
  u32 iVal = 0;
  iIdx += fts5GetVarint32(&aIdx[iIdx], iVal);
  iKeyIn += iVal;
  if( iKeyIn!=iDelKeyOff ){
    int iKeyOut = (iKeyIn - (iKeyIn>iOff ? nShift : 0));
    nPg += sqlite3Fts5PutVarint(&aPg[nPg], iKeyOut - iPrevKeyOut);
    iPrevKeyOut = iKeyOut;
  }
}

ext/fts5/fts5_index.c:5514-5544. iKeyIn هو int بسعة 32 بت. يحتفظ الفرع الرئيسي اللاحق بـ nPg الأصلي، ويستخدم i64 iKeyIn، ويرفض iKeyIn>nPg قبل PutVarint.

مسارات خاطئة: التعامل مع CVE-2026-11824 على أنه هذا العيب؛ استخدام MATCH بدلاً من DELETE؛ نبات CREATE/INSERT حي أبقى szLeaf ضمن النطاق ولم يحدث تجاوزًا؛ وصف سلسلة WAL-plus-FTS5 لدى Winter بأنها RCE دون حمولة.

المختبر

cd lab
./run.sh

ASan amalgamation من zip الرسمي sqlite-src-3530400، -DSQLITE_ENABLE_FTS5. مطلوب Hexdb lab/yeonba-fts5corruptB-4.hexdb (trunk fts5corruptB.test 4.0). اربط loopback 127.0.0.1:18860. مشروع Compose sqlite-fts5-securedel.

SUCCESS sqlite-fts5-securedel how=asan-heap-buffer-overflow-write-1-fts5DoSecureDelete db=yeonba-hexdb bytes=5120 SQLITE-FTS5-SECUREDEL-WITNESS

إطارات ASan: fts5PutVarint64 -> sqlite3Fts5PutVarint -> fts5DoSecureDelete / fts5FlushSecureDelete.

الإصلاح

أبقِ nPg الأصلي. وسّع iKeyIn إلى i64. ارفض iKeyIn>nPg قبل sqlite3Fts5PutVarint. هذا هو Fossil 9cd4f9e920 / branch-3.53 34171bee08. طبّقه (cherry-pick) على 3.53.

المراجع

  • https://sqlite.org/src وسم version-3.53.4 Git b09c88c14082339b66c7b7158d609a771e64ca69
  • ext/fts5/fts5_index.c fts5DoSecureDelete، fts5FlushSecureDelete، fts5LeafRead
  • ext/fts5/fts5_varint.c sqlite3Fts5PutVarint
  • إصلاح Trunk Fossil 9cd4f9e920 / Git d9de6eedbe91 / branch-3.53 34171bee08 (2026-08-11، YEONBA)
  • CVE-2026-11824 هو الأصل المغلق szLeaf<4، وليس هذه البقايا
تنزيل الأداة