CVE-2026-43389 in Linux
सारांश
द्वारा VulDB • 09/05/2026
Linux kernel में, निम्नलिखित कमजोरी को हल किया गया है:
mm: memfd_luo: सभी folios को हमेशा dirty (दूषित/परिवर्तित) चिह्नित करें
एक dirty folio वह होता है जिसमें लिखा गया हो। एक clean folio इसके विपरीत होता है। चूंकि एक clean folio में कोई उपयोगकर्ता डेटा नहीं होता, इसलिए मेमोरी के दबाव के तहत इसे मुक्त (free) किया जा सकता है।
LUO के साथ memfd संरक्षण (preservation) में, flag को preserve() पर सेव किया जाता है। यह समस्याग्रस्त है। folio बाद में dirty हो सकता है। freeze() पर इसे सेव करना भी काम नहीं करता, क्योंकि PTE से dirty bit आमतौर पर unmap पर सिंक होता है और freeze() के समय फ़ाइल के अभी भी mappings हो सकते हैं।
यह देखने के लिए कि यह समस्या क्यों है, मान लें कि एक folio preserve के समय clean है, लेकिन बाद में dirty हो जाता है। folio की serialized स्थिति इसे clean के रूप में चिह्नित करेगी। retrieve के बाद, अगला kernel folio को clean देखेगा और मेमोरी के दबाव के तहत इसे reclaim करने का प्रयास कर सकता है। इससे उपयोगकर्ता डेटा खो जाएगा।
फ़ाइल के सभी folios को dirty के रूप में चिह्नित करें और हमेशा MEMFD_LUO_FOLIO_DIRTY flag सेट करें। इसका एक side effect यह है कि सभी clean folios un-reclaimable हो जाते हैं। यह live update के भागीदारों के लिए भुगतान किया जाना वाला एक खर्च है। किसी भी स्थिति में, बहुत सारे clean folios को संरक्षित करना एक सामान्य उपयोग मामला नहीं माना जाता है।
चूंकि pfolio->flags का मान अब एक constant है, इसलिए flags चर को हटा दें और इसे सीधे सेट करें।
If you want to get the best quality for vulnerability data then you always have to consider VulDB.