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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-31431 — सीवीई-2026-31431 (Copy Fail) की एक संरचित व्याख्या, जो उन तीन कर्नेल परिवर्तनों को जोड़ती है जिन्होंने भेद्यता को पेश किया और इसके शोषण को सक्षम बनाया। | Kitploit
उपकरण/GitHubGitHub/themalwareguardian/cve-2026-31431
विशेषाधिकार वृद्धिभेद्यता विश्लेषणशोषणपेपर और शोधलर्निंग और शिक्षाकंटेनर एस्केपबाइनरी शोषण
GitHubthemalwareguardian/cve-2026-31431

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

सभी देखें →

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

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

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

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

CVE-2026-31431

सीवीई-2026-31431 (Copy Fail) की एक संरचित व्याख्या, जो उन तीन कर्नेल परिवर्तनों को जोड़ती है जिन्होंने भेद्यता को पेश किया और इसके शोषण को सक्षम बनाया।

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

🐞 CVE-2026-31431 - कॉपी फेल



authencesn में एक तर्क दोष, जो AF_ALG और splice() के माध्यम से सिस्टम पर किसी भी पठनीय फ़ाइल के पेज कैश में नियंत्रित 4-बाइट लेखन में जुड़ जाता है। न कोई रेस कंडीशन, न ऑफसेट, न संकलित पेलोड। यही 732-बाइट स्क्रिप्ट 2017 से हर Linux वितरण पर रूट प्राप्त करती है।




📑 विषय-सूची

  • अवलोकन
  • मूल कारण विश्लेषण
    📂
    • AF_ALG + splice() प्रिमिटिव
    • 2017 इन-प्लेस ऑप्टिमाइज़ेशन
    • authencesn में आउट-ऑफ-बाउंड लेखन
    • तीन हानिरहित परिवर्तन → एक गंभीर बग
    • स्कैटरलिस्ट को पेज कैश पेजों में ट्रैवर्स करना

  • प्रभाव
  • प्रभावित वितरण
  • सत्यापन - क्या मैं प्रभावित हूँ?

  • एक्सप्लॉइट
  • एक्सप्लॉइट वॉकथ्रू
    📂
    • चरण 1 - सॉकेट सेटअप
    • चरण 2 - लेखन का निर्माण
    • चरण 3 - पेज कैश लेखन ट्रिगर करें
    • चरण 4 - निष्पादित करें

  • Dirty Cow / Dirty Pipe से तुलना

  • समाधान
  • प्रकटीकरण
  • संदर्भ



🔍 अवलोकन

CVE-2026-31431 - Copy Fail Linux कर्नेल के authencesn क्रिप्टोग्राफ़िक टेम्पलेट में एक तर्क दोष है। यह एक अविशेषित स्थानीय उपयोगकर्ता को सिस्टम पर किसी भी पठनीय फ़ाइल के पेज कैश में नियंत्रित 4-बाइट लेखन करने की अनुमति देता है, बिना फ़ाइल को डिस्क पर संशोधित किए।

बग तीनों घटकों में से किसी में व्यक्तिगत रूप से मौजूद नहीं है। यह उनके परस्पर संपर्क से उत्पन्न होता है:``` 2011 ────────────────────────────────────────────────────────────────────── - authencesn added to the kernel (a5079d084f8b). - Uses the caller's destination scatterlist as scratch space. - Reorder ESN bytes before HMAC computation. - Only caller: internal xfrm layer. Harmless.

2015 ────────────────────────────────────────────────────────────────────── - algif_aead.c gains AEAD support with splice() path (104880a6b470). - splice() can deliver page cache pages to the TX scatterlist. - AF_ALG uses out-of-place operation: req->src != req->dst. - Page cache pages remain read-only. Not exploitable.

2017 ────────────────────────────────────────────────────────────────────── - In-place optimization in algif_aead.c (72548b093ee3). - Copies AAD+CT to RX buffer but chains authentication tag pages via sg_chain(). - Sets req->src = req->dst. - Page cache pages now reside in WRITABLE dst. - authencesn writes past boundary → page cache corruption.

2026 ────────────────────────────────────────────────────────────────────── - Copy Fail - CVE-2026-31431. Discovered by Theori / Xint Code. - Exploitable across all distros since 2017.

---
---
---



<div id='root-cause'/>

## ***🧬 मूल कारण विश्लेषण (Root Cause Analysis)***

<div id='primitive'/>

### ***AF_ALG + splice() प्रिमिटिव***

AF_ALG (*[AF_ALG = 38](https://docs.kernel.org/crypto/userspace-if.html#user-space-api-general-remarks)*) एक सॉकेट प्रकार है जो कर्नेल क्रिप्टोग्राफिक API को अविशेषाधिकार प्राप्त यूज़रस्पेस के लिए उजागर करता है। एक अविशेषाधिकार प्राप्त प्रक्रिया यह कर सकती है:

1. AF_ALG / SOCK_SEQPACKET सॉकेट खोलना।
2. कर्नेल क्रिप्टो API द्वारा उजागर किसी भी उपलब्ध AEAD टेम्पलेट पर bind() करना।
3. कॉन्फ़िगर किए गए एल्गोरिथ्म पर setsockopt(SOL_ALG, ALG_SET_KEY, ...) के माध्यम से एक क्रिप्टोग्राफिक कुंजी सेट करना।
4. एक समर्पित ऑपरेशन सॉकेट प्राप्त करने के लिए accept() को कॉल करना जो एन्क्रिप्शन और डिक्रिप्शन अनुरोधों को संभालेगा।
5. sendmsg() का उपयोग करके क्राफ्ट किया गया डेटा भेजना और recvmsg() के माध्यम से संसाधित परिणाम प्राप्त करना, जिससे कर्नेल क्रिप्टो सबसिस्टम के साथ पूरी तरह से इंटरैक्ट किया जा सके।

यह सभी प्रमुख वितरणों के कर्नेल कॉन्फ़िगरेशन में डिफ़ॉल्ट रूप से सक्षम है (CONFIG_CRYPTO_USER_API_AEAD=y)।

**[splice(2)](https://man7.org/linux/man-pages/man2/splice.2.html)** बिना कॉपी किए फ़ाइल डिस्क्रिप्टरों के बीच डेटा स्थानांतरित करता है - यह पेजों के संदर्भ पास करता है, कॉपी नहीं। प्रासंगिक प्रवाह:```
open("/usr/bin/su")   ->  fd_file
pipe()                ->  pipe_rd, pipe_wr

# moves N bytes from the file into the pipe
# the pipe buffer now contains a reference to the same physical page in the page cache
splice(fd_file, pipe_wr, N)

# delivers that reference to the AF_ALG socket
# the TX scatterlist of algif_aead now points to the page cache page of /usr/bin/su
splice(pipe_rd, alg_fd, N)

AF_ALG सॉकेट का TX scatterlist फ़ाइल के प्रत्येक read(), mmap(), और execve() के लिए कर्नेल द्वारा उपयोग किए गए उन्हीं भौतिक पृष्ठों के प्रत्यक्ष संदर्भ रखता है। इसमें कोई प्रतिलिपि शामिल नहीं है।


2017 का इन-प्लेस अनुकूलन

कमिट 72548b093ee3, algif_aead.c। डिक्रिप्शन के लिए, कार्यान्वयन:

  1. AAD और सिफरटेक्स्ट को TX SGL (स्रोत) से RX बफर (गंतव्य) में कॉपी करता है - एक वास्तविक प्रतिलिपि।
  2. sg_chain() के माध्यम से प्रमाणीकरण टैग पृष्ठों को श्रृंखलाबद्ध करता है, RX SGL में पेज कैश संदर्भ रखते हुए।
  3. req->src = req->dst सेट करता है, दोनों संयुक्त RX SGL की ओर इंगित करते हैं।``` TX SGL (input from splice): [ page cache page: AAD || CT || Tag ]

In-place operation: RX SGL (req->dst): [ user buffer: AAD (copy) || CT (copy) ] --sg_chain--> [ Tag (page cache pages) ] req->src = req->dst = RX SGL

Result: page cache pages from /usr/bin/su are now part of the WRITABLE scatterlist passed to the crypto algorithm.

<div id='authencesn'/>

### ***authencesn में आउट-ऑफ-बाउंड लेखन***

authencesn kernel AEAD wrapper है जिसका उपयोग IPsec Extended Sequence Numbers (RFC 4303) के साथ करता है। IPsec 64-बिट अनुक्रम संख्याओं का उपयोग करता है:

- seqno_hi - ऊपरी 32 बिट (AAD के बाइट 0-3)
- seqno_lo - निचले 32 बिट (AAD के बाइट 4-7)

केवल seqno_lo वायर पर प्रेषित होता है; seqno_hi अंतर्निहित संदर्भ है। HMAC गणना के लिए, authencesn को इन बाइट्स को पुनर्व्यवस्थित करने की आवश्यकता होती है: हैश इनपुट की शुरुआत में seqno_hi और अंत में seqno_lo।

यह पुनर्व्यवस्था caller के destination scatterlist को scratch space के रूप में उपयोग करके करता है:```c
/* crypto/authencesn.c - crypto_authenc_esn_decrypt() */

// [1] Read bytes 0-7 of the AAD from dst
scatterwalk_map_and_copy(tmp, dst, 0, 8, 0);
टूल डाउनलोड करें