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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
sqlite-wal-pagesize — SQLite 3.53.4 - عالي - محلي - تسريب معلومات - عدم تطابق حجم صفحة WAL/DB وذيل صفحة غير مهيأ | Kitploit
أدوات/GitHubGitHub/abraxas/sqlite-wal-pagesize
تحليل الذاكرة الجنائيتحليل الثغرات الأمنيةالاستغلالجمع المعلوماتالأوراق والأبحاثأمن قواعد البياناتمختبرات وتدريب عملي
GitHubabraxas/sqlite-wal-pagesize

sqlite-wal-pagesize

SQLite 3.53.4 - عالي - محلي - تسريب معلومات - عدم تطابق حجم صفحة WAL/DB وذيل صفحة غير مهيأ

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

الأكثر شعبية

عرض الكل →

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

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

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

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

Abraxas Labs - sqlite-wal-pagesize

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

المقال: https://abraxaslabs.tech/research/sqlite-wal-pagesize

sqlite-wal-pagesize

الفئة: تسريب معلومات النطاق: محلي

لا يزال SQLite 3.53.4 (b09c88c) يقرأ إطار WAL قراءةً ناقصة إلى صفحة pager كاملة دون تصفير (memset) للذيل. يقبل walIndexRecover أي حجم صفحة WAL من قوى الاثنين ضمن [512, SQLITE_MAX_PAGE_SIZE] ولا يقارنه أبدًا بحجم صفحة قاعدة البيانات. بعد ذلك تُعيد فتحات pcache المُعاد تدويرها بايتات الكومة/الصفحة السابقة عبر SQL عادي.

المختبر: ملف .db بوضع WAL بحجم صفحة 4096، ورأس -wal المجاور بحجم صفحة 512، أعاد SELECT b FROM t 2000 بايت. كان الذيل بعد الإطار ذي 512 بايت هو SQLITE-WAL-PAGESIZE-WITNESS. ليس RCE.

المعرّفلا يوجد CVE بعد
الفئةتسريب معلومات (ذيل pager غير مُهيّأ عبر SQL)
النطاقمحلي (ملف .db غير موثوق مع -wal مجاور)
CWECWE-908، CWE-200
CVSSمرتفع: 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
المنتجSQLite (Hwaci)
المتأثر3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69)؛ SOURCE_ID 2026-07-24 19:02:57 bf7c7f30031888f4e796e429ab3978879485813aaca6f641c7b33e4e09459bcc
المصادقةلا شيء (الضحية يفتح ملفات المهاجم)
الترخيصGNU Affero GPL v3.0
المختبر127.0.0.1:18830 فقط

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

تسليم ملف .db بوضع WAL مع -wal مجاور يكون حجم صفحة رأسه قوةَ اثنين صالحة أصغر من قاعدة البيانات. تقبل عملية الاستعادة ذلك. ينسخ sqlite3WalReadFrame حجم إطار WAL فقط إلى مخزن pager مؤقت بحجم مشتق من .db. تُلبّى خلية ورقة جدول تدّعي حمولة أكبر من ذلك الإطار من ذيل pcache المُعاد تدويره. تُعيد SELECT / substr() / hex() على ذلك الـ blob بايتات pager/كومة متبقية من صفحات سابقة في العملية نفسها.

عدم التطابق العكسي (WAL أكبر من pager) يُنتج SQLITE_CORRUPT عند نقطة التحقق (checkpoint). هذا المتبقي يخص مسار القراءة ذا WAL الأصغر فقط. ليس RCE.

كيف وجدته

عشرون عملية بحث في الشيفرة المصدرية لـ 3.53.4 بعد مصفوفة المتبقيات في الفرع الرئيسي اللاحق. أبلغ عنه Winter في المنتدى باسم 2026-08-17T15:54:41Z. الفرع الرئيسي f9b4ee3695 / branch-3.53 4fde87b2a0 (2026-08-16) يأتي بعد هذا الإصدار العام (2026-07-24). لا يزال sqlite3WalReadFrame عند هذا التثبيت (nOut>sz ? sz : nOut) دون memset للذيل.

منعطف خاطئ: كانت خلية ورقة مبكرة مشوّهة وأعاد SELECT رمز SQLITE_CORRUPT rc=11. الخلية التي تعمل تدّعي 2000 بايت من الحمولة المحلية عبر إطار بحجم 512 بايت على صفحة pager بحجم 4096 بايت.

المختبر

cd lab
./run.sh

يبني SQLite 3.53.4 من ملف zip المصدر الرسمي. يُركّب sqlite-wal-pagesize. ينشر 127.0.0.1:18830. يهيّئ pcache بـ 48 صفاً شاهداً بحجم 4000 بايت، ثم SELECT b FROM t على ورقة القراءة القصيرة.

SUCCESS sqlite-wal-pagesize how=wal-shortread-pcache-tail len=2000 rootpage=2 SQLITE-WAL-PAGESIZE-WITNESS

الإصلاح

قارن حجم صفحة رأس WAL بحجم صفحة قاعدة البيانات أثناء الاستعادة. وعندما يختلفان، ارفض WAL أو قم بتهيئة صفحة المُترحِّل (pager) بالكامل:

if( nOut>sz ){
  memset(pOut+sz, 0, nOut-sz);
  nOut = sz;
}

هذا الجزء موجود على الفرع الرئيسي بعد هذا الإصدار GA. وهو غير موجود في 3.53.4.

المراجع

  • sqlite.org/src وسم version-3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69)
  • src/wal.c sqlite3WalReadFrame، walIndexRecover
  • src/pager.c readDbPage
  • المنتدى 2026-08-17T15:54:41Z (Winter)
تنزيل الأداة