Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

फ़ीडसंपर्कगोपनीयता© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
sqlite-collate-depth — SQLite 3.53.4 - उच्च - स्थानीय - क्रैश - COLLATE श्रृंखला SQLITE_LIMIT_EXPR_DEPTH को छोड़ देती है | Kitploit
उपकरण/GitHubGitHub/abraxas/sqlite-collate-depth
स्थैतिक विश्लेषणभेद्यता विश्लेषणशोषणफज़िंगडेटाबेस सुरक्षा
GitHubabraxas/sqlite-collate-depth

sqlite-collate-depth

SQLite 3.53.4 - उच्च - स्थानीय - क्रैश - COLLATE श्रृंखला SQLITE_LIMIT_EXPR_DEPTH को छोड़ देती है

रिपॉजिटरी देखें
16 दिन पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

Abraxas Labs - sqlite-collate-depth

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

sqlite-collate-depth

Class: Crash Reach: Local

SQLite 3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69, SOURCE_ID 2026-07-24 19:02:57 bf7c7f30031888f4e796e429ab3978879485813aaca6f641c7b33e4e09459bcc) - Hwaci

COLLATE ग्रामर एक्शन कभी sqlite3ExprCheckHeight को कॉल नहीं करता। sqlite3ExprAddCollateToken एक TK_COLLATE नोड आवंटित करता है जिसमें nHeight अभी भी 1 है, फिर पूर्व एक्सप्रेशन को pLeft पर टांग देता है। सामान्य ऑपरेटर sqlite3PExpr से गुजरते हैं और दस्तावेज़ीकृत SQLITE_LIMIT_EXPR_DEPTH (डिफ़ॉल्ट 1000) प्राप्त करते हैं। यह ऑपरेटर ऐसा नहीं करता।

वॉकर अभी भी हर pLeft पर रिकर्स करता है। EP_Skip affinity के लिए है, sqlite3WalkExprNN के लिए नहीं। 50-नोड चेन 1 लौटाती है। 8k और 40k भी, डेप्थ लिमिट से परे। 120k sqlite3WalkExprNN में ASan स्टैक-ओवरफ़्लो करता है (rc=134)। RCE नहीं।

कैनोनिकल ट्री https://sqlite.org/src है। GitHub sqlite/sqlite एक Fossil मिरर है। आधिकारिक ज़िप sqlite-src-3530400। पब्लिक डोमेन लाइब्रेरी। यह पैक AGPLv3 है।

IDअभी तक कोई CVE नहीं
ClassCrash (sqlite3WalkExprNN में ASan स्टैक-ओवरफ़्लो; RCE प्रदर्शित नहीं)
ReachLocal (अविश्वसनीय SQL या एक रोपित VIEW)
CWECWE-674, CWE-770
CVSSHigh: 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
ProductSQLite 3.53.4
Affected3.53.4 (b09c88c); बाद के trunk COLLATE height check का अवशेष
Authअविश्वसनीय SQL या VIEW; डिफ़ॉल्ट load_extension बंद रहता है
LicenseGNU Affero GPL v3.0
Labकेवल 127.0.0.1:18800। ASan अमलगमेशन। क्रैश विटनेस।

एक हमलावर क्या कर सकता है

SQL के रूप में एक लंबी पोस्टफ़िक्स COLLATE BINARY चेन फ़ीड करें, या इसे एक अविश्वसनीय .db के अंदर एक VIEW में रोपित करें। होस्ट प्रोसेस चेन पर चलता है और C स्टैक पर मर जाता है। दस्तावेज़ीकृत एक्सप्रेशन-डेप्थ लिमिट इस ऑपरेटर पर कभी नहीं चलती।

SELECT 1 COLLATE BINARY COLLATE BINARY ... पर्याप्त है। CREATE VIEW v AS SELECT 1 COLLATE BINARY ... में समान आकार, फिर एक नए कनेक्शन पर SELECT * FROM v। डिफ़ॉल्ट SQLITE_LIMIT_SQL_LENGTH (1e9) उस ~1.8 MB चेन को रखता है जिसने इस लैब में 8 MB स्टैक को ओवरफ़्लो किया।

यह एम्बेडर प्रोसेस का क्रैश है। यह इंस्ट्रक्शन-पॉइंटर नियंत्रण नहीं है। load_extension बंद रहता है।

मैंने इसे कैसे खोजा

OpenLiteSpeed के बाद SQLite टैग version-3.53.4 की बीस सोर्स हंट्स। नवीनतम GA, 3.54.0 ड्राफ़्ट नहीं। sqlite.org/security.html अविश्वसनीय SQL और अविश्वसनीय .db को प्रथम-श्रेणी मानता है। डिफ़ॉल्ट load_extension बंद है।

COLLATE के लिए parse.y तीन पंक्तियाँ हैं:

expr(A) ::= expr(A) COLLATE ids(C). {
  A = sqlite3ExprAddCollateToken(pParse, A, &C, 1);
}

sqlite3ExprAddCollateToken pNew->pLeft = pExpr और EP_Collate|EP_Skip सेट करता है। sqlite3ExprAlloc ने nHeight = 1 छोड़ दिया। कोई sqlite3ExprCheckHeight नहीं। sqlite3PExpr हर अन्य बाइनरी ऑपरेटर के लिए ये दोनों काम करता है।

गलत मोड़: 8k COLLATE को क्रैश मानना (यह 1 लौटाया); 40k को क्रैश मानना (यह भी 1 लौटाया, SQLITE_LIMIT_EXPR_DEPTH 1000 से काफ़ी परे); sqlite3WalkExprNN में ASan के मरने से पहले 120k की आवश्यकता।

यह पिन पर चौदह अवशेषों में से G1 है। सिबलिंग्स अन्य पोस्ट हैं।

लैब

cd lab
./run.sh

आधिकारिक sqlite-src-3530400 से ASan अमलगमेशन (टैग version-3.53.4 का फ़ॉलबैक क्लोन)। Compose sqlite-collate-depth। 127.0.0.1:18800 पर डमी HTTP। इसे लूपबैक पर बाइंड करें।

SUCCESS sqlite-collate-depth how=asan-stack-overflow control=50 crash-n=120000 SQLITE-COLLATE-DEPTH-WITNESS

50 COLLATE 1 लौटाता है। 8k और 40k भी 1 लौटाते हैं। 120k rc=134 के साथ मरता है, sqlite3WalkExprNN में ASan स्टैक-ओवरफ़्लो। पिन चेक SELECT sqlite_version() / SELECT sqlite_source_id() है।

फ़िक्स

pLeft संलग्न करने के बाद COLLATE नोड पर sqlite3ExprCheckHeight को कॉल करें, जैसे sqlite3PExpr पहले से करता है। चाइल्ड से nHeight की पुनर्गणना करें। एक पोस्टफ़िक्स ऑपरेटर अभी भी एक एक्सप्रेशन ट्री है।

Trunk 252c0b7bf5 (2026-10-04) इस GA के बाद है।

संदर्भ

  • https://sqlite.org/src टैग version-3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69)
  • https://github.com/sqlite/sqlite (Fossil मिरर) ट्री https://github.com/sqlite/sqlite/tree/version-3.53.4
  • आधिकारिक ज़िप https://www.sqlite.org/2026/sqlite-src-3530400.zip
  • https://sqlite.org/security.html
  • src/parse.y COLLATE एक्शन
  • src/expr.c sqlite3ExprAddCollateToken, sqlite3ExprAlloc (nHeight = 1), sqlite3PExpr / sqlite3ExprCheckHeight
  • src/walker.c sqlite3WalkExprNN
  • src/sqliteLimit.h SQLITE_MAX_EXPR_DEPTH डिफ़ॉल्ट 1000
  • CWE-674 Uncontrolled Recursion
  • CWE-770 Allocation of Resources Without Limits or Throttling
टूल डाउनलोड करें