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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
sqlite-values-union — SQLite 3.53.4 - उच्च - स्थानीय - क्रैश - VALUES UNION ALL फ़ॉलबैक क्लीनअप स्टैक ओवरफ़्लो | Kitploit
उपकरण/GitHubGitHub/abraxas/sqlite-values-union
भेद्यता विश्लेषणशोषणफज़िंगबाइनरी विश्लेषणपेपर और शोधडेटाबेस सुरक्षालैब और अभ्यास
GitHubabraxas/sqlite-values-union

sqlite-values-union

SQLite 3.53.4 - उच्च - स्थानीय - क्रैश - VALUES UNION ALL फ़ॉलबैक क्लीनअप स्टैक ओवरफ़्लो

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

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

सभी देखें →

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

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

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

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

Abraxas Labs - sqlite-values-union

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

sqlite-values-union

Class: Crash Reach: Local

SQLite 3.53.4 (b09c88c) - Hwaci

डिफ़ॉल्ट VALUES एक को-रूटीन का उपयोग करता है। WITH (या स्कीमा रीलोड, या एक गैर-स्थिर पंक्ति) sqlite3MultiValues को UNION ALL पर मजबूर करता है। जब SF_Values सेट होता है तो कंपाउंड-SELECT लंबाई छोड़ दी जाती है (parse.y:562-567)। फिर पर्याप्त बड़ी पंक्ति सूची को SQLITE_LIMIT_EXPR_DEPTH द्वारा अस्वीकार कर दिया जाता है, और पुनरावर्ती sqlite3ExprDeleteNN त्रुटि-सफ़ाई पथ पर C स्टैक को उड़ा देता है।

5000 पंक्तियों का सादा VALUES ठीक है। WITH और 1000 पंक्तियाँ साफ़ त्रुटि देती हैं (Expression tree is too large)। WITH और 300000 पंक्तियाँ sqlite3ExprDeleteNN में ASan स्टैक-ओवरफ़्लो है (rc=134)। RCE नहीं।

IDअभी तक कोई CVE नहीं
ClassCrash (ExprDelete पर ASan स्टैक-ओवरफ़्लो; RCE प्रदर्शित नहीं)
ReachLocal (अविश्वसनीय SQL, या VIEW/TRIGGER के अंदर VALUES)
CWECWE-674
CVSSHigh: 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
ProductSQLite
Affected3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69, SOURCE_ID 2026-07-24 19:02:57 bf7c7f30031888f4e796e429ab3978879485813aaca6f641c7b33e4e09459bcc)। बाद के ट्रंक VALUES कंपाउंड कैप का अवशेष।
Authहमलावर SQL, या एक रोपित स्कीमा जो UNION ALL फ़ॉलबैक लेता है
LicenseGNU Affero GPL v3.0
Labकेवल 127.0.0.1:18820। ASan अमलगमेशन। क्रैश साक्षी।

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

अविश्वसनीय SQL फ़ीड करें जिसे कोई होस्ट तैयार करेगा। एक विशाल VALUES सूची के आगे WITH लगाएँ ताकि को-रूटीन पथ बंद हो जाए। पार्स को एक एक्सप्रेशन-डेप्थ त्रुटि के साथ विफल होना चाहिए। उस ट्री की सफ़ाई sqlite3ExprDeleteNN में तब तक पुनरावर्तित होती है जब तक प्रक्रिया मर न जाए।

वही फ़ॉलबैक तब सक्रिय होता है जब VALUES किसी VIEW या TRIGGER में रहता है (db->init.busy)। होस्ट एम्बेडर है: एक CLI, एक ऐप जो हमलावर SQL तैयार करता है, एक सेवा जो एक शत्रुतापूर्ण .db खोलती है। SQLite VALUES बाइट्स को कोड के रूप में eval नहीं करता। क्रैश ही निष्कर्ष है।

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

github.com/sqlite/sqlite टैग version-3.53.4 की बीस स्रोत खोजें। स्किप सूची ने पहले ही CVE-2026-11824, session NPD, concat_ws, LOOKASIDE, JSON UAF, WAL-reset को बंद कर दिया था। डिफ़ॉल्ट load_extension बंद है। पार्सर/VDBE अवशेष यह VALUES UNION ALL स्किप और एक पुनरावर्ती डिस्ट्रक्टर था।

if( (p->selFlags & (SF_MultiValue|SF_Values))==0
 && (mxSelect = pParse->db->aLimit[SQLITE_LIMIT_COMPOUND_SELECT])>0
 && cnt>mxSelect
){
  sqlite3ErrorMsg(pParse, "too many terms in compound SELECT");
}
if( pParse->bHasWith
 || pParse->db->init.busy
 || exprListIsConstant(pParse,pRow)==0
 ...
){
  /* The co-routine method cannot be used. Fall back to UNION ALL. */
  ...
  pSelect->op = TK_ALL;
  pSelect->pPrior = pLeft;
}

clearSelect() pPrior पर पुनरावृत्त रूप से चलता है। sqlite3ExprDeleteNN() अभी भी pRight पर और pLeft पर पुनरावर्तित होता है जब EP_Static सेट होता है।

गलत मोड़: WITH के साथ 1000 पंक्तियाँ प्रलेखित डेप्थ कैप पर साफ़ त्रुटि देती हैं और क्रैश नहीं होतीं; 300000 पंक्तियों की आवश्यकता थी ताकि डिस्ट्रक्टर डेप्थ 8 MiB C स्टैक को उड़ा दे। सादा VALUES को-रूटीन पर रहता है और नेगेटिव कंट्रोल है।

Lab

cd lab
./run.sh

कैनोनिकल 3.53.4 स्रोत zip, ASan sqlite3। Compose sqlite-values-union। प्रकाशित 127.0.0.1:18820। इसे लूपबैक पर बाइंड करें।

SUCCESS sqlite-values-union how=with-values-union-all-fallback-exprdelete rows=300000 crash=asan-stack-overflow plain=5000 depth-error=1000 SQLITE-VALUES-UNION-WITNESS

समाधान

SQLITE_LIMIT_COMPOUND_SELECT को VALUES पर उसी तरह लागू करें जैसे अन्य कंपाउंड कैप किए जाते हैं। डिलीट पर UNION ALL श्रृंखला को पुनरावृत्त रूप से चलाएँ, या ट्री बनने से पहले EXPR_DEPTH को कैप करें ताकि सफ़ाई C स्टैक से बाहर पुनरावर्तित न हो सके। बाद का ट्रंक (Bug 2026-10-04T05:34:47Z) इस GA के बाद है।

संदर्भ

  • sqlite.org/src टैग version-3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69)
  • SOURCE_ID 2026-07-24 19:02:57 bf7c7f30031888f4e796e429ab3978879485813aaca6f641c7b33e4e09459bcc
  • src/parse.y:562-567 जब SF_Values सेट होता है तो कंपाउंड-SELECT स्किप
  • src/insert.c:681-704 sqlite3MultiValues UNION ALL फ़ॉलबैक
  • src/expr.c:1406-1430 पुनरावर्ती sqlite3ExprDeleteNN
  • sqlite.org/cves.html · sqlite.org/security.html
टूल डाउनलोड करें