
हाल ही में खोजे गए Qualys बग के लिए XFS के साथ COW पर एक POC
इस रिपॉजिटरी में हाल ही में खोजी गई रेस कंडीशन भेद्यता का एक PoC है, जो XFS पर COW को प्रभावित करती है, जिसे उत्कृष्ट Qualys Security Team ने रिपोर्ट किया था। [1] [2]
Qualys सलाह में दिए गए उत्कृष्ट विश्लेषण के आधार पर हाथ से लिखा गया। यह /etc/passwd फ़ाइल के पहले 4KB को उसकी मूल सामग्री के साथ फिर से लिखता है,
और रूट उपयोगकर्ता लाइन root:x:0:0:root:/root:/bin/bash को root::0:0:root:/root:/bin/bash से बदल देता है। अंतर दिखा? अब रूट उपयोगकर्ता के पास कोई पासवर्ड नहीं है और आप बस su - कर सकते हैं।
अपनी आवश्यकताओं के लिए एक बेतरतीब PoC होने के कारण, इसमें घटिया त्रुटि प्रबंधन है और यह मूल फ़ाइल का कोई शानदार बैकअप या ऐसा कुछ नहीं करता। Rocky Linux 9.7 वर्चुअल मशीन पर परीक्षण किया गया, जो एक XFS / माउंट के साथ फरवरी 2026 के कर्नेल पर चल रही है। यह /etc/passwd लिखने को भी बेतरतीब ढंग से पैड करता है, इसलिए यदि आप उस मशीन की परवाह करते हैं जिस पर इसे चला रहे हैं... चलाने से पहले फ़ाइल का बैकअप लें। मैंने यह PoC अपनी मशीनों की जाँच के लिए बनाया था, इसे कुछ समय के लिए रोकने वाला था लेकिन मैंने देखा कि कल एक और PoC जारी हो गया था, इसलिए...
आपको PoC में CLONE_FILE वेरिएबल को एक ऐसे पथ पर इंगित करने के लिए समायोजित करना पड़ सकता है जहाँ आप लिख सकते हैं, यदि /home /etc/passwd से अलग पार्टीशन में है। /var/tmp आपकी मदद कर सकता है, आपको एक्सपोज़र के लिए
find / -writable द्वारा निर्देशित होने में सक्षम होना चाहिए। gcc refluxfs.c -o refluxfs -lpthread से कंपाइल करें।
यह PoC कोई लॉग या dmesg नहीं छोड़ता, मेरी राय में इसे पकड़ने का सबसे अच्छा तरीका XFS फाइलसिस्टम पर FICLONE के साथ ioctl कॉल की निगरानी के लिए एक SIEM नियम स्थापित करना होगा।
फ़ाइल इंटीग्रिटी मॉनिटरिंग उपकरण भी इसे पकड़ सकते हैं।
यदि संभव हो तो कर्नेल को अपडेट करें। वैकल्पिक रूप से, SystemTap का उपयोग करने वाला Red Hat शमन काम करता है:
probe begin {
printf("refluxfs mitigation loaded\n")
}
probe module("xfs").function("xfs_file_remap_range").call {
$remap_flags = 0xffff
}
probe module("xfs").function("xfs_file_remap_range").return {
$return = -95
}
probe end {
printf("refluxfs mitigation unloaded\n")
}
$ xfs_info / | grep reflink=1 और mount -l | grep xfs से जाँचें।XFS कोड में एक बग का मतलब है कि किसी फ़ाइल के लिए Copy-On-Write का अनुरोध किया जा सकता है और COW ठीक से पूर्ववत नहीं किया जाता। जब हम अपनी कॉपी की गई फ़ाइल पर लिखते हैं, तो COW को पूर्ववत किया जाना चाहिए और डिस्क पर दो अलग-अलग फ़ाइलें मौजूद होनी चाहिए। थ्रेड्स का उपयोग करके आप... रेस कंडीशन के कारण एक साथ दोनों फ़ाइलों पर लिख सकते हैं।
यदि आप लक्ष्य फ़ाइल पढ़ सकते हैं, और उस पर ioctl(fd, FICLONE) कर सकते हैं, तो आपके पास COW सक्षम के साथ एक कॉपी होती है। यह उसी पार्टीशन में होनी चाहिए।

फिर, आप बस... O_DIRECT के साथ अपनी कॉपी में write() कर सकते हैं और मूल फ़ाइल को संशोधित कर सकते हैं।

1: https://openwall.com/lists/oss-security/2026/07/22/14
मेरे लेखन में शायद गलत चीजें हैं, लेकिन मैं कहीं से शुरुआत करना चाहता था, खासकर इन अद्भुत कुछ महीनों में।
"शांति के समय कुत्ता होना बेहतर है, अराजकता के समय मानव होने से।"
- फेंग मेंगलोंग, संसार को जगाने वाली कहानियाँ