
CVE-2026-31431 Linux कर्नेल LPE भेद्यता (Copy Fail) के लिए डिटेक्शन नियम, YARA हस्ताक्षर, auditd/Wazuh नियम और MISP इवेंट टेम्पलेट। IoC, शमन चरण और शोषण विश्लेषण शामिल है।
Published: 2026-04-30
CVSSv3: 7.8 (High)
Type: Local Privilege Escalation (LPE)
Subsystem: Linux kernel algif_aead / authencesn cryptographic template
Affected: Linux kernels 4.14 – 6.18.21 (virtually all distributions since 2017)
References:
CVE-2026-31431 एक तर्क दोष है जो कर्नेल 4.14 (2017) में तीन स्वतंत्र परिवर्तनों के संगम पर पेश किया गया था:
authencesn template (added 2011 for IPsec ESN support) writes 4 bytes of scratch data past its output buffer boundary.AF_ALG gained AEAD support in 2015, allowing userspace to submit data via splice() from page-cached files.algif_aead.c was optimized to operate in-place (req->src == req->dst), placing live page-cache pages into a writable scatterlist.परिणाम: एक अविशेषाधिकार प्राप्त उपयोगकर्ता किसी भी पठनीय फ़ाइल की कर्नेल की पेज-कैश प्रतिलिपि में ठीक 4 आक्रमणकारी-नियंत्रित बाइट्स लिख सकता है — जिसमें setuid बाइनरी और /etc/passwd शामिल हैं — बिना डिस्क पर फ़ाइल को छुए। कार्यशील PoC एक 732-बाइट Python स्क्रिप्ट है। कोई रेस कंडीशन नहीं। कोई प्रति-वितरण ऑफसेट नहीं। Ubuntu, RHEL, Amazon Linux, और SUSE पर विश्वसनीय।
Attacker opens AF_ALG socket (family 38, type 5) └─ Binds to "authencesn(hmac(sha256),cbc(aes))" └─ Sets SOL_ALG (279) options including key and authsize └─ Accepts a connection socket
Attacker opens target file (e.g., /etc/passwd) read-only └─ Uses splice() to feed page-cache pages into the AEAD socket's RX buffer └─ Sends crafted AAD via sendmsg() — bytes 4–7 of AAD = attacker-controlled write value
authencesn performs in-place decryption: └─ scatterwalk_map_and_copy writes seqno_lo into the chained page-cache page └─ recvmsg() returns an error (HMAC fails — expected), but the write already happened
Page-cache now contains attacker-modified copy of the file └─ Kernel executes from page-cache, not disk └─ On-disk file is UNCHANGED — file integrity tools see nothing
The PoC `/etc/passwd` को लक्षित करता है: यह चल रहे उपयोगकर्ता के UID फ़ील्ड का ऑफ़सेट ढूंढता है और उसे `0000` से ओवरराइट करता है, फिर रूट शेल प्राप्त करने के लिए `su` को कॉल करता है।
---
## पता लगाने की सीमाएँ
> **नीचे कोई नियम तैनात करने से पहले यह अनुभाग पढ़ें।**
इस एक्सप्लॉइट की दो विशेषताएँ हैं जो डिटेक्शन कवरेज को काफी सीमित करती हैं:
**1. राइट पेज कैश में जाता है, फ़ाइल सिस्टम में नहीं।**
कोई भी डिटेक्शन टूल जो फ़ाइल सिस्टम इवेंट — `inotify`, `fanotify`, AIDE, Tripwire, auditd पथ वॉच — को मॉनिटर करता है, **संशोधन को नहीं देखेगा**। डिस्क पर फ़ाइल कभी नहीं लिखी जाती। इसका मतलब है कि `/usr/bin/su` या `/etc/passwd` के लिए auditd पथ वॉच में `-p w` (राइट) फ़्लैग वास्तविक एक्सप्लॉइट राइट को नहीं पकड़ पाएंगे।
**2. तंत्र वैध कर्नेल इंटरफ़ेस का उपयोग करता है।**
`AF_ALG` सॉकेट, `splice()`, और `authencesn` सभी के वैध उपयोग हैं (IPsec, कर्नेल सेल्फ-टेस्ट, sendfile-शैली I/O)। डिटेक्शन को किसी एक को अलग-थलग करने के बजाय इन प्राइमिटिव के *संयोजन* पर ध्यान केंद्रित करना चाहिए, और IPsec चलाने या कर्नेल क्रिप्टो परीक्षण करने वाले सिस्टम पर झूठी सकारात्मकताएँ अपेक्षित हैं।
**डिटेक्शन क्या पकड़ सकता है:**
- `socket(AF_ALG, SOCK_SEQPACKET, 0)` सिस्कॉल
- उपरोक्त के साथ सहसंबंधित `splice()` सिस्कॉल, विशेष रूप से setuid बाइनरी एक्सेस के पास
- PoC स्क्रिप्ट स्वयं (YARA के माध्यम से)
- प्रक्रिया मेमोरी या स्क्रिप्ट फ़ाइलों में विशिष्ट `authencesn(hmac(sha256),cbc(aes))` एल्गोरिदम स्ट्रिंग
**डिटेक्शन क्या नहीं पकड़ सकता:**
- वास्तविक पेज-कैश राइट (इन-मेमोरी, कोई फ़ाइल सिस्टम इवेंट नहीं)
- संशोधित पेज-कैश एंट्री का पोस्ट-एक्सप्लॉइटेशन उपयोग (सामान्य `su` या `passwd` कॉल जैसा दिखता है)
- ऐसे वेरिएंट जो Python या विशिष्ट एल्गोरिदम स्ट्रिंग से बचते हैं
---
## तत्काल शमन
डिटेक्शन नियम तैनात करने से पहले, किसी भी अप्रतिबंधित होस्ट पर इस शमन को लागू करें:```bash
# Disable algif_aead kernel module — blocks the exploit primitive entirely
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif-aead.conf
sudo rmmod algif_aead 2>/dev/null || true
शमन सक्रिय है इसकी पुष्टि करें आधिकारिक डिटेक्टर का उपयोग करके:```bash
python3 test_cve_2026_31431.py
> **नोट:** `rmmod` कमांड विफल हो जाएगा यदि मॉड्यूल वर्तमान में लोड नहीं है; यह स्वीकार्य है। `modprobe.d` कॉन्फ़िगरेशन भविष्य में लोड होने से रोकता है। इस शमन का मानक TLS, SSH, या फ़ाइलसिस्टम एन्क्रिप्शन कार्यभार पर कोई प्रभाव नहीं पड़ता है — यह केवल समर्पित VPN गेटवे के बाहर असामान्य, `authencesn` टेम्पलेट का उपयोग करके विस्तारित अनुक्रम संख्याओं (ESN) वाले IPsec को प्रभावित करता है।
---
## YARA नियम
`cve_2026_31431.yar` के रूप में सहेजें
> **स्कैनिंग दायरा:** यह नियम डिस्क पर या मेमोरी डंप से निकाले गए Python स्क्रिप्ट फ़ाइलों को स्कैन करने के लिए डिज़ाइन किया गया है। यह ज्ञात PoC और करीबी वेरिएंट से मेल खाएगा। यह syscall स्तर पर शोषण गतिविधि का पता नहीं लगाएगा — इसके लिए auditd/Wazuh नियमों का उपयोग करें।```yara
rule CVE_2026_31431_CopyFail_PoC_HighConfidence {
meta:
description = "High-confidence match: CVE-2026-31431 Copy Fail PoC or close variant"
author = "Detection Engineering"
reference = "https://xint.io/blog/copy-fail-linux-distributions"
cve = "CVE-2026-31431"
date = "2026-04-30"
severity = "High"
cvss = "7.8"
strings:
// Algorithm string unique to this exploit path — very high fidelity
$alg_full = "authencesn(hmac(sha256),cbc(aes))" ascii
// Specific socket call signature from PoC: AF_ALG=38, SOCK_SEQPACKET=5
$socket_call = "socket(38,5,0)" ascii
// SOL_ALG socket option (decimal 279)
$solalg = "setsockopt(279" ascii
// Hex key/iv payload written via setsockopt in PoC
$key_payload = "0800010000000010" ascii
// splice() usage in context of AEAD operations
$splice = "splice(" ascii
// Target indicators from PoC (page-cache corruption targets)
$target_passwd = "/etc/passwd" ascii
$target_su = "/usr/bin/su" ascii
// AF_ALG aead bind strings
$aead_bind = "\"aead\"" ascii
condition:
// High-confidence: unique algorithm string alone is sufficient
$alg_full
or
// Medium-confidence: socket primitive + option number
($socket_call and $solalg)
or
// Medium-confidence: splice into AEAD socket targeting a setuid path
($aead_bind and $splice and ($target_passwd or $target_su))
or
// PoC hex payload present alongside splice
($key_payload and $splice)
}
rule CVE_2026_31431_CopyFail_Mechanism {
meta:
description = "Behavioral: AF_ALG AEAD + splice combination suggestive of CVE-2026-31431 technique"
author = "Detection Engineering"
reference = "https://xint.io/blog/copy-fail-linux-distributions"
cve = "CVE-2026-31431"
date = "2026-04-30"
severity = "Medium"
note = "Higher false positive rate than HighConfidence rule — review matches in context"
strings:
$authencesn = "authencesn" ascii nocase
$af_alg_num = "socket(38" ascii
$sol_alg_num = "279" ascii
$splice = "splice(" ascii
condition:
($authencesn and $splice)
or
($af_alg_num and $sol_alg_num and $splice)
}
/etc/audit/rules.d/cve-2026-31431.rules के रूप में सहेजें
पुनः लोड करें:```bash sudo augenrules --load
sudo auditctl -R /etc/audit/rules.d/cve-2026-31431.rules
.```bash
## ============================================================
## CVE-2026-31431 "Copy Fail" — Auditd Detection Rules
## ============================================================
## These rules capture the MECHANISM of the exploit (socket +
## splice syscalls) and correlated /etc/passwd access patterns.
##
## IMPORTANT: These rules will NOT detect the page-cache write
## itself — it is an in-memory operation with no filesystem
## event. File path watches (-w) on setuid binaries or
## /etc/passwd will not fire on the exploit write.
##
## Correlate rule hits across audit.key values to build signal:
## A hit on afalg_socket followed closely by a hit on
## splice_syscall from the same process is a strong indicator.
## ============================================================
## --- Core exploit primitive: AF_ALG socket creation ---
## Monitors socket(2) syscall where a0 = 0x26 (38 decimal = AF_ALG)
## This is the first step of the exploit chain.
-a always,exit -F arch=b64 -S socket -F a0=0x26 -k cve_2026_31431_afalg_socket
-a always,exit -F arch=b32 -S socket -F a0=0x26 -k cve_2026_31431_afalg_socket
## --- splice() syscall monitoring ---
## splice() is used to feed page-cache pages into the AEAD socket.
## NOTE: splice() is commonly used for sendfile-like operations.
## Correlate with cve_2026_31431_afalg_socket hits from the same PID.
-a always,exit -F arch=b64 -S splice -k cve_2026_31431_splice
-a always,exit -F arch=b32 -S splice -k cve_2026_31431_splice
## --- /etc/passwd access monitoring ---
## The PoC reads /etc/passwd to locate the UID field offset.
## Read access (-p r) is retained here because the intent is
## to correlate this read with the AF_ALG socket key above,
## not to use the watch as a standalone alert.
-w /etc/passwd -p rwa -k cve_2026_31431_passwd_access
## --- setuid binary execution monitoring ---
## Detects execution of su after page-cache modification.
## The page-cache write makes su execute as root; this catches
## the exploitation outcome, not the write itself.
-w /usr/bin/su -p xa -k cve_2026_31431_su_exec
-w /usr/bin/sudo -p xa -k cve_2026_31431_sudo_exec
## --- algif_aead module state monitoring ---
## The exploit requires algif_aead to be loaded.
## Monitoring modprobe helps detect attempts to load the module
## on systems where it was previously disabled as a mitigation,
## and confirms whether the mitigation is being bypassed.
-a always,exit -F arch=b64 -S finit_module -S init_module -k cve_2026_31431_module_load
-w /etc/modprobe.d -p wa -k cve_2026_31431_modprobe_conf
नियमों को तैनात करने के बाद, एक समय विंडो के भीतर कुंजियों में हिट को सहसंबंधित करने के लिए ausearch का उपयोग करें:```bash
sudo ausearch -k cve_2026_31431_afalg_socket -k cve_2026_31431_splice
--start recent -i | aureport --interpret
sudo ausearch -k cve_2026_31431_afalg_socket --start today -i
| grep 'pid=' | awk -F'pid=' '{print $2}' | awk '{print $1}' | sort -u
| while read pid; do
sudo ausearch -k cve_2026_31431_splice --start today -i | grep "pid=$pid"
&& echo "[!] PID $pid hit both AF_ALG and splice — investigate"
done
---
## Wazuh नियम
स्थानीय नियम फ़ाइल के रूप में सहेजें (आमतौर पर `/var/ossec/etc/rules/local_rules.xml`).
> **पूर्वापेक्षाएँ:** ये नियम इस बात पर निर्भर करते हैं कि auditd ऊपर दिए गए नियमों के साथ कॉन्फ़िगर किया गया है और Wazuh auditd डिकोडर सक्रिय है। वे `audit.key` फ़ील्ड से मेल खाते हैं जो auditd द्वारा भरा जाता है, जो दोनों प्रणालियों को जोड़ने का सही और विश्वसनीय तरीका है। नियम किसी विशिष्ट `<if_sid>` के बजाय `<if_group>auditd</if_group>` का उपयोग करते हैं ताकि Wazuh संस्करणों में संगत बने रहें।```xml
<!-- ============================================================
CVE-2026-31431 "Copy Fail" — Wazuh Correlation Rules
Requires: auditd rules from cve-2026-31431.rules deployed
============================================================ -->
<!-- Level 10: AF_ALG socket creation detected -->
<rule id="112001" level="10">
<if_group>auditd</if_group>
<field name="audit.key">cve_2026_31431_afalg_socket</field>
<description>CVE-2026-31431 Copy Fail: AF_ALG socket (family 38) created by unprivileged process</description>
<group>cve,privilege_escalation,linux,kernel,crypto,</group>
</rule>
<!-- Level 10: splice() syscall detected -->
<rule id="112002" level="10">
<if_group>auditd</if_group>
<field name="audit.key">cve_2026_31431_splice</field>
<description>CVE-2026-31431 Copy Fail: splice() syscall detected — monitor for correlation with AF_ALG socket rule</description>
<group>cve,privilege_escalation,linux,kernel,</group>
</rule>
<!-- Level 14 CRITICAL: AF_ALG socket followed by splice() from the same source -->
<!-- This chaining is the core exploit mechanism -->
<rule id="112003" level="14">
<if_matched_sid>112001</if_matched_sid>
<if_group>auditd</if_group>
<field name="audit.key">cve_2026_31431_splice</field>
<same_field>audit.pid</same_field>
<description>CVE-2026-31431 Copy Fail CRITICAL: AF_ALG socket creation followed by splice() from same process — active exploitation likely</description>
<group>cve,privilege_escalation,linux,kernel,crypto,high_confidence,</group>
</rule>
<!-- Level 12: /etc/passwd access correlated with AF_ALG activity -->
<rule id="112004" level="12">
<if_matched_sid>112001</if_matched_sid>
<if_group>auditd</if_group>
<field name="audit.key">cve_2026_31431_passwd_access</field>
<description>CVE-2026-31431 Copy Fail: /etc/passwd access following AF_ALG socket creation — consistent with PoC target selection</description>
<group>cve,privilege_escalation,linux,kernel,</group>
</rule>
<!-- Level 13: su or sudo executed after AF_ALG socket was created -->
<!-- This may represent execution of the modified page-cache entry -->
<rule id="112005" level="13">
<if_matched_sid>112001</if_matched_sid>
<if_group>auditd</if_group>
<field name="audit.key">cve_2026_31431_su_exec|cve_2026_31431_sudo_exec</field>
<description>CVE-2026-31431 Copy Fail: su/sudo execution following AF_ALG socket creation — possible post-exploitation</description>
<group>cve,privilege_escalation,linux,kernel,</group>
</rule>
<!-- Level 12: Attempt to load algif_aead after it was disabled as a mitigation -->
<rule id="112006" level="12">
<if_group>auditd</if_group>
<field name="audit.key">cve_2026_31431_module_load</field>
<field name="audit.exe" type="pcre2">^.*(python|python3|insmod|modprobe).*$</field>
<description>CVE-2026-31431 Copy Fail: Kernel module load attempt — verify algif_aead mitigation has not been bypassed</description>
<group>cve,privilege_escalation,linux,kernel,</group>
</rule>
<!-- Level 13: modprobe.d config modified — possible mitigation removal -->
<rule id="112007" level="13">
<if_group>auditd</if_group>
<field name="audit.key">cve_2026_31431_modprobe_conf</field>
<description>CVE-2026-31431 Copy Fail: /etc/modprobe.d modified — verify algif_aead disable config has not been removed</description>
<group>cve,privilege_escalation,linux,kernel,</group>
</rule>
misp_cve_2026_31431.json के रूप में सहेजें और MISP → Events → Import के माध्यम से आयात करें।
नोट: आयात से पहले नीचे दिए गए प्लेसहोल्डर UUIDs को अपने वातावरण के लिए नवनिर्मित UUID4s से बदलें। प्लेसहोल्डर मान पठनीयता के लिए एक समान प्रारूप में दिखाए गए हैं।```json { "Event": { "uuid": "7f3a2d1e-8b4c-4f9a-a3e2-6d5c1b8e9f0a", "info": "CVE-2026-31431 Copy Fail — Linux LPE via authencesn page-cache write", "threat_level_id": "2", "analysis": "2", "date": "2026-04-30", "Attribute": [ { "type": "vulnerability", "category": "External analysis", "to_ids": false, "uuid": "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d", "comment": "CVE identifier", "value": "CVE-2026-31431" }, { "type": "text", "category": "Other", "to_ids": false, "uuid": "2b3c4d5e-6f7a-8b9c-0d1e-2f3a4b5c6d7e", "comment": "Vulnerability description", "value": "Logic flaw in Linux kernel authencesn cryptographic template. An unprivileged local user can write 4 attacker-controlled bytes into the page cache of any readable file via AF_ALG + splice(), enabling local privilege escalation. No race condition required. Affects kernels 4.14 through 6.18.21." }, { "type": "text", "category": "Other", "to_ids": false, "uuid": "3c4d5e6f-7a8b-9c0d-1e2f-3a4b5c6d7e8f", "comment": "Attack vector summary", "value": "socket(38, 5, 0) [AF_ALG/SOCK_SEQPACKET] → bind authencesn(hmac(sha256),cbc(aes)) → setsockopt(SOL_ALG/279) → splice() page-cache pages into AEAD socket → 4-byte controlled write into page cache of target file" }, { "type": "text", "category": "Other", "to_ids": false, "uuid": "4d5e6f7a-8b9c-0d1e-2f3a-4b5c6d7e8f9a", "comment": "Affected kernel range", "value": "Linux kernel 4.14 (commit 72548b093ee3) through 6.18.21" }, { "type": "text", "category": "Other", "to_ids": false, "uuid": "5e6f7a8b-9c0d-1e2f-3a4b-5c6d7e8f9a0b", "comment": "Introducing commit (root cause)", "value": "72548b093ee38a6d4f2a19e6ef1948ae05c181f7 — algif_aead in-place AEAD optimization (2017)" }, { "type": "text", "category": "Other", "to_ids": false, "uuid": "6f7a8b9c-0d1e-2f3a-4b5c-6d7e8f9a0b1c", "comment": "Fix commit — kernel 6.18.22 stable", "value": "fafe0fa2995a0f7073c1c358d7d3145bcc9aedd8" }, { "type": "text", "category": "Other", "to_ids": false, "uuid": "7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d", "comment": "Fix commit — kernel 6.19.12 stable", "value": "ce42ee423e58dffa5ec03524054c9d8bfd4f6237" }, { "type": "text", "category": "Other", "to_ids": false, "uuid": "8b9c0d1e-2f3a-4b5c-6d7e-8f9a0b1c2d3e", "comment": "Fix commit — kernel 7.0 mainline", "value": "a664bf3d603dc3bdcf9ae47cc21e0daec706d7a5" }, { "type": "text", "category": "Other", "to_ids": true, "uuid": "9c0d1e2f-3a4b-5c6d-7e8f-9a0b1c2d3e4f", "comment": "IoC: Socket family (AF_ALG)", "value": "socket family 38 (AF_ALG)" }, { "type": "text", "category": "Other", "to_ids": true, "uuid": "0d1e2f3a-4b5c-6d7e-8f9a-0b1c2d3e4f5a", "comment": "IoC: Socket type (SOCK_SEQPACKET)", "value": "socket type 5 (SOCK_SEQPACKET)" }, { "type": "text", "category": "Other", "to_ids": true, "uuid": "1e2f3a4b-5c6d-7e8f-9a0b-1c2d3e4f5a6b", "comment": "IoC: Socket option (SOL_ALG = 279)", "value": "setsockopt level 279 (SOL_ALG)" }, { "type": "text", "category": "Other", "to_ids": true, "uuid": "2f3a4b5c-6d7e-8f9a-0b1c-2d3e4f5a6b7c", "comment": "IoC: Algorithm string (highest fidelity)", "value": "authencesn(hmac(sha256),cbc(aes))" }, { "type": "text", "category": "Other", "to_ids": true, "uuid": "3a4b5c6d-7e8f-9a0b-1c2d-3e4f5a6b7c8d", "comment": "IoC: Primary PoC target file", "value": "/etc/passwd (UID field offset targeted by PoC)" }, { "type": "text", "category": "Other", "to_ids": true, "uuid": "4b5c6d7e-8f9a-0b1c-2d3e-4f5a6b7c8d9e", "comment": "IoC: Secondary targets (setuid binaries)", "value": "/usr/bin/su, /usr/bin/sudo" }, { "type": "text", "category": "Other", "to_ids": false, "uuid": "5c6d7e8f-9a0b-1c2d-3e4f-5a6b7c8d9e0f", "comment": "Immediate mitigation", "value": "echo 'install algif_aead /bin/false' > /etc/modprobe.d/disable-algif-aead.conf && rmmod algif_aead" }, { "type": "url", "category": "External analysis", "to_ids": false, "uuid": "6d7e8f9a-0b1c-2d3e-4f5a-6b7c8d9e0f1a", "comment": "Official write-up", "value": "" }, { "type": "url", "category": "External analysis", "to_ids": false, "uuid": "7e8f9a0b-1c2d-3e4f-5a6b-7c8d9e0f1a2b", "comment": "Official PoC repository", "value": "" } ], "Object": [ { "name": "vulnerability", "meta-category": "vulnerability", "Attribute": [ { "type": "vulnerability", "object_relation": "id", "value": "CVE-2026-31431" }, { "type": "cvss-score", "object_relation": "cvss-score", "value": "7.8" }, { "type": "text", "object_relation": "summary", "value": "Linux kernel authencesn LPE via AF_ALG + splice() page-cache write" } ] } ] } }
---
## पैचिंग और समाधान
### कर्नेल पैच
| शाखा | स्थिर संस्करण | फिक्स कमिट |
|--------|--------------|------------|
| स्थिर 6.18.x | 6.18.22 | `fafe0fa2995a0f7073c1c358d7d3145bcc9aedd8` |
| स्थिर 6.19.x | 6.19.12 | `ce42ee423e58dffa5ec03524054c9d8bfd4f6237` |
| मुख्यधारा | 7.0 | `a664bf3d603dc3bdcf9ae47cc21e0daec706d7a5` |
यह फिक्स `algif_aead.c` में 2017 के इन-प्लेस AEAD ऑप्टिमाइज़ेशन को वापस आउट-ऑफ-प्लेस संचालन में बदल देता है, जिससे यह सुनिश्चित होता है कि पेज-कैश पेज कभी भी लिखने योग्य स्कैटरलिस्ट में न रखे जाएँ।
### वितरण-विशिष्ट मार्गदर्शन
| वितरण | क्रिया |
|---|---|
| Ubuntu | `apt-get update && apt-get upgrade linux-image-generic`; USN सलाहकार जाँचें |
| RHEL / Rocky / Alma | `dnf update kernel`; RHSB सलाहकार जाँचें |
| Amazon Linux 2023 | `dnf update kernel`; ALAS सलाहकार जाँचें |
| SUSE / openSUSE | `zypper update kernel-default`; SUSE SA सलाहकार जाँचें |
| Debian | सुरक्षा ट्रैकर जाँचें; बैकपोर्टेड पैच कर्नेल अपडेट से पहले आ सकता है |
| Arch | `pacman -Syu` (रोलिंग; अपस्ट्रीम फिक्स आते ही उसे लागू करें) |
### एक्सपोज़र के बाद अखंडता सत्यापन
यदि आपको संदेह है कि पैचिंग से पहले किसी होस्ट पर शोषण हुआ था:```bash
# 1. Check if /etc/passwd UID fields have been tampered
# (compare against a known-good backup or secondary host)
awk -F: '$3 ~ /^0+$/ && $1 != "root" {print "SUSPICIOUS UID 0 ENTRY:", $0}' /etc/passwd
# 2. Drop the page cache to flush any in-memory modifications
# WARNING: This impacts performance temporarily
sync && echo 3 | sudo tee /proc/sys/vm/drop_caches
# 3. Verify setuid binaries against package manager
rpm -Va --nomtime 2>/dev/null | grep -E '^.{0,8}5.*su$|^.{0,8}5.*sudo$' # RHEL/rpm
debsums -s 2>/dev/null | grep -E 'su|sudo' # Debian/Ubuntu
# 4. Re-examine recently logged su/sudo invocations for unexpected UID transitions
journalctl -u sudo --since "48 hours ago" | grep "session opened for user root"
महत्वपूर्ण: मानक फ़ाइल-अखंडता उपकरण (AIDE, Tripwire, debsums,
rpm -Va) डिस्क पर हैश की जाँच करते हैं और पेज-कैश शोषण के बाद भी बाइनरी को अपरिवर्तित दिखाएँगे। पेज कैश रीबूट करने याdrop_cachesसे स्वाभाविक रूप से साफ़ हो जाता है। रीबूट किए गए सिस्टम पर पेज-कैश भ्रष्टाचार समाप्त हो जाता है, लेकिन हमलावर ने अन्य माध्यमों से पहले ही स्थिरता स्थापित कर ली हो सकती है।
आधिकारिक PoC के विरुद्ध बनाए रखा गया डिटेक्शन पैकेज theori-io/copy-fail-CVE-2026-31431 पर। यदि आप इन नियमों द्वारा कवर नहीं किए गए शोषण रूपांतर देखते हैं, तो कृपया मुख्य POC रेपो में एक issue खोलें।
| Indicator | Value | Confidence |
|---|
| AF_ALG socket family | 38 (first arg to socket()) | मध्यम — वैध उपयोग मौजूद हैं |
| Socket type | 5 (SOCK_SEQPACKET) | मध्यम |
| SOL_ALG option level | 279 (first arg to setsockopt()) | मध्यम |
| Algorithm string | authencesn(hmac(sha256),cbc(aes)) | उच्च — IPsec ESN के बाहर असामान्य |
| Syscall chain | socket(38) → setsockopt(279) → splice() | उच्च |
| PoC key payload | 0800010000000010 (hex, in setsockopt) | उच्च ज्ञात PoC के लिए |
| Primary PoC target | /etc/passwd UID फ़ील्ड | मध्यम |
| Secondary targets | /usr/bin/su, /usr/bin/sudo | मध्यम |
| Kernel module | algif_aead | संदर्भ-निर्भर |