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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-31431 — 对 CVE-2026-31431 的复现分析、C 改编的 exp。 | Kitploit
उपकरण/GitHubGitHub/hulnothutu/cve-2026-31431
Privilege EscalationExploit FrameworksVulnerability AnalysisExploitationShellcodeLearning & EducationPayload DevelopmentContainer EscapeBinary Exploitation
GitHubhulnothutu/cve-2026-31431

CVE-2026-31431

对 CVE-2026-31431 的复现分析、C 改编的 exp。

3 महीने पहलेअभी तक समीक्षित नहीं

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें
रिपॉजिटरी देखें

CVE-2026-31431

संरचना

root@kitploit:~
.
├── container
│   ├── container.md  # कंटेनर से भागने की रणनीति
│   ├── expenv  # कंटेनर वातावरण
│   │   ├── bin
│   │   │   ├── gscontainer
│   │   │   └── share
│   │   ├── Dockerfile
│   │   ├── run.sh
│   │   └── src
│   │       ├── gscontainer.c
│   │       └── share.c
│   ├── images
│   │   ├── container.png
│   │   ├── getshell.png
│   │   ├── host.png
│   │   ├── payload.png
│   │   └── share.png
│   ├── recode.bin  # एकल-चरण का shellcode
│   └── stager
│       ├── shell.elf  # exp में एम्बेडेड चरणबद्ध shellcode 
│       ├── stager1.bin
│       ├── stager2.bin
│       ├── stager3.bin
│       └── stager4.bin
├── doc
│   ├── cve-2026-31431.md  #  xint.io विश्लेषण सारांश
│   └── shellcode.md  # shellcode क्या है इसका परिचय
├── exp.py # curl http://copy.fail/exp -o exp.py 
├── README.md
├── success
│   ├── code.py  # exp.py से निकाला गया shellcode 
│   └── exploit.c # C भाषा में संक्षिप्त exp, जिसमें मूल msf प्रिविलेज एस्केलेशन का shellcode है, जिसे AV-बचाव की आवश्यकता है
└── test
    ├── exptest.c # टिप्पणियाँ हटाई गईं
    └── test.c # सही और टिप्पणियों के साथ, समझने में आसान

तीन कमिट श्रृंखलाओं का अनपेक्षित संगम

तीन अलग-अलग हानिरहित कमिट, जो संयुक्त होने पर भेद्यता उत्पन्न करते हैं:

exp का शोषण प्रवाह

root@kitploit:~
splice(फ़ाइल → pipe → AF_ALG)
    ↓
af_alg_sendmsg: फ़ाइल पेज कैश → TX SGL (शून्य-कॉपी)
    ↓
_aead_recvmsg: in-place अनुकूलन
   ├─ memcpy_sglist: AAD+सिफरटेक्स्ट को RX SGL में कॉपी किया
   ├─ sg_chain: tag पृष्ठ (अभी भी फ़ाइल पेज कैश की ओर इशारा करता है) RX SGL में जोड़ा गया
   └─ req->src = req->dst (= फ़ाइल पेज कैश पृष्ठों वाला scatterlist)
    ↓
crypto_authenc_esn_decrypt: ESN पुनर्व्यवस्था
   └─ scatterwalk_map_and_copy(tmp+1, dst, assoclen+cryptlen, 4, 1)
      ↓ dst scatterlist में tag स्थान तक ट्रैवर्स करता है
      ↓ kmap_local_page() फ़ाइल पेज कैश पृष्ठ को मैप करता है
      ↓ memcpy: seqno_lo को फ़ाइल पेज कैश पृष्ठ में लिखता है
    ↓
HMAC सत्यापन विफल → -EBADMSG लौटाता है
    ↓
फ़ाइल पेज कैश पृष्ठ संशोधित हो चुका है, कर्नेल ने इसे गंदा (dirty) चिह्नित नहीं किया, डिस्क फ़ाइल अपरिवर्तित रहती है

CVE-2026-31431 प्रभाव क्षेत्र

पेपर का दावा है कि 2017 के बाद से "लगभग सभी Linux वितरण" प्रभावित हैं। पेज कैश कंटेनरों के बीच साझा होता है, इसलिए यह भेद्यता स्थानीय विशेषाधिकार वृद्धि (LPE) और कंटेनर पलायन वेक्टर दोनों है।

CVE-2026-31431 सुधार योजना

कर्नेल मेनलाइन का फिक्स कमिट a664bf3d603d AF_ALG AEAD ऑपरेशनों को out-of-place (src और dst को अलग करके) पर वापस ले जाता है:

root@kitploit:~
Before: aead_request_set_crypt(..., rsgl_src,
                                areq->first_rsgl.sgl.sgt.sgl, ...)
                                ^  src == dst  ^

After:  aead_request_set_crypt(..., tsgl_src,
                                areq->first_rsgl.sgl.sgt.sgl, ...)
                                ^  src ≠ dst  ^  (src के लिए TX SGL, dst के लिए RX SGL)

कमिट संदेश: "There is no benefit in operating in-place in algif_aead since the source and destination come from different mappings."

आपातकालीन शमन उपाय:

root@kitploit:~
echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif-aead.conf
rmmod algif_aead

या seccomp नीति के माध्यम से AF_ALG सॉकेट निर्माण (socket(AF_ALG, ...)) को प्रतिबंधित करें।


सारांश


संदर्भ

https://xint.io/blog/copy-fail-linux-distributions

https://github.com/0xShe/CVE-2026-31431

टूल डाउनलोड करें
समयकमिटप्रभाव
2011a5079d084f8bauthencesn जोड़ा गया, ESN पुनर्व्यवस्था के लिए dst scatterlist को अस्थायी स्थान के रूप में उपयोग करता है। उस समय हानिरहित—पुराने AEAD इंटरफ़ेस ने AAD को अलग रखा, और एकमात्र कॉलर कर्नेल xfrm था।
2015104880a6b470authencesn को नए AEAD इंटरफ़ेस में परिवर्तित किया गया, जिसमें assoclen+cryptlen पर seqno_lo लिखने का व्यवहार "आउटपुट सीमा पार करते हुए" शामिल किया गया। फिर भी शोषण योग्य नहीं—AF_ALG के out-of-place मोड के कारण, req->src और req->dst अलग थे, पेज कैश पृष्ठ केवल पढ़ने योग्य src में थे।
201772548b093ee3AF_ALG in-place अनुकूलन। AAD+सिफरटेक्स्ट को TX SGL से RX बफ़र में कॉपी किया, लेकिन tag पृष्ठ को sg_chain के माध्यम से जोड़ा गया। req->src = req->dst सेट किया गया। अब splice द्वारा लाए गए पेज कैश पृष्ठ एक साथ लिखने योग्य dst scatterlist में हैं। भेद्यता उत्पन्न होती है।
वितरणकर्नेल संस्करणप्रभावित
Ubuntu 24.04 LTS6.17.0-1007-awsहाँ
Amazon Linux 20236.18.8-9.213.amzn2023हाँ
RHEL 10.16.12.0-124.45.1.el10_1हाँ
SUSE 166.12.0-160000.9-defaultहाँ
विशेषतास्रोत सत्यापनविवरण
authencesn seqno_lo को अंत में लिखता हैauthencesn.c:134assoclen+cryptlen पर seqno_lo (निचले 32 बिट) लिखता है। उपयोगकर्ता का विवरण सही है।
ESN पुनर्व्यवस्था सम्मेलनब्लॉग पुष्टि (xint.io)AAD बाइट्स 0-3 = seqno_hi, बाइट्स 4-7 = seqno_lo। tmp[1] (=बाइट्स 4-7=seqno_lo) को अंत में लिखा जाता है।
डिक्रिप्शन पथ ओवरराइट किए गए बाइट्स को पुनर्स्थापित नहीं करताauthencesn.c:270-273 बनाम 215-217decrypt_tail ESN को ऑफसेट 0-7 पर पुनर्स्थापित करता है लेकिन assoclen+cryptlen पर मूल बाइट्स को कभी पुनर्स्थापित नहीं करता। एन्क्रिप्शन पथ (genicv_tail) ICV लिखने से पहले पुनर्स्थापित करता है।
AF_ALG in-place एन्क्रिप्शन/डिक्रिप्शनalgif_aead.c:189-252rsgl_src और areq->first_rsgl.sgl.sgt.sgl एक ही RX SGL को इंगित करते हैं।
AF_ALG tag चेनिंगalgif_aead.c:238-244डिक्रिप्शन के दौरान tag को कॉपी करने के बजाय sg_chain के माध्यम से संदर्भित किया जाता है—splice परिदृश्य में tag पृष्ठ अभी भी फ़ाइल पेज कैश को इंगित करता है। सुरक्षा भेद्यता का मूल कारण।
splice शून्य-कॉपी स्थानांतरणfs/splice.c:876, af_alg.c:1049, lib/scatterlist.c:1167सीधे pipe पृष्ठ को संदर्भित करता है, शून्य-कॉपी।
CVE-2026-31431तीन कमिट श्रृंखलाauthencesn(2011/2015) + in-place(2017) + splice शून्य-कॉपी = नियंत्रणीय पेज कैश लेखन प्राइमिटिव।