
सुरक्षित पहचान उपकरण CVE-2026-31431 "Copy Fail" और CVE-2026-43284 "Dirty Frag" के लिए — Linux कर्नेल के algif_aead मॉड्यूल में एक स्थानीय विशेषाधिकार वृद्धि जो 2017 से सभी प्रमुख वितरणों को प्रभावित कर रही है।
दो संबंधित Linux कर्नेल स्थानीय विशेषाधिकार वृद्धि भेद्यता परिवारों के लिए सुरक्षित पहचान उपकरण — Copy Fail (CVE-2026-31431) और Dirty Frag (CVE-2026-43284 / CVE-2026-43500) — दोनों 2017 से सभी प्रमुख वितरणों को प्रभावित कर रहे हैं, दोनों किसी भी अविशेषाधिकार प्राप्त स्थानीय उपयोगकर्ता द्वारा शोषणीय हैं, और दोनों को स्वतंत्र शमन की आवश्यकता है।
ये प्रोब कोई सॉकेट नहीं खोलते और कोई क्रिप्टो या नेटवर्क संचालन नहीं करते। पहचान पूरी तरह से कर्नेल संस्करण, डिस्ट्रो पैकेज मेटाडेटा, मॉड्यूल स्थिति, और सक्रिय शमन फ्लैग पर आधारित है — ये सभी
sudoके बिना विश्व-पठनीय हैं।
Copy Fail शमन लागू करने से Dirty Frag के विरुद्ध सुरक्षा नहीं मिलती। दोनों प्रोब चलाए जाने चाहिए और दोनों शमन स्वतंत्र रूप से लागू किए जाने चाहिए।
.
├── cve-2026-31431-check.sh Copy Fail प्रोब (सभी आउटपुट मोड)
├── copy_fail_userparameter.conf Zabbix एजेंट UserParameter — Copy Fail
├── zabbix_template_copy_fail.yaml Zabbix 6.4 टेम्पलेट — Copy Fail
├── copy_fail_auditd.rules auditd व्यवहारिक पहचान — Copy Fail
├── cve-2026-43284-check.sh Dirty Frag प्रोब (सभी आउटपुट मोड)
├── dirty_frag_userparameter.conf Zabbix एजेंट UserParameter — Dirty Frag
├── wazuh_sca/
│ └── copy_fail_sca.yml Wazuh SCA अनुपालन नीति
└── ansible/
└── copy_fall_scan.yml फ्लीट-व्यापी Ansible स्कैन प्लेबुक
शोषण को इस सटीक syscall श्रृंखला की आवश्यकता है:
socket(AF_ALG, SOCK_SEQPACKET, 0)
bind(fd, {alg_type="aead", alg_name="authencesn(hmac(sha256),cbc(aes))"})
accept(fd, ...)
splice(suid_binary_fd, op_fd) ← पेज कैश को क्रिप्टो सबसिस्टम में फीड किया जाता है
sendmsg / recvmsg ← 4-बाइट स्क्रैच राइट पेज कैश में लैंड होता है
इनमें से कोई भी प्रोब द्वारा स्पर्श नहीं किया जाता। पहचान इस पर आधारित है:
.ko (ऑटो-लोडेबल)modprobe.d ब्लैकलिस्ट और initcall_blacklist cmdline फ्लैगchmod +x cve-2026-31431-check.sh
./cve-2026-31431-check.sh # मानव-पठनीय
./cve-2026-31431-check.sh --json # मशीन-पठनीय
./cve-2026-31431-check.sh --nagios # Nagios/Icinga/NRPE
./cve-2026-31431-check.sh --zabbix # Zabbix आइटम के लिए पूर्णांक 0/1/2
निकास कोड: 0 = पैच किया गया या शमित · 1 = असुरक्षित · 2 = अज्ञात
स्क्रिप्ट स्वचालित रूप से इन थ्रेशोल्ड के विरुद्ध तुलना करती है और PATCHED निर्णय सेट करती है जब चल रहा पैकेज थ्रेशोल्ड को पूरा या पार करता है।
RHEL, AlmaLinux, Rocky Linux और उनके डेरिवेटिव पर, algif_aead कर्नेल में संकलित है। modprobe.d वर्कअराउंड का कोई प्रभाव नहीं है। केवल कर्नेल cmdline पर initcall_blacklist=algif_aead_init काम करता है। प्रोब इसका पता लगाता है और स्पष्ट रूप से चेतावनी देता है।
grubby --update-kernel=ALL --args="initcall_blacklist=algif_aead_init"
reboot
Dirty Frag दो इन-प्लेस डिक्रिप्ट फास्ट-पथ बगों को श्रृंखलित करता है जो Hyunwoo Kim (@v4bel) द्वारा खोजे गए, ~2026-05-07 को प्रकट, Copy Fail के एक सप्ताह बाद:
esp4, esp6); अपस्ट्रीम फिक्स f4c50a4034e6rxrpc); अपस्ट्रीम फिक्स aa54b1d27fe0शोषण /usr/bin/su पेज कैश से पाइप पेजों को पेजेड सॉकेट-बफर टुकड़ों के रूप में जोड़ता है, फिर हमलावर-चयनित कुंजी के साथ इन-प्लेस डिक्रिप्शन चलाता है — डिस्क पर फ़ाइल को छुए बिना, सेटुइड बाइनरी की कैश्ड प्रतिलिपि में सीधे मनमाना बाइट्स लिखता है।
Copy Fail शमन (algif_aead ब्लैकलिस्ट) Dirty Frag को नहीं रोकता।
chmod +x cve-2026-43284-check.sh
./cve-2026-43284-check.sh # मानव-पठनीय
./cve-2026-43284-check.sh --json # मशीन-पठनीय
./cve-2026-43284-check.sh --nagios # Nagios/Icinga/NRPE
./cve-2026-43284-check.sh --zabbix # Zabbix आइटम के लिए पूर्णांक 0/1/2
प्रोब esp4, esp6, और rxrpc की स्वतंत्र रूप से जाँच करता है और JSON आउटपुट में अलग-अलग cve_43284_safe / cve_43500_safe बूलियन रिपोर्ट करता है।
esp4 और esp6 IPsec (strongSwan, Libreswan) द्वारा उपयोग किए जाने वाले कर्नेल-साइड ESP ट्रांसफॉर्म हैं। इन्हें ब्लैकलिस्ट करना IPsec टनल को तोड़ता है। प्रोब ip xfrm state और डेमॉन पहचान के माध्यम से सक्रिय IPsec उपयोग का पता लगाता है, और उसके अनुसार सुधार सलाह को समायोजित करता है:
modprobe.d ब्लैकलिस्ट लागू करें।rxrpc को अलग से ब्लैकलिस्ट करें):
# RHEL-परिवार
sysctl -w user.max_user_namespaces=0
echo "install rxrpc /bin/false" >> /etc/modprobe.d/dirtyfrag.conf
# उबंटू / डेबियन
sysctl -w kernel.unprivileged_userns_clone=0
echo "install rxrpc /bin/false" >> /etc/modprobe.d/dirtyfrag.conf
| वितरण | CVE-2026-43284 | CVE-2026-43500 (rxrpc) |
|---|---|---|
| RHEL / Rocky / Alma 8.10 | 4.18.0-553.123.2.el8_10 | N/A — rxrpc RHEL 8 पर शिप नहीं किया गया |
| RHEL / Rocky / Alma 9.x | लंबित |
पैच कर्नेल की प्रतीक्षा कर रहे सिस्टम के लिए, तुरंत modprobe.d ब्लैकलिस्ट लागू करें (IPsec चेतावनी को ध्यान में रखते हुए)।
AlmaLinux / RHEL 8 rxrpc मॉड्यूल का निर्माण बिल्कुल नहीं करता। प्रोब स्वचालित रूप से RHEL/Rocky/Alma 8.x पर kernel_vuln_rxrpc=not_affected चिह्नित करता है।
दोनों प्रोब को प्रत्येक मॉनिटर किए गए होस्ट पर तैनात करें:
mkdir -p /etc/zabbix/scripts
install -m 750 -o zabbix -g zabbix cve-2026-31431-check.sh /etc/zabbix/scripts/
install -m 750 -o zabbix -g zabbix cve-2026-43284-check.sh /etc/zabbix/scripts/
cp copy_fail_userparameter.conf /etc/zabbix/zabbix_agentd.d/
cp dirty_frag_userparameter.conf /etc/zabbix/zabbix_agentd.d/
systemctl restart zabbix-agent # या zabbix-agent2
zabbix_template_copy_fail.yaml को कॉन्फ़िगरेशन → टेम्पलेट → आयात के माध्यम से आयात करें।
प्रदान किए गए UserParameter आइटम:
Copy Fail टेम्पलेट में HIGH ट्रिगर status=1 पर, WARNING status=2 पर शामिल है। sudo की आवश्यकता नहीं — दोनों स्क्रिप्ट द्वारा पढ़ी गई प्रत्येक फ़ाइल विश्व-पठनीय है।
install -m 755 cve-2026-31431-check.sh /usr/lib/nagios/plugins/
install -m 755 cve-2026-43284-check.sh /usr/lib/nagios/plugins/
# NRPE — /etc/nagios/nrpe.cfg में जोड़ें:
command[check_copy_fail]=/usr/lib/nagios/plugins/cve-2026-31431-check.sh --nagios
command[check_dirty_frag]=/usr/lib/nagios/plugins/cve-2026-43284-check.sh --nagios
# CheckMK स्थानीय जाँच:
echo '#!/bin/bash
OUT=$(/usr/lib/nagios/plugins/cve-2026-31431-check.sh --nagios); RC=$?
echo "$RC CVE-2026-31431 - $OUT"' > /usr/lib/check_mk_agent/local/copy_fail
echo '#!/bin/bash
OUT=$(/usr/lib/nagios/plugins/cve-2026-43284-check.sh --nagios); RC=$?
echo "$RC CVE-2026-43284 - $OUT"' > /usr/lib/check_mk_agent/local/dirty_frag
chmod +x /usr/lib/check_mk_agent/local/copy_fail \
/usr/lib/check_mk_agent/local/dirty_frag
एक सक्रिय शोषण प्रयास का पता लगाता है, जो दोनों स्थैतिक प्रोब को पूरक करता है।
cp copy_fail_auditd.rules /etc/audit/rules.d/
augenrules --load
# अप्रत्याशित AF_ALG कॉलर्स के लिए देखें:
ausearch -k copy_fail_af_alg --interpret | \
grep -v -E 'cryptsetup|veritysetup|systemd-crypt|kcapi'
Wazuh नियम स्टब्स (स्तर 13 / 15) .rules फ़ाइल टिप्पणियों में एम्बेडेड हैं।
cp wazuh_sca/copy_fail_sca.yml /var/ossec/etc/shared/default/
/var/ossec/bin/agent_control -r -a
परिणाम: सुरक्षा → SCA → नीति cve_2026_31431_copy_fail द्वारा फ़िल्टर करें
ansible-playbook -i inventory/hosts ansible/copy_fall_scan.yml
# एक उपसमूह तक सीमित करें:
ansible-playbook -i inventory/hosts ansible/copy_fall_scan.yml --limit webservers
कंट्रोलर पर /tmp/copy_fail_results/ में प्रति-होस्ट JSON + summary.txt लिखता है। यदि कोई होस्ट VULNERABLE है तो प्ले गैर-शून्य निकास कोड के साथ बाहर निकलता है।
Copy Fail
Dirty Frag
| Copy Fail | Dirty Frag |
|---|
| CVE | CVE-2026-31431 | CVE-2026-43284 + CVE-2026-43500 |
| मॉड्यूल | algif_aead | esp4, esp6, rxrpc |
| परिचय | अगस्त 2017 (कर्नेल 4.14) | जनवरी 2017 / जून 2023 |
| शमन | modprobe.d ब्लैकलिस्ट algif_aead के लिए | modprobe.d ब्लैकलिस्ट esp4/esp6/rxrpc के लिए |
| प्रोब स्क्रिप्ट | cve-2026-31431-check.sh | cve-2026-43284-check.sh |
| वितरण | पैच संस्करण | परामर्श |
|---|
| RHEL / Rocky / Alma 8.10 | kernel-4.18.0-553.123.1.el8_10 | रॉकी 2026-05-11 |
| RHEL / Rocky / Alma 9.7 | kernel-5.14.0-611.54.1.el9_7 | same |
| RHEL / Rocky / Alma 10.1 | kernel-6.12.0-124.55.1.el10_1 | same |
| डेबियन 11 (bullseye) | linux 5.10.251-3 | DLA-4560-1 |
| डेबियन 12 (bookworm) | linux 6.1.170-1 | DSA-6243-1 |
| डेबियन 13 (trixie) | linux 6.12.85-1 | DSA-6238-1 |
| उबंटू 22.04 / 24.04 | अभी तक कोई पैच कर्नेल नहीं — USN-8226-1 के माध्यम से kmod शमन | USN-8226-1 |
| SLES 12 SP5 | kernel-default 4.12.14-122.299.1 | SUSE-SU-2026:1669-1 |
| SLES 15 SP5 | kernel-default 5.14.21-150500.55.144.1 | SUSE-SU-2026:1670-1 |
| SLES 15 SP6 | kernel-default 6.4.0-150600.23.92.1 | SUSE-SU-2026:1671-1 |
| SLES 15 SP7 | kernel-default 6.4.0-150700.53.40.1 | SUSE-SU-2026:1669-1 |
| SLES 16.0 | kernel-default 6.12.0-160000.29.1 | SUSE परामर्श |
| लंबित |
| डेबियन / उबंटू / SLES | लंबित | लंबित |
| कुंजी | प्रकार | अर्थ |
|---|
copy_fail.status | int | 0=सुरक्षित · 1=असुरक्षित · 2=अज्ञात |
copy_fail.detail | str | मानव-पठनीय Copy Fail निर्णय |
dirty_frag.status | int | 0=सुरक्षित · 1=असुरक्षित · 2=अज्ञात |
dirty_frag.detail | str | मानव-पठनीय Dirty Frag निर्णय |
| वितरण | Copy Fail | Dirty Frag |
|---|