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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-31431-Copy-Fail---Vulnerability-Detection-Script — CVE-2026-31431 (कॉपी फेल) के लिए डिटेक्शन स्क्रिप्ट जो कर्नेल संस्करण, पैच की उपस्थिति, कर्नेल कॉन्फ़िगरेशन, AF_ALG सॉकेट उपलब्धता, setuid बाइनरी और मिटिगेशन की जाँच करके Linux सिस्टम पर भेद्यता स्थिति निर्धारित करती है। | Kitploit
उपकरण/GitHubGitHub/liamromanis101/cve-2026-31431-copy-fail---vulnerability-detection-script
क्लाउड इन्फ्रास्ट्रक्चर सुरक्षाभेद्यता स्कैनरकंटेनर सुरक्षाभेद्यता विश्लेषणकॉन्फ़िगरेशन ऑडिटिंगDevSecOpsघुसपैठ का पता लगानाघटना प्रतिक्रिया
GitHub
liamromanis101/cve-2026-31431-copy-fail---vulnerability-detection-script

CVE-2026-31431-Copy-Fail---Vulnerability-Detection-Script

CVE-2026-31431 (कॉपी फेल) के लिए डिटेक्शन स्क्रिप्ट जो कर्नेल संस्करण, पैच की उपस्थिति, कर्नेल कॉन्फ़िगरेशन, AF_ALG सॉकेट उपलब्धता, setuid बाइनरी और मिटिगेशन की जाँच करके Linux सिस्टम पर भेद्यता स्थिति निर्धारित करती है।

रिपॉजिटरी देखें
2523 महीने पहलेKitploit द्वारा समीक्षित

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

सभी देखें →

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

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

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

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

CVE-2026-31431 — कॉपी फेल — भेद्यता पहचान स्क्रिप्ट

केवल पहचान। एक कार्यशील PoC पहले से मौजूद है copy.fail/#exploit पर। यह स्क्रिप्ट सिस्टम एडमिन और सुरक्षा टीमों के लिए है ताकि वे निर्धारित कर सकें कि वे कहाँ भेद्य हैं — या पैचिंग के बाद भी भेद्य हैं।


यह किस बारे में है?

29 अप्रैल 2026 को, कॉपी फेल (CVE-2026-31431) नामक एक भेद्यता को Xint कोड रिसर्च टीम द्वारा सार्वजनिक रूप से प्रकट किया गया था। यह एक लॉजिक बग है जो लगभग 2017 से लिनक्स कर्नेल में चुपचाप मौजूद है — लगभग एक दशक — और यह किसी भी अनप्रिविलेज्ड स्थानीय उपयोगकर्ता को रूट प्राप्त करने देता है।

"विशिष्ट परिस्थितियों में कुछ भाग्य और अच्छी हवा के साथ रूट प्राप्त करना" नहीं। बस... रूट प्राप्त करना। विश्वसनीय रूप से। अनिवार्य रूप से हर प्रमुख लिनक्स वितरण पर।

यह Ubuntu, Amazon Linux, RHEL, SUSE, और पिछले ~8 वर्षों से मुख्यधारा कर्नेल चलाने वाली किसी भी अन्य चीज़ को प्रभावित करता है। एक ही स्क्रिप्ट, कोई पुनर्संकलन नहीं, कोई प्रति-वितरण ट्वीक आवश्यक नहीं।

हाँ, यह उतना ही बुरा है जितना लगता है।

यह कैसे काम करता है इसका संक्षिप्त संस्करण

लिनक्स कर्नेल में एक क्रिप्टो सबसिस्टम है जो AF_ALG सॉकेट के माध्यम से अनप्रिविलेज्ड उपयोगकर्ताओं के लिए सुलभ है। splice() नामक एक तंत्र है जो फ़ाइल डेटा को कॉपी किए बिना सीधे उस सबसिस्टम में फीड कर सकता है — जिसका अर्थ है कि फ़ाइल की कर्नेल की इन-मेमोरी कैश्ड कॉपी ("पेज कैश") एक क्रिप्टोग्राफ़िक ऑपरेशन के अंदर समाप्त हो जाती है।

एक विशिष्ट एल्गोरिथ्म — authencesn, जो IPsec एक्सटेंडेड सीक्वेंस नंबरों के लिए उपयोग किया जाता है — में एक विचित्रता है जहाँ यह आउटपुट बफर को स्क्रैच स्पेस के रूप में उपयोग करता है और 4 बाइट्स उस स्थान से थोड़ा आगे लिखता है जहाँ इसे लिखना चाहिए। सामान्य रूप से हानिरहित। लेकिन जब /usr/bin/su जैसे setuid बाइनरी के पेज कैश पेज उस आउटपुट बफर में चेन हो जाते हैं (algif_aead.c में 2017 के "अनुकूलन" के कारण), वे 4 बाइट्स सीधे बाइनरी की कर्नेल की कैश्ड कॉपी में पहुँच जाते हैं।

ऑपरेशन एक त्रुटि के साथ विफल हो जाता है। कर्नेल उस पेज को कभी गंदा (dirty) के रूप में चिह्नित नहीं करता। डिस्क पर फ़ाइल अछूती रहती है। डिस्क पर चेकसम की जाँच करने वाले फ़ाइल अखंडता उपकरण कुछ भी गलत नहीं देखते।

लेकिन पेज कैश ही वह है जो निष्पादित होता है। और su setuid रूट है।

पूर्ण तकनीकी लेखन xint.io पर है और वास्तव में पढ़ने योग्य है।


स्क्रिप्ट्स क्या जाँचती हैं

पायथन स्क्रिप्ट — 13 जाँचें

मूल रिलीज़ से सात साथ ही पहचान अंतराल को बंद करने के लिए छह नई जाँचें:

#जाँचयह क्या देखती है
1कर्नेल संस्करणक्या यह कर्नेल प्रभावित सीमा (4.10–6.14) में है?
2पैच उपस्थितिक्या फिक्स कमिट वास्तव में आपके चल रहे कर्नेल में है?
3algif_aead मॉड्यूलक्या भेद्य मॉड्यूल लोड है या लोड करने योग्य है?
4CONFIG_CRYPTO_AUTHENC (नया)क्या CONFIG_CRYPTO_AUTHENC बिल्ट-इन (=y) है या मॉड्यूल (=m)? यह एकल विकल्प authenc और authencesn दोनों बनाता है। बिल्ट-इन का अर्थ है कि modprobe ब्लैकलिस्ट शमन कुछ नहीं करता।
5CONFIG_CRYPTO_USER_API_AEAD (नया)क्या AF_ALG AEAD यूज़रस्पेस इंटरफ़ेस भी संकलित है? यदि नहीं, तो पूरा एक्सप्लॉइट पथ संकलन समय पर बंद है।
6AF_ALG सॉकेटक्या एक अनप्रिविलेज्ड उपयोगकर्ता अभी एक खोल सकता है?
7पायथन os.spliceक्या शुद्ध-पायथन एक्सप्लॉइट पथ उपलब्ध है?
8Setuid बाइनरीज़सिस्टम पर मौजूद पठनीय setuid-रूट लक्ष्यों की विस्तारित सूची।
9शमनAppArmor, SELinux, seccomp — क्या मौजूद है?
10यूज़र नेमस्पेस (नया)क्या अनप्रिविलेज्ड यूज़र नेमस्पेस सक्षम हैं? (कॉपी फेल को सीधे ब्लॉक नहीं करता, लेकिन व्यापक स्थानीय privesc सतह को प्रभावित करता है।)
11ट्रांसपेरेंट ह्यूजपेज (नया)THP स्थिति — पेज कैश संरेखण और एक्सप्लॉइट विश्वसनीयता को प्रभावित कर सकती है।
12पर्यावरण पहचान (नया)Docker/कंटेनर/VM संदर्भ — कंटेनर होस्ट कर्नेल साझा करते हैं; होस्ट को पैच करने की आवश्यकता है।
13रूट-उपयोगकर्ता चेतावनी (नया)रूट के रूप में चलने पर चेतावनी देता है, क्योंकि कई जाँचें अनप्रिविलेज्ड प्रतिबंधों की परवाह किए बिना रूट के लिए गलत सकारात्मक देती हैं।

शेल स्क्रिप्ट — 10 जाँचें

Bash स्क्रिप्ट समान मूल पहचान तर्क को कवर करती है लेकिन तीन पायथन-विशिष्ट आइटम छोड़ देती है:

#जाँचनोट्स
1कर्नेल संस्करण
2पैच उपस्थिति
3algif_aead मॉड्यूल
4AF_ALG सॉकेटउपलब्ध होने पर पायथन को सहायक के रूप में उपयोग करता है; अन्यथा कर्नेल कॉन्फ़िग अनुमान पर वापस जाता है
5Setuid बाइनरीज़विस्तारित सूची, पायथन संस्करण के समान
6शमनAppArmor, SELinux, seccomp
7CONFIG_CRYPTO_AUTHENC
8यूज़र नेमस्पेस
9ट्रांसपेरेंट ह्यूजपेज
10पर्यावरण पहचान

शेल स्क्रिप्ट में मौजूद नहीं (पायथन की तुलना में):

लापता जाँचकारण
CONFIG_CRYPTO_USER_API_AEADअभी तक लागू नहीं — योजनाबद्ध
पायथन os.splice उपलब्धताशेल स्क्रिप्ट के लिए लागू नहीं
रूट-उपयोगकर्ता चेतावनीअभी तक लागू नहीं — योजनाबद्ध

कोई भी स्क्रिप्ट कुछ भी ठीक नहीं करेगी या एक्सप्लॉइट नहीं करेगी। वे आपको आपके सिस्टम के बारे में सच बताती हैं ताकि आप उस पर कार्य कर सकें।


आवश्यकताएँ

  • पायथन 3.6+
  • कोई बाहरी निर्भरता नहीं — केवल stdlib
  • कोई रूट आवश्यक नहीं (जानबूझकर — हम जाँचते हैं कि एक अनप्रिविलेज्ड हमलावर क्या देख सकता है)
  • अनुशंसित: गैर-रूट उपयोगकर्ता के रूप में चलाएँ — कुछ जाँचें (AF_ALG सॉकेट, setuid stat) रूट के लिए हमेशा सफल होती हैं और गलत सकारात्मक रिपोर्ट करेंगी

उपयोग

root@kitploit:~
# स्क्रिप्ट को क्लोन या डाउनलोड करें, फिर:
python3 cve-2026-31431-detect.py

बस इतना ही। अंत में सारांश के साथ रंग-कोडित रिपोर्ट।

एग्ज़िट कोड

स्क्रिप्ट भेद्य निष्कर्षों पर गैर-शून्य कोड के साथ बाहर निकलती है, जिससे यह पाइपलाइन उपयोग के लिए उपयुक्त हो जाती है:

कोडअर्थ
0कोई भेद्य स्थिति नहीं मिली
1एक या अधिक भेद्य स्थितियाँ मिलीं
root@kitploit:~
# उदाहरण: होस्ट भेद्य होने पर CI चरण को विफल करें
python3 cve-2026-31431-detect.py
rc=$?
if [ $rc -eq 1 ]; then
  echo "VULNERABLE — block deployment"
elif [ $rc -ne 0 ]; then
  echo "ERROR — script failed to complete (exit $rc)"
fi

उदाहरण आउटपुट

root@kitploit:~
CVE-2026-31431 'Copy Fail' — Vulnerability Detection
authencesn page cache corruption / local privilege escalation
Running as uid=1001, euid=1001

=== Kernel Version ===
  [VULNERABLE] Kernel version
          Reason : Kernel is in the vulnerable range (4.10 – 6.14)
          Detail : Release: 6.12.0-124.45.1.el10_1 — patch status must be confirmed

=== CONFIG_CRYPTO_AUTHENC (Kernel Config) ===
  [VULNERABLE] CONFIG_CRYPTO_AUTHENC
          Reason : Built as module (=m): auto-loads on AF_ALG bind(); modprobe blacklist is the correct mitigation

=== CONFIG_CRYPTO_USER_API_AEAD (Kernel Config) ===
  [VULNERABLE] CONFIG_CRYPTO_USER_API_AEAD
          Reason : AF_ALG AEAD interface is a loadable module — unprivileged users can access the crypto subsystem via AF_ALG sockets

...

  SYSTEM IS LIKELY VULNERABLE TO CVE-2026-31431

  Recommended actions:
    1. Apply your distribution's kernel update for CVE-2026-31431
    2. Until patched, blacklist the module:
         echo 'install algif_aead /bin/false' > /etc/modprobe.d/disable-algif-aead.conf
         rmmod algif_aead 2>/dev/null
       NOTE: this is ONLY effective when CONFIG_CRYPTO_AUTHENC=m (module).
       If CONFIG_CRYPTO_AUTHENC=y (built-in), patching is the only fix.

शेल संस्करण (DevSecOps पाइपलाइनों के लिए)

एक साथी Bash स्क्रिप्ट (cve-2026-31431-detect.sh) उन वातावरणों के लिए उपलब्ध है जहाँ पायथन मौजूद नहीं है या जहाँ शेल-नेटिव टूलिंग पसंद की जाती है। यह 13 में से 10 जाँचें करती है — क्या भिन्न है इसके विवरण के लिए ऊपर जाँच तुलना तालिका देखें।

root@kitploit:~
# मूल रन
bash cve-2026-31431-detect.sh

# JSON आउटपुट — SIEM अंतर्ग्रहण, Ansible फैक्ट्स, लॉग एकत्रीकरण के लिए उपयुक्त
bash cve-2026-31431-detect.sh --json > scan-results.json

# शांत मोड — केवल सारांश प्रिंट करें (CI लॉग में उपयोगी)
bash cve-2026-31431-detect.sh --quiet

# ANSI रंग अक्षम करें (लॉग फ़ाइलों के लिए)
bash cve-2026-31431-detect.sh --no-colour

शेल स्क्रिप्ट समान एग्ज़िट कोड (0 = OK, 1 = भेद्य) का उपयोग करती है और पाइपलाइन उपभोग के लिए समतुल्य JSON आउटपुट उत्पन्न करती है। जहाँ सिस्टम पर पायथन 3 उपलब्ध है, शेल स्क्रिप्ट लाइव AF_ALG सॉकेट परीक्षण करने के लिए इसका उपयोग करती है; अन्यथा यह कर्नेल कॉन्फ़िग अनुमान पर वापस जाती है।


इसे ठीक करना

असली फिक्स आपके कर्नेल को पैच करना है। अपने वितरण के सुरक्षा परामर्शों की जाँच करें।

वितरणकहाँ देखें
Ubuntuubuntu.com/security/CVE-2026-31431
RHEL / Amazon Linuxdnf update kernel
SUSEzypper update kernel-default
Debianapt update && apt upgrade

अस्थायी शमन (केवल मॉड्यूल बिल्ड)

यदि CONFIG_CRYPTO_AUTHENC जाँच =m (मॉड्यूल के रूप में बनाया गया, बिल्ट-इन नहीं) रिपोर्ट करती है, तो आप इसे ब्लैकलिस्ट कर सकते हैं:

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

महत्वपूर्ण: यदि CONFIG_CRYPTO_AUTHENC=y (बिल्ट-इन) है तो इस शमन का कोई प्रभाव नहीं है। उस स्थिति में, कर्नेल को पैच करना ही एकमात्र फिक्स है। स्क्रिप्ट में CONFIG_CRYPTO_AUTHENC जाँच आपको बताती है कि आप किस स्थिति में हैं। ध्यान दें कि CONFIG_CRYPTO_AUTHENC सही कर्नेल कॉन्फ़िग कुंजी है — यह एक ही विकल्प से authenc और authencesn दोनों मॉड्यूल बनाता है।

यदि आप IPsec का उपयोग कर रहे हैं तो यह इसे प्रभावित कर सकता है — फ्लीट-व्यापी तैनाती से पहले सत्यापित करें।

अपस्ट्रीम फिक्स

अपस्ट्रीम फिक्स यह कमिट है — यह algif_aead.c में 2017 के इन-प्लेस AEAD अनुकूलन को वापस लेता है, स्रोत और गंतव्य स्कैटरलिस्ट को अलग करता है ताकि पेज कैश पेज अब लिखने योग्य गंतव्य में समाप्त न हो सकें।


कंटेनर और VM

यदि आप इसे Docker कंटेनर, Kubernetes पॉड, या अन्य कंटेनर वातावरण के अंदर चला रहे हैं, तो स्क्रिप्ट आपको चेतावनी देगी: कंटेनर होस्ट कर्नेल साझा करते हैं। भेद्यता कर्नेल में है, कंटेनर छवि में नहीं। आपको होस्ट का आकलन और पैच करना चाहिए।


DevSecOps एकीकरण उदाहरण

root@kitploit:~
# GitHub Actions
# The step will naturally fail and block the pipeline when the script exits 1.
# No extra configuration needed — non-zero exit codes fail steps by default.
- name: Check CVE-2026-31431
  run: |
    python3 cve-2026-31431-detect.py
    rc=$?
    if [ $rc -eq 1 ]; then
      echo "VULNERABLE — pipeline blocked"
      exit 1
    elif [ $rc -ne 0 ]; then
      echo "ERROR — detection script failed to complete (exit $rc)"
      exit $rc
    fi
root@kitploit:~
# Ansible
# Uses playbook_dir to ensure the script path resolves correctly.
# failed_when checks for any non-zero exit (vulnerability OR script error).
- name: Check for CVE-2026-31431
  script: "{{ playbook_dir }}/cve-2026-31431-detect.py"
  register: cve_check
  failed_when: cve_check.rc != 0
root@kitploit:~
# Nagios / monitoring check (shell script — supports exit codes natively)
bash cve-2026-31431-detect.sh --quiet
# exit 0 = OK, exit 1 = CRITICAL (vulnerable)
root@kitploit:~
# JSON output for SIEM / log aggregation (shell script)
bash cve-2026-31431-detect.sh --json --quiet > /var/log/cve-2026-31431-$(hostname)-$(date +%Y%m%d).json

प्रकटीकरण समयरेखा

तिथिघटना
2026-03-23लिनक्स कर्नेल सुरक्षा टीम को रिपोर्ट किया गया
2026-03-24स्वीकार किया गया
2026-03-25पैच प्रस्तावित और समीक्षित किए गए
2026-04-01मुख्यधारा कर्नेल में फिक्स प्रतिबद्ध
2026-04-22CVE-2026-31431 आवंटित
2026-04-29सार्वजनिक प्रकटीकरण

मूल शोध अंतर्दृष्टि के लिए Theori में Taeyang Lee को श्रेय, और पूर्ण प्रकटीकरण लेखन के लिए Xint कोड रिसर्च टीम को।


योगदान

एक गलत सकारात्मक मिला? एक वितरण जो यह चूक जाता है? एक कर्नेल कॉन्फ़िग जिसे जाँचा जाना चाहिए? PR स्वागत योग्य हैं। लक्ष्य सटीक संकेत है, केवल डरावना लाल पाठ नहीं।

अस्वीकरण

यह उपकरण रक्षात्मक सुरक्षा उद्देश्यों के लिए जैसा है वैसा प्रदान किया गया है। इसे उन सिस्टमों पर इंगित करें जिनका आकलन करने के लिए आप अधिकृत हैं। इसके बारे में अजीब मत बनो।

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