flawopen.com/Teardowns/cve-2026-31431-linux-algif-aead-copy-fail
CVE-2026-31431: Linux कर्नेल की Copy Fail खामी
Copy Fail, Linux AF_ALG के AEAD पथ में स्थानीय विशेषाधिकार-वृद्धि की खामी है। in-place अनुकूलन ने स्रोत और लक्ष्य मैपिंग को गड़बड़ा दिया; upstream सुधार out-of-place प्रसंस्करण बहाल करता है और CISA ने CVE को KEV में जोड़ा है।[1], [2], [5]
पुस्तकालयाध्यक्ष को फोटोकॉपी पर निशान लगाना है, लेकिन मशीन का शॉर्टकट पेंसिल को मूल किताब तक पहुँचा देता है। in-place शॉर्टकट से परिणाम के लिए लेखन दूसरी मैपिंग वाले पेज तक पहुँच सकता था। सुधार स्रोत और लक्ष्य को अलग संसाधित करता है।[3], [8]
इस पेज के मुख्य शब्द
AEAD- Associated Data के साथ प्रमाणित एन्क्रिप्शन: डेटा एन्क्रिप्ट और अतिरिक्त अनएन्क्रिप्टेड मेटाडेटा प्रमाणित करता है।[8]
algif_aead- AEAD के लिए AF_ALG कार्यान्वयन, जिसमें स्रोत/लक्ष्य संभालने का कमजोर पथ शामिल है।[3]
Page cache- फ़ाइल सामग्री का कर्नेल मेमोरी कैश; मैप किए गए पेज का लेखन डिस्क अपडेट से पहले रीड को प्रभावित कर सकता है।[8]
फ्रेमवर्क मैपिंग
- इस गाइड में बताई गई कमजोरी के लिए CWE संदर्भ: CWE-669 CWE-1288
- CISA KEV — जोड़ा गया 2026-05-01 — CVE-2026-31431
मूल कारण विश्लेषण (Root Cause)
2017 के बदलाव 72548b093ee3 ने algif_aead में in-place अनुकूलन जोड़ा। स्रोत और लक्ष्य अलग मैपिंग से आ सकते हैं। authencesn अस्थायी डेटा को अपेक्षित आउटपुट क्षेत्र से बाहर लिख सकता है; in-place scatterlist से लेखन splice() द्वारा दिए गए फ़ाइल page cache तक पहुँच सकता था। Linux CVE सूचना सुधार को associated data की कॉपी बनाए रखते हुए out-of-place प्रसंस्करण पर लौटना बताती है। स्थानीय पहुँच और कमजोर पथ सक्षम होना आवश्यक है। CVSS 7.8 (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H); यह अनधिकृत रिमोट प्रवेश नहीं है।[1], [3], [8], [7], [9], [10]
हमले का चरण-दर-चरण प्रवाह
लेखन आउटपुट सीमा से बाहर जाता है
authencesn का अस्थायी डेटा आउटपुट से बाहर लिख सकता है और splice() से दिए गए फ़ाइल कैश पेज तक पहुँच सकता है।[8]
सोर्स कोड: कमज़ोर बनाम सुरक्षित कार्यान्वयन
यह वैचारिक सारांश है, कर्नेल का हूबहू कोड या संकलित पैच नहीं। upstream सूचना कहती है कि सुधार 72548b093ee3 को अधिकांशतः वापस करता है, पर अलग मैपिंग के कारण associated data कॉपी रखता है।[3], [2]
सोर्स अंश: crypto/algif_aead.c (_aead_recvmsg)
/* सुधार से पहले: crypto operation को उसी जगह पर व्यवस्थित करें। */
rsgl_src = areq->first_rsgl.sgl.sg;
if (ctx->enc) {
memcpy_sglist(areq->first_rsgl.sgl.sg, tsgl_src, processed);
af_alg_pull_tsgl(sk, processed, NULL, 0);
} else {
memcpy_sglist(areq->first_rsgl.sgl.sg, tsgl_src, outlen);
/* Authentication tag के लिए TX scatterlist बनाएँ और chain करें। */
areq->tsgl_entries = af_alg_count_tsgl(sk, processed, processed - as);
/* ... */
}
aead_request_set_crypt(&areq->cra_u.aead_req, rsgl_src,
areq->first_rsgl.sgl.sg, used, ctx->iv);
/* सुधार के बाद: हर request के लिए source scatterlist बनाए रखें। */
processed = used + ctx->aead_assoclen;
areq->tsgl_entries = af_alg_count_tsgl(sk, processed);
/* areq->tsgl allocate और initialize करें, फिर TX pages उसमें जोड़ें। */
af_alg_pull_tsgl(sk, processed, areq->tsgl);
tsgl_src = areq->tsgl;
/* Associated data कॉपी करें, लेकिन source और destination अलग रखें। */
rsgl_src = areq->first_rsgl.sgl.sg;
memcpy_sglist(rsgl_src, tsgl_src, ctx->aead_assoclen);
aead_request_set_crypt(&areq->cra_u.aead_req, tsgl_src,
areq->first_rsgl.sgl.sg, used, ctx->iv);
इंजीनियरिंग और सिस्टम सुरक्षा चेकलिस्ट
- ✓डिस्ट्रिब्यूशन चैनल से कर्नेल अपडेट करें और पैकेज सलाह में
CVE-2026-31431सुधार की पुष्टि करें; सामान्य upstream संस्करण से स्थिति न मानें।[1], [5], [7] - ✓साझा कर्नेल वाले और अविश्वसनीय स्थानीय उपयोगकर्ता वाले होस्ट पहले ठीक करें: multi-tenant सिस्टम, build worker और कंटेनर नोड।[5], [7]
- ✓तुरंत अपडेट संभव न हो तो केवल OS विक्रेता द्वारा लिखित शमन अपनाएँ और असर जाँचें; कोड कर्नेल में शामिल हो सकता है।[5], [7]
- ✓अपरिवर्तनीय इमेज और backport वाले LTS सहित सभी सिस्टम की कर्नेल सूची और पैकेज स्रोत जाँचें।[5], [7]
- ✓कंटेनर होस्ट कर्नेल साझा करते हैं; स्थानीय कर्नेल विशेषाधिकार-वृद्धि namespace अलगाव कमजोर कर सकती है।[5], [8]
- ✓पैच के बाद backport पर नज़र रखें और अनपैच होस्ट को सुधार कार्य मानें; KEV सूची पैच का विकल्प नहीं।[1], [5]
स्रोत
- Linux kernel CVE notice for CVE-2026-31431
- Upstream stable patch: revert algif_aead to out-of-place operation
- Stable patch source with the algif_aead.c code diff
- CVE record and CVSS vector
- Canadian Centre for Cyber Security alert AL26-009
- CISA Known Exploited Vulnerabilities catalog entry
- Red Hat CVE analysis and affected product status
- Xint technical disclosure: Copy Fail — 732 Bytes to Root on Linux
- MITRE CWE-1288: Improper Validation of Consistency within Input
- MITRE CWE-669: Incorrect Resource Transfer Between Spheres
- NVD — CVE-2026-31431 weakness mapping (source: redhat-SADP)