
Apache Superset 6.1.0 में एक प्राधिकरण दोष के लिए प्रूफ-ऑफ-कॉन्सेप्ट लैब, जहाँ एक Gamma डैशबोर्ड संपादक अनवर्ज़न्ड v0 डैशबोर्ड आयात के माध्यम से डेटासेट SQL रखता है, जो चार्ट रीफ़्रेश पर निष्पादित होता है।
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · superset-g3-v0-import-sql-plant
एक सहकर्मी जिसके पास सामान्य डैशबोर्ड-एडिटर खाता है, अपनी ही डेटाबेस क्वेरी को उस चार्ट के अंदर छिपा सकता है जिस पर लोग पहले से भरोसा करते हैं। अगली बार जब कोई उस चार्ट को खोलेगा, तो क्वेरी कंपनी के डेटा कनेक्शन पर चलेगी। वे उन तालिकाओं को पढ़ सकते हैं जिन तक उन्हें कभी पहुँच नहीं दी गई थी। उन्हें उस अतिरिक्त "मेरी अपनी SQL चलाओ" अनुमति की आवश्यकता नहीं है जो इसे नियंत्रित करने वाली है। वे नया वेयरहाउस लॉगिन पंजीकृत नहीं कर सकते, और वे इस चार्ट पथ के माध्यम से INSERT या DELETE नहीं चला सकते।
वर्ग: विशेषाधिकार अवशेष पहुँच: रिमोट
Apache Superset 6.1.0 (c83fb2bb) - Apache Software Foundation
डिफ़ॉल्ट Gamma के पास can_write Dashboard है, इसलिए POST /api/v1/dashboard/import/ इन-मैट्रिक्स है। गैर-ZIP JSON में metadata.yaml नहीं है, इसलिए डिस्पैचर v1 आज़माता है, फिर बिना-संस्करण वाले v0 पर गिर जाता है। decode_dashboards SqlaTable का पुनर्गठन करता है। import_dataset table_name + schema + database_id (जो params.database_name से आता है) द्वारा खोजता है और datasource.override(i_datasource) export_fields को कॉपी करता है जिसमें sql भी शामिल है, बिना किसी raise_for_access और बिना Dataset लेखन के। फिर POST /api/v1/chart/data उस SQL को डेटासेट के एनालिटिक्स कनेक्शन पर वर्चुअल FROM के रूप में संकलित करता है।
sql_lab के बिना Gamma SQL। Dataset REST PUT 403 ही रहता है। v1 ZIP खाली ही रहता है।
| ID | अभी तक कोई CVE नहीं |
| वर्ग | विशेषाधिकार अवशेष (CVE-2026-23982 / CVE-2024-26016 का अवशेष) |
| पहुँच | रिमोट (प्रमाणित HTTP; डिफ़ॉल्ट Gamma) |
| CWE | CWE-863, CWE-284 |
| CVSS | उच्च: 7.6 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:L |
| उत्पाद | Apache Superset |
| प्रभावित | 6.1.0 (c83fb2bb1dcfac41ac51bcebd82471f4a7180d18); शिकार के समय GitHub Latest GA |
| प्रमाणीकरण | डिफ़ॉल्ट Gamma (can_write Dashboard)। अन-प्रमाणित नहीं। Admin नहीं (दायरे से बाहर)। |
| लाइसेंस | GNU Affero GPL v3.0 |
| लैब | केवल 127.0.0.1 |
एक Gamma (या किसी भी Dashboard-लेखन) खाते और एक डेटासेट की आवश्यकता है जिसे वे बाद में चार्ट कर सकें: उसी Database पर समान table_name + schema जिसका database_name JSON params में है। पूरक अनुदान डेटासेट ऑब्जेक्ट पर है, न कि उन हर तालिका पर जिनका नाम रोपित SQL में है। Chart/data raise_for_access डेटासोर्स-ऑब्जेक्ट (datasource_access / schema / owner) है। get_from_clause केवल has_mutation() को अस्वीकार करता है।
| विशेषाधिकार | विधि / सिंक | रेकॉन / अखंडता / उपलब्धता | लैब-प्रमाणित या अनुमानित |
|---|---|---|---|
| नाम-मिलान वाले डेटासेट के वर्चुअल SQL को ओवरराइट करें | Gamma POST /api/v1/dashboard/import/ गैर-ZIP JSON; v0 import_dataset datasource.override export_fields को कॉपी करता है जिसमें sql शामिल है | अखंडता (dataset.sql) | लैब-प्रमाणित। Import 200; dataset.sql = SELECT 'SUPERSET-G3-V0-IMPORT-SQL-PLANT-WITNESS' AS witness |
| उस SQL को डेटासेट के analytics URI पर चलाएँ | plant के बाद POST /api/v1/chart/data; get_from_clause संग्रहीत sql को TextAsFrom के रूप में लपेटता है | रेकॉन (उस URI उपयोगकर्ता द्वारा पढ़े जा सकने वाले किसी भी तालिका का SELECT) | लैब-प्रमाणित। 200; संकलित FROM (SELECT 'SUPERSET-G3-V0-IMPORT-SQL-PLANT-WITNESS' AS witness) AS virtual_table |
| क्वेरी को ऐसे चार्ट में छिपाएँ जिसे अन्य अनुदत्त उपयोगकर्ता पहले से खोलते हैं | वही plant; मालिक / अन्य datasource_access प्रिंसिपल रीफ़्रेश पर निष्पादित करते हैं | अखंडता + रेकॉन (अन्य लोग plant चलाते हैं) | अनुमानित। लैब Gamma के पास पहले से अनुदान था इसलिए स्व-निष्पादित |
| उन डैशबोर्ड को तोड़ें जो पुराने SQL का उपयोग करते थे | भौतिक-तालिका sql को आक्रमणकर्ता SELECT से बदलें | उपलब्धता | अनुमानित |
| नकारात्मक: SQL Lab निष्पादन | POST /api/v1/sqllab/execute/ | लागू नहीं | लैब-प्रमाणित। 403 |
| नकारात्मक: Dataset REST ओवरराइट | sql के साथ PUT /api/v1/dataset/{id} | लागू नहीं | लैब-प्रमाणित। 403; sql खाली रहा (CVE-2026-23982 सहोदर) |
नकारात्मक: metadata.yaml के साथ v1 ZIP | वही import endpoint, ZIP बंडल | लागू नहीं | लैब-प्रमाणित। 200; sql खाली रहा (CVE-2024-26016 वर्ग) |
इस शेष पर बंद: अनप्रमाणित import; नया Database URI पंजीकृत करना (v0 डेटासेट import कनेक्शन नहीं बनाता; अनुपस्थित params.database_name DatabaseNotFoundError है); chart/data के माध्यम से DML (has_mutation()); Gamma द्वारा ऐसे डेटासेट को चार्ट करना जिसे वे पढ़ नहीं सकते (403); नव सम्मिलित अद्वितीय table_name (PVM बनाया गया, Gamma से संलग्न नहीं)। RCE नहीं। Admin नहीं। प्रोडक्शन वेयरहाउस विभाजन SELECT को उस URI उपयोगकर्ता तक सीमित करता है। लैब analytics URI वही Postgres था जो मेटाडेटा था, इसलिए ab_user सहित क्रॉस-टेबल अनुमानित है, दूसरा-ऑरेकल नहीं।
मैंने Apache Superset 6.1.0 पिन किया। Admin OS-समतुल्य है और दायरे से बाहर। मैंने Apache के अपने भूमिका मैट्रिक्स के विरुद्ध शेषों की खोज की: Gamma, Alpha, sql_lab, एम्बेडेड अतिथि, Public।
6.0.0 लहर ने पहले ही chart/data sqlExpression (CVE-2026-23980), Dataset REST SQL (CVE-2026-23982), और SQL Lab DO $$ / EXPLAIN ANALYZE (CVE-2026-23984) को बंद कर दिया था। संस्करणित ZIP के लिए import authz CVE-2024-26016 है। अनसंस्करणित v0 अभी भी command_versions में अंतिम है क्योंकि "फ़ाइलें संस्करणित नहीं हैं।"
Dashboard पर import_ write पर मैप होता है। गैर-ZIP JSON {filename: bytes} है जिसमें कोई metadata.yaml नहीं। Dispatcher v1 आज़माता है, IncorrectVersionError पकड़ता है, v0 चलाता है। decode_dashboards __SqlaTable__ को लाइव मॉडल में बदलता है। import_dataset लुकअप और ओवरराइड करता है। export_fields में sql शामिल है। क्वेरी समय संग्रहीत SQL को विश्वसनीय मानता है: has_mutation() के बाद get_from_clause।
पहले से दर्ज गलत मोड़: v1 ZIP को शेष मानना (sql खाली रहा); Dataset REST PUT (403); Gamma के रूप में SQL Lab (403); किसी भी Database ऑब्जेक्ट तक बढ़ाना (v0 URI पंजीकृत नहीं करता); रिवर्स शेल। नाटक। साक्षी वर्चुअल FROM है।
python3 superset-g3-v0-import-sql-plant-Abraxas-Labs.py
or:
cd lab
./run.sh
केवल http://127.0.0.1:19710 को लक्षित करें। इमेज apache/superset:6.1.0। Compose प्रोजेक्ट superset-g3-v0-import। सीड: Admin, केवल-Gamma उपयोगकर्ता, Lab Analytics पर भौतिक डेटासेट lab_items, Gamma datasource_access। Oracle, रोपित SQL और चार्ट/डेटा में witness स्ट्रिंग है।
SUCCESS superset-g3-v0-import-sql-plant gamma-import-ok plant-sql-ok chart-data-witness-ok sqllab-403 dataset-put-403 v1-zip-no-overwrite SUPERSET-G3-V0-IMPORT-SQL-PLANT-WITNESS