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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-47630 — CVE-2026-47630 के लिए तकनीकी भेद्यता विश्लेषण और प्रूफ-ऑफ-कॉन्सेप्ट, जो NVIDIA Triton Inference Server में TRITON_BATCH_STRATEGY_PATH के माध्यम से एक मनमाना dlopen सक्षम करता है और नेटिव कोड निष्पादन संभव बनाता है, साथ ही पहचान और शमन हेतु मार्गदर्शन। | Kitploit
उपकरण/GitHubGitHub/s1ko/cve-2026-47630
भेद्यता विश्लेषणशोषणAI सुरक्षा
GitHubs1ko/cve-2026-47630

CVE-2026-47630

CVE-2026-47630 के लिए तकनीकी भेद्यता विश्लेषण और प्रूफ-ऑफ-कॉन्सेप्ट, जो NVIDIA Triton Inference Server में TRITON_BATCH_STRATEGY_PATH के माध्यम से एक मनमाना dlopen सक्षम करता है और नेटिव कोड निष्पादन संभव बनाता है, साथ ही पहचान और शमन हेतु मार्गदर्शन।

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

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

सभी देखें →

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

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

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

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

CVE-2026-47630 — NVIDIA Triton Inference Server: TRITON_BATCH_STRATEGY_PATH के माध्यम से मनमाना dlopen

triton-inference-server/core के कस्टम बैचिंग-स्ट्रैटेजी लोडर में निरपेक्ष पथ ट्रैवर्सल। एक मॉडल कॉन्फ़िगरेशन पैरामीटर बिना सत्यापन के dlopen(RTLD_NOW | RTLD_LOCAL) को पास कर दिया जाता है, इसलिए मॉडल के config.pbtxt को प्रभावित करने में सक्षम कोई भी व्यक्ति मॉडल-लोड समय पर Triton सर्वर प्रक्रिया के अंदर नेटिव कोड निष्पादन प्राप्त कर लेता है।

बुलेटिन 5865 में NVIDIA की स्वीकृति शब्दशः इस प्रकार है: CVE-2026-47630: s1ko।

सारांश

Triton मॉडल के config.pbtxt से एक प्रति-मॉडल TRITON_BATCH_STRATEGY_PATH पैरामीटर स्वीकार करता है। 26.05 तक इस मान को एक मनमाना फाइलसिस्टम पथ मानकर बिना किसी संशोधन के dlopen को सौंप दिया जाता था। न कोई कंटेनमेंट जाँच थी, न कोई अनुमत-सूची, और न ही किसी सिग्नेचर या हैश का सत्यापन। निरपेक्ष पथ, ट्रैवर्सल अनुक्रम और सिमलिंक — सभी स्वीकार किए जाते थे।

RTLD_NOW हर प्रतीक को तुरंत हल करता है और ऑब्जेक्ट की __attribute__((constructor)) / .init_array रूटीन को dlopen के लौटने से पहले चलाता है। इसलिए निष्पादन सफल लोड पर निर्भर नहीं होता — पेलोड को चलने के लिए TRITONBACKEND_ModelBatch* एंट्री पॉइंट्स में से किसी का मौजूद होना आवश्यक नहीं है, और यह Triton प्रक्रिया के विशेषाधिकारों के साथ चलता है (NGC कंटेनरों में प्रायः root)।

निष्पादन

कोड पथ (26.05 अनुसार)

src/backend_model.cc — हमलावर का इनपुट batch_libpath तक पहुँचता है, जिसका सत्यापन केवल अस्तित्व के लिए किया जाता है:

root@kitploit:~
if (model_config.parameters().contains("TRITON_BATCH_STRATEGY_PATH")) {
  batch_libpath = model_config.parameters()
                      .at("TRITON_BATCH_STRATEGY_PATH")
                      .string_value();
  bool exists = false;
  RETURN_IF_ERROR(FileExists(batch_libpath, &exists));
  if (!exists) {
    return Status(
        triton::common::Error::Code::NOT_FOUND,
        ("Batching library path not found: " + batch_libpath).c_str());
  }
}

उल्लेखनीय रूप से, IsChildPathEscapingParentPath का कोई कॉल मौजूद नहीं है, जिसे Triton उसी फ़ाइल में अन्यत्र लेबल पथों और बैकेंड लाइब्रेरी पथों पर पहले से लागू कर चुका है।

src/backend_model.cc — SetBatchingStrategy इसे आगे भेजता है:

root@kitploit:~
Status TritonModel::SetBatchingStrategy(const std::string& batch_libpath)
{
  std::unique_ptr<SharedLibrary> slib;
  RETURN_IF_ERROR(SharedLibrary::Acquire(&slib));
  RETURN_IF_ERROR(slib->OpenLibraryHandle(batch_libpath, &batch_dlhandle_));

src/shared_library.cc — सिंक:

root@kitploit:~
*handle = dlopen(path.c_str(), RTLD_NOW | RTLD_LOCAL);

पहुँच-योग्यता

model_config.parameters() को नियंत्रित करने के तीन व्यावहारिक रास्ते:

  1. मल्टी-टेनेंट मॉडल रिपॉज़िटरी। जो टेनेंट अपने मॉडल के config.pbtxt का स्वामी है, वह अपनी निर्देशिका में एक .so रखता है और पैरामीटर को उसकी ओर इंगित करता है। पेलोड सर्वर के विशेषाधिकारों के साथ चलता है, जिससे हर दूसरे टेनेंट के वेट्स, रहस्य और GPU तक पहुँच मिल जाती है।
  2. फ़ाइल-ओवरराइड API। TRITONSERVER_ServerLoadModelWithParameters, दस्तावेजित file:<rel-path> पैरामीटर उपसर्ग के साथ मिलकर, मॉडल-लोड अधिकार वाले किसी कॉलर को एक ही अनुरोध में config.pbtxt और .so प्रस्तुत करके लोड को तुरंत ट्रिगर करने देता है। API के बाहर किसी फाइलसिस्टम पहुँच की आवश्यकता नहीं है।
  3. समझौता किया गया मॉडल-स्टोर मिरर। S3, GCS, Azure Blob या NGC मिरर जिन्हें मॉडल आर्टिफैक्ट्स के लिए आधिकारिक माना जाता है। मिरर को नियंत्रित करने वाला व्यक्ति दोनों फ़ाइलें पहुँचाता है; Triton उन्हें माँग पर लाता है और dlopen करता है।

प्रमाण-सहित अवधारणा

poc/ में प्रिमिटिव मौजूद है, जो OpenLibraryHandle के कार्य तक सीमित है। केवल सोर्स — उन्हें स्वयं बनाएँ:

root@kitploit:~
$ cd poc && ./build.sh
$ gcc -O0 -o test_dlopen test_dlopen.c -ldl
$ ./test_dlopen ./evil.so
dlopen OK, handle=0x55d1779652c0
$ cat /tmp/triton_dlopen_rce_proof.log
[triton-dlopen-rce] constructor fired @ Fri May  1 09:56:56 2026
  pid=240157  uid=1000  euid=1000  cwd=/opt/poc

पेलोड निष्क्रिय है: यह pid, uid, euid और cwd रिकॉर्ड करने वाली एक पंक्ति जोड़ता है। Debian 13, GCC 14.2, x86_64 पर सत्यापित किया गया।

Triton-पक्ष ट्रिगर के लिए, निर्मित evil.so को मॉडल रिपॉज़िटरी में poc/config.pbtxt के बगल में रखें और मॉडल लोड करें — ऑटो-लोड, --load-model, या POST /v2/repository/models/evil_model/load। प्रभावित संस्करण पर कंस्ट्रक्टर किसी भी बैकेंड प्रतीक लुकअप से पहले, SetBatchingStrategy के दौरान फायर होता है।

पता लगाना

लोड को Triton स्वयं INFO स्तर पर लॉग करता है:

root@kitploit:~
Loading custom batching strategy library <path> for model <name>

सुधारित बिल्ड पर, अस्वीकृत प्रयास Batching library path escapes model repository. के रूप में सामने आता है।

कोई भी TRITON_BATCH_STRATEGY_PATH मान जो निरपेक्ष है, .. रखता है, या मॉडल निर्देशिका के बाहर हल होता है, संस्करण की परवाह किए बिना अलर्ट के योग्य है। लॉग लाइन और कॉन्फ़िग पैरामीटर दोनों को कवर करने वाला एक Sigma नियम detection/ में है।

पूरक संकेत:

  • ऐसी config.pbtxt फ़ाइलें जिनमें TRITON_BATCH_STRATEGY_PATH पैरामीटर मौजूद है — यह सुविधा व्यवहार में दुर्लभ है, इसलिए अकेली उपस्थिति ही एक उपयोगी फ़िल्टर है।
  • मॉडल रिपॉज़िटरी के अंदर दिखाई देने वाली शेयर्ड ऑब्जेक्ट्स जो बैकेंड आर्टिफैक्ट नहीं हैं।
  • tritonserver प्रक्रिया द्वारा मॉडल रूट के बाहर किसी .so का openat/mmap (auditd, eBPF, या Falco)।

शमन

Triton Inference Server 26.06 या उसके बाद के संस्करण में अपग्रेड करें। यह सुधार वह कंटेनमेंट जाँच जोड़ता है जो लोडर में अनुपस्थित थी:

root@kitploit:~
bool escapes{true};
RETURN_IF_ERROR(IsChildPathEscapingParentPath(
    batch_libpath, localized_model_dir->Path(), &escapes));
if (escapes) {
  return Status(
      Status::Code::INVALID_ARG,
      "Batching library path escapes model repository.");
}

जहाँ अपग्रेड तुरंत संभव न हो, वहाँ प्रतिपूरक नियंत्रण:

  • हर config.pbtxt से, मॉडल रिपॉज़िटरी तक पहुँचने से पहले, TRITON_BATCH_STRATEGY_PATH को अस्वीकार या हटा दें।
  • मॉडल रिपॉज़िटरी को एक विश्वास सीमा (trust boundary) मानें: कोई अविश्वसनीय पक्ष उसमें न लिखे, और दूरस्थ मिरर सिंक से पहले अखंडता-सत्यापित किए जाएँ।
  • फ़ाइल-ओवरराइड लोड पथ को अक्षम करें (--model-control-mode को explicit के अलावा रखकर, या रिपॉज़िटरी एंडपॉइंट्स पर प्राधिकरण लागू करके) जब तक कि इसकी आवश्यकता न हो।
  • tritonserver को एक अन-विशेषाधिकृत उपयोगकर्ता के रूप में, रीड-ओनली मॉडल रिपॉज़िटरी माउंट के साथ चलाएँ, ताकि सफल लोड का विस्फोट दायरा (blast radius) न्यूनतम संभव रहे।
  • लोड से पहले मॉडल आर्टिफैक्ट्स पर हैश या सिग्नेचर सत्यापित करें।

मैपिंग: MITRE ATT&CK T1574.006 निष्पादन प्रवाह अपहरण: डायनामिक लिंकर अपहरण और T1129 साझा मॉड्यूल; NIST SP 800-53r5 SI-7, CM-5, SC-18; CIS Controls v8 §2, §4।

समयरेखा

संदर्भ

  • NVIDIA सुरक्षा बुलेटिन 5865 — https://github.com/NVIDIA/product-security/blob/main/2026/5865/5865.md
  • CVE अभिलेख — https://github.com/NVIDIA/product-security/blob/main/2026/5865/CVE-2026-47630.json
  • triton-inference-server/core — https://github.com/triton-inference-server/core
  • NVIDIA उत्पाद सुरक्षा — https://www.nvidia.com/security/

लाइसेंस

MIT — LICENSE देखें।

टूल डाउनलोड करें
CVECVE-2026-47630
NVIDIA बुलेटिन5865 (2026-08-18)
CWECWE-36 (निरपेक्ष पथ ट्रैवर्सल); CWE-114 / CWE-829 के रूप में रिपोर्ट किया गया
CVSS v3.1 (NVIDIA)5.5 MEDIUM — AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
प्रभावित संस्करणTriton Inference Server 0.0 – 26.05 (Linux)
सुधार संस्करण26.06
रिपोर्टकर्ताs1ko (github.com/s1ko, [email protected])
विक्रेता ट्रैकिंगNVIDIA PSIRT टिकट 6139742
दिनांकघटना
2026-04-25प्राथमिक Triton पथ-प्रबंधन निष्कर्ष रिपोर्ट किया गया; NVIDIA PSIRT टिकट 6128799 खोलता है
2026-05-01यह द्वितीयक निष्कर्ष पुष्टि कर रिपोर्ट किया गया; PSIRT टिकट 6139742 खोलता है
2026-05-28PSIRT के साथ समन्वित प्रकटीकरण की अनुसूची पर सहमति बनी
2026-06सुधार Triton Inference Server 26.06 के साथ जारी हुआ
2026-08-18NVIDIA बुलेटिन 5865 प्रकाशित करता है, CVE-2026-47630 निर्धारित करता है और s1ko को श्रेय देता है
2026-08-22यह लेख प्रकाशित हुआ