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 को छोड़ देती है

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

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

सभी देखें →

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

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

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

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

Abraxas Labs - sqlite-collate-depth

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

राइट-अप: https://abraxaslabs.tech/research/sqlite-collate-depth

sqlite-collate-depth

वर्ग: क्रैश पहुँच: लोकल

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 नहीं
वर्गक्रैश (sqlite3WalkExprNN में ASan स्टैक-ओवरफ़्लो; RCE प्रदर्शित नहीं)
पहुँचलोकल (अविश्वसनीय SQL या एक रोपित VIEW)
CWECWE-674, CWE-770
CVSSउच्च: 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
उत्पादSQLite 3.53.4
प्रभावित3.53.4 (b09c88c); बाद के trunk COLLATE height चेक का अवशेष
प्रमाणीकरणअविश्वसनीय SQL या VIEW; डिफ़ॉल्ट load_extension बंद रहता है
लाइसेंसGNU Affero GPL v3.0
लैबकेवल 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 amalgamation (टैग version-3.53.4 का fallback clone)। sqlite-collate-depth को compose करें। 127.0.0.1:18800 पर dummy HTTP। इसे loopback से bind करें।

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 की पुनर्गणना करें। एक पोस्टफ़िक्स ऑपरेटर अभी भी एक एक्सप्रेशन ट्री है।

ट्रंक 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 अनियंत्रित रिकर्सन
  • CWE-770 बिना सीमा या थ्रॉटलिंग के संसाधनों का आवंटन
टूल डाउनलोड करें