Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
autogpt-CVE-2026-30950-poc — CVE-2026-30950 के लिए POC जो AutoGpt में सेशन हाइजैकिंग की अनुमति देता है | Kitploit
उपकरण/GitHubGitHub/zeropathai/autogpt-cve-2026-30950-poc
प्रमाणीकरण और प्राधिकरणभेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगरेड टीमिंग
GitHubzeropathai/autogpt-cve-2026-30950-poc

autogpt-CVE-2026-30950-poc

CVE-2026-30950 के लिए POC जो AutoGpt में सेशन हाइजैकिंग की अनुमति देता है

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें
रिपॉजिटरी देखें
3 महीने पहलेअभी तक समीक्षित नहीं

AutoGPT CVE-2026-30950 POC

CVE-2026-30950 के लिए प्रूफ-ऑफ-कॉन्सेप्ट प्रदर्शन, AutoGPT प्लेटफ़ॉर्म में एक प्रमाणित IDOR (अनुपलब्ध प्राधिकरण) जो किसी भी लॉग-इन उपयोगकर्ता को किसी अन्य उपयोगकर्ता के चैट सत्र को केवल एक PATCH अनुरोध के माध्यम से पुनः असाइन करने — और इस प्रकार हाईजैक करने — की अनुमति देता है, बिना सत्र तक किसी पूर्व पहुँच के।

  • GHSA: GHSA-q58p-v9r9-7gqj
  • CVE: CVE-2026-30950
  • CVSS 3.1: 7.1 / उच्च (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:L)
  • प्रभावित: autogpt-platform-backend >= 0.6.36
  • समाधान: 0.6.51 में
  • ZeroPath द्वारा खोजा गया। हमारे तकनीकी ब्लॉग में अधिक विवरण के साथ पूरा लेख उपलब्ध है!

भेद्यता

सत्र-असाइन एंडपॉइंट पर अनुपलब्ध स्वामित्व जाँच (CVE-2026-30950, CWE-862)

चैट-सत्र API एक रूट उजागर करता है जो उपयोगकर्ता को अपने खाते को सत्र रिकॉर्ड से जोड़ने की अनुमति देता है। रूट JWT प्रमाणीकरण द्वारा संरक्षित है लेकिन यह कोई जाँच नहीं करता कि कॉल करने वाला वर्तमान में संशोधित किए जा रहे सत्र का स्वामी है — केवल यह कि वे कोई प्रमाणित उपयोगकर्ता हैं। पीड़ित के session_id और हमलावर के JWT के साथ एक सीधा कॉल सत्र का स्वामित्व हमलावर को स्थानांतरित कर देता है।

भेद्यता की तीन परतें हैं और बाईपास प्रत्येक परत पर स्थापित है:

root@kitploit:~
# autogpt_platform/backend/backend/api/features/chat/routes.py:753-776
@router.patch(
    "/sessions/{session_id}/assign-user",
    dependencies=[Security(auth.requires_user)],
    status_code=200,
)
async def session_assign_user(
    session_id: str,
    user_id: Annotated[str, Security(auth.get_user_id)],
) -> dict:
    await chat_service.assign_user_to_session(session_id, user_id)
    return {"status": "ok"}

रूट किसी भी प्रमाणित कॉलर को स्वीकार करता है। यह सेवा को नियंत्रण सौंपता है:

root@kitploit:~
# autogpt_platform/backend/backend/copilot/service.py:291-303
async def assign_user_to_session(session_id: str, user_id: str) -> ChatSessionInfo:
    session = await get_chat_session(session_id, None)   # ← user_id=None
    if not session:
        raise NotFoundError(f"Session {session_id} not found")
    session.user_id = user_id
    session = await upsert_chat_session(session)
    return session

सेवा जानबूझकर कॉलर की उपयोगकर्ता ID को आगे भेजने के बजाय डेटा एक्सेसर को user_id=None पास करती है। डेटा एक्सेसर तब None को एडमिन-मोड के रूप में मानता है और स्वामित्व फ़िल्टर को छोड़ देता है:

root@kitploit:~
# autogpt_platform/backend/backend/copilot/model.py:355-366
session = await _get_session_from_cache(session_id)
if session:
    if user_id is not None and session.user_id != user_id:
        logger.warning(f"Session {session_id} user id mismatch")
        return None
    return session

जब user_id is None होता है, तो संयोजन शॉर्ट-सर्किट हो जाता है और बेमेल जाँच कभी नहीं की जाती — किसी भी कॉलर को कोई भी सत्र लौटा दिया जाता है। सेवा तब session.user_id को कॉलर की ID से अधिलेखित कर देती है और परिणाम Redis में कैश कर देती है, जिससे मूल स्वामी द्वारा बाद की खोजें उसी बेमेल जाँच द्वारा अस्वीकृत कर दी जाती हैं जिसे अभी बाईपास किया गया था।

सर्वर कब शोषणीय है?

चैट (कॉपायलट) सुविधा सक्षम के साथ autogpt-platform-backend >= 0.6.36 और < 0.6.51 चलाने वाला कोई भी AutoGPT प्लेटफ़ॉर्म इंस्टेंस शोषणीय है। शोषण के लिए आवश्यक है:

  1. एक प्रमाणित सत्र। हमलावर के पास कोई भी मान्य Supabase JWT होना चाहिए — एक मानक पंजीकृत उपयोगकर्ता खाता पर्याप्त है।
  2. एक लक्ष्य सत्र ID। सत्र ID UUID होते हैं लेकिन वे URL और लॉग में दिखाई देते हैं; कोई भी रिसाव — रेफरर हेडर, साझा लिंक, स्क्रीन शेयर, सर्वर लॉग, सपोर्ट टिकट — पर्याप्त है।

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

प्रति-सत्र प्रभाव, प्रत्येक हाईजैक किए गए सत्र के साथ बढ़ता हुआ:

  • सभी संदेश पढ़ें हाईजैक किए गए सत्र में। AutoGPT में चैट सत्र एजेंट के साथ वार्तालाप इतिहास रखते हैं, जिसमें टूल इनवोकेशन, फ़ाइल संदर्भ और उपयोगकर्ता द्वारा चैट में चिपकाया गया कोई भी संवेदनशील डेटा शामिल है।
  • वैध स्वामी को लॉक आउट करें। असाइनमेंट के बाद, Redis कैश हमलावर की user_id रखता है; पीड़ित के बाद के पठन स्वामित्व जाँच में विफल हो जाते हैं और 404 लौटाते हैं।
  • सत्र के माध्यम से पिवट करें। सत्र को पीड़ित के लिए जो भी करने का अधिकार था, हमलावर अब कर सकता है — अनुवर्ती संदेश सबमिट करना, एजेंट क्रियाएँ ट्रिगर करना, सत्र से जुड़ी वर्कस्पेस सामग्री बाहर निकालना।

CVSS स्कोर (C:H / I:N / A:L) प्रति-सत्र दायरे को दर्शाता है: हाईजैक किए गए सत्रों पर उच्च गोपनीयता प्रभाव, पहले से मौजूद संदेश सामग्री को कोई अखंडता क्षति नहीं, और वैध स्वामी पर उपलब्धता प्रभाव (लॉकआउट)।

POC का दायरा

यह रिपॉज़िटरी एक POC प्रदान करता है, जो प्रत्यक्ष ट्रिगर को कवर करता है: ज्ञात session_id के विरुद्ध हमलावर के JWT से एकल PATCH अनुरोध। सेटअप स्क्रिप्ट नए-बूटस्ट्रैप किए गए AutoGPT स्टैक में दो उपयोगकर्ता (हमलावर + पीड़ित) बनाती है और तैयार घोषित करने से पहले पूर्व-शर्तों की पुष्टि करती है।

रिपॉज़िटरी सामग्री

  • setup/ — Docker Compose वातावरण।

    • setup.sh AutoGPT को अंतिम कमजोर टैग (autogpt-platform-beta-v0.6.50) पर setup/AutoGPT-src/ में क्लोन करता है, अपस्ट्रीम के docker-compose.yml से न्यूनतम सेवाएँ (rest_server, copilot_executor, database_manager, migrate, साथ ही उनकी ट्रांज़िटिव निर्भरताएँ: Postgres, Redis, RabbitMQ, Supabase Kong + GoTrue) चालू करता है, दो परीक्षण उपयोगकर्ता बनाता है, और सत्यापित करता है कि कमजोर एंडपॉइंट रूटेड है।
    • teardown.sh स्टैक को बंद करता है और वॉल्यूम मिटा देता है।
  • pocs/session_hijack.py — स्व-निहित शोषण। पीड़ित और हमलावर के रूप में लॉग इन करता है, पीड़ित के रूप में एक सत्र बनाता है, पुष्टि करता है कि हमलावर के पास शोषण-पूर्व पढ़ने की पहुँच नहीं है, एकल PATCH अनुरोध भेजता है, फिर सिद्ध करता है कि स्वामित्व स्थानांतरित हो गया है और पीड़ित लॉक आउट हो गया है।

निर्देश

आवश्यक शर्तें: Docker, Git, Python 3.10+ और uv।

root@kitploit:~
cd setup
./setup.sh

पहली बार चलाने पर AutoGPT कमजोर टैग पर क्लोन होता है और बैकएंड इमेज बनती है (~3-5 मिनट)। बाद की बार तेज़ होती हैं। जब सेटअप पूरा होता है तो यह कॉपी-पेस्ट के लिए तैयार POC इनवोकेशन प्रिंट करता है।

POC चलाएँ:

root@kitploit:~
uv run --no-project --with requests \
    pocs/session_hijack.py \
    --api-url http://localhost:58006 \
    --auth-url http://localhost:58000 \
    --attacker-email [email protected] \
    --attacker-password 'Attacker123!' \
    --victim-email [email protected] \
    --victim-password 'Victim123!'

उच्च पोर्ट क्यों? अपस्ट्रीम की compose कंटेनर नाम (supabase-db, rabbitmq, ...) हार्डकोड करती है और डिफ़ॉल्ट पोर्ट (5432, 8000, ...) प्रकाशित करती है। उपयोगकर्ता द्वारा पहले से चलाए जा रहे किसी भी अन्य Supabase / Postgres / RabbitMQ स्टैक के साथ सह-अस्तित्व के लिए, setup/docker-compose.override.yml कंटेनरों का नाम बदलता है, नेटवर्क को एक अद्वितीय प्रोजेक्ट नाम (autogpt-cve-2026-30950) के अंतर्गत पृथक करता है, और दो बाह्य रूप से उजागर पोर्ट को 58000 श्रेणी में बढ़ा देता है। अन्य आंतरिक सेवाएँ केवल प्रोजेक्ट के डॉकर नेटवर्क से बंधती हैं।

अपेक्षित आउटपुट इसके साथ समाप्त होता है:

root@kitploit:~
[PASS] AUTHENTICATED SESSION HIJACK CONFIRMED

टियर डाउन:

root@kitploit:~
cd setup
./teardown.sh

setup/AutoGPT-src/ में क्लोन किया गया AutoGPT सोर्स टियरडाउन के दौरान संरक्षित रहता है ताकि दोबारा चलाने पर पुनः डाउनलोड न हो। इसे पूरी तरह मिटाने के लिए, setup/AutoGPT-src/ हटाएँ।

टूल डाउनलोड करें