
FatFs एम्बेडेड फाइल सिस्टम लाइब्रेरी में प्रलेखित सुरक्षा भेद्यता CVE विवरण, फ़ज़िंग हार्नेस, शोषण डिस्क-छवि जनरेटर, और दर्जनों डाउनस्ट्रीम फर्मवेयर परियोजनाओं में आपूर्ति-श्रृंखला प्रभाव विश्लेषण के साथ।
यह रिपॉजिटरी FatFs में पुष्टि की गई छह सुरक्षा भेद्यताओं का दस्तावेजीकरण करती है, साथ ही एक परीक्षण हार्नेस, फज़र और स्टैंडअलोन एक्सप्लॉइट डिस्क-इमेज जनरेटर भी शामिल है।
मूल FatFs सोर्स कोड FatFs-R0.16 निर्देशिका में पाया जा सकता है।
यह प्रोजेक्ट 2017 के सुरक्षा मूल्यांकन की वापसी है, जब मैन्युअल ऑडिट और कई दिनों के फज़िंग प्रयास ने FatFs ड्राइवर में कुछ बुनियादी, लेकिन दिलचस्प नहीं, बग की पहचान की थी। नौ साल बाद, मार्च 2026 में, हमने इस प्रोजेक्ट को विज़ुअल स्टूडियो कोड, GitHub Copilot को "auto" मोड में, और कुछ बुनियादी प्रॉम्प्ट का उपयोग करके दोबारा देखा, बिना किसी विशेष लूप, हार्नेस या स्किल्स के। परिणाम आश्चर्यजनक थे - मैन्युअल ऑडिट के दौरान अनदेखी किए गए बग, LLM की मदद से नए इनपुट के साथ स्वचालित रूप से फज़र बनाने पर तुच्छ रूप से खोजने योग्य बन गए। इस प्रयास ने न केवल दिलचस्प बग खोजे, बल्कि विभिन्न एम्बेडेड विकास परिदृश्यों में शोषण क्षमता को सत्यापित करने की प्रक्रिया को भी स्वचालित किया।
विस्तृत नोट्स के लिए कृपया निम्नलिखित फ़ाइलें देखें:
FatFs ChaN (elm-chan.org) द्वारा C में लिखी गई एक पोर्टेबल, रॉयल्टी-मुक्त FAT/exFAT फाइलसिस्टम लाइब्रेरी है। यह संसाधन-सीमित एम्बेडेड सिस्टम के लिए डिज़ाइन की गई है, जिसमें OS पर कोई निर्भरता नहीं होती और इसे आमतौर पर सीधे फर्मवेयर में संकलित किया जाता है। यह FAT12, FAT16, FAT32, और exFAT, साथ ही वैकल्पिक LFN (लॉन्ग फाइल नेम) और GPT पार्टीशन समर्थन का समर्थन करती है।
क्योंकि FatFs छोटी, स्व-निहित और उदार लाइसेंस वाली है, यह माइक्रोकंट्रोलर फर्मवेयर के लिए डी-फैक्टो मानक FAT कार्यान्वयन बन गई है। लाइब्रेरी को आधिकारिक SDK, RTOS, बूटलोडर और एप्लिकेशन फ्रेमवर्क में शब्दशः वेंडर किया जाता है - जिसका अर्थ है कि एक एकल अपस्ट्रीम भेद्यता हर डाउनस्ट्रीम प्रोजेक्ट तक फैल जाती है जिसने ff.c की प्रतिलिपि बनाई है।
निम्नलिखित प्रोजेक्टों में FatFs का एक भेद्य संस्करण बंडल किए जाने की पुष्टि की गई है। संपूर्ण विश्लेषण, प्रति-प्रोजेक्ट प्रसार पथ, और सुरक्षा संपर्क जानकारी के लिए 02_CRITICAL.md देखें।
| प्रोजेक्ट | स्टार्स | FatFs संस्करण | बग्स |
|---|---|---|---|
| espressif/esp-idf | 17,655 | R0.16 | CVE-2026-6682 |
| STMicroelectronics/stm32-mw-fatfs | all STM32Cube | R0.15 w/p2 | CVE-2026-6682, CVE-2026-6683, CVE-2026-6686, CVE-2026-6687 |
| zephyrproject-rtos/zephyr | 14,820 | R0.16 | CVE-2026-6683, CVE-2026-6687, CVE-2026-6688 |
| micropython/micropython | 21,583 | R0.13c (2019) | CVE-2026-6682, CVE-2026-6683, CVE-2026-6684, CVE-2026-6686, CVE-2026-6687 |
| ArduPilot/ardupilot | 14,743 | R0.14b | CVE-2026-6682, CVE-2026-6683, CVE-2026-6686, CVE-2026-6687 |
| RT-Thread/rt-thread | 11,862 | R0.16 | CVE-2026-6683, CVE-2026-6686 |
| nodemcu/nodemcu-firmware | 7,903 | varies | CVE-2026-6688 |
| RIOT-OS/RIOT | 5,701 | R0.15 | CVE-2026-6682, CVE-2026-6683, CVE-2026-6686, CVE-2026-6687 |
| ARMmbed/mbed-os | 4,837 | R0.14b | CVE-2026-6682, CVE-2026-6683, CVE-2026-6686 |
| sbabic/swupdate | 1,780 | R0.16 | CVE-2026-6683 |
| rsta2/circle | 2,222 | tbd | CVE-2026-6684 |
| hugen79/NanoVNA-H | 695 | R0.15 | CVE-2026-6683 |
| ChibiOS/ChibiOS | 833 | varies | CVE-2026-6688 |
| Samsung/TizenRT | 643 | R0.16 | CVE-2026-6683, CVE-2026-6688 |
| adafruit/tinyuf2 | 447 | tbd | CVE-2026-6684, CVE-2026-6686 |
| grblHAL/Plugin_SD_card | 475 | R0.16 | CVE-2026-6688 |
| JcZou/StarryPilot | 315 | R0.16 | CVE-2026-6688 |
| KeystoneHQ/keystone3-firmware | 199 | R0.16 | CVE-2026-6682 |
| flysight/flysight | 44 | varies | CVE-2026-6682, CVE-2026-6688 |
| eugene-tarassov/vivado-risc-v | 1,061 | tbd | CVE-2026-6684 |
| CVE ID | संक्षिप्त शीर्षक | CWE |
|---|---|---|
| CVE-2026-6682 | FAT32 वॉल्यूम माउंट में पूर्णांक अतिप्रवाह | CWE-190: पूर्णांक अतिप्रवाह या रैपअराउंड |
| CVE-2026-6683 | exFAT सिंक में शून्य से भाग | CWE-369: शून्य से भाग देना |
| CVE-2026-6684 | GPT पार्टीशन स्कैन में अनंत लूप | CWE-835: अगम्य निकास शर्त वाला लूप |
| CVE-2026-6686 | EOF से आगे सीक करने के बाद अप्रारंभित क्लस्टरों का उपयोग | CWE-908: अप्रारंभित संसाधन का उपयोग |
| CVE-2026-6687 | बिना सीमा वाली exFAT लेबल लंबाई के कारण स्टैक बफर अतिप्रवाह | CWE-121: स्टैक-आधारित बफर अतिप्रवाह |
| CVE-2026-6688 | अबाधित LFN फ़ाइलनाम प्रतिलिपि के कारण बफर अतिप्रवाह | CWE-120: इनपुट के आकार की जाँच किए बिना बफर प्रतिलिपि |
FatFs का कोई CVE इतिहास, कोई सुरक्षा मेलिंग सूची, और कोई पैच अधिसूचना तंत्र नहीं है। हर डाउनस्ट्रीम प्रोजेक्ट जो ff.c को वेंडर करता है, उसे इन भेद्यताओं को स्वतंत्र रूप से खोजना, ट्रायेज करना और पैच करना होता है, आमतौर पर यह जाने बिना कि वे प्रभावित हैं। इसका मतलब है कि सार्वजनिक प्रकटीकरण और व्यापक सुधार के बीच की खिड़की दिनों में नहीं, बल्कि वर्षों में मापी जाएगी। इसलिए व्यावहारिक हमले की सतह एक सॉफ़्टवेयर एप्लिकेशन या सेवा नहीं है, बल्कि दर्जनों स्वतंत्र कोडबेस में फैले करोड़ों डिवाइस हैं, जिनमें से कई को कभी पैच नहीं मिलेगा।
सबसे विशिष्ट शोषण परिदृश्य ईविल SD कार्ड है: कुछ सेकंड के भौतिक एक्सेस वाला हमलावर किसी डिवाइस में स्टोरेज माध्यम बदल देता है - उपभोक्ता कैमरों से लेकर ड्रोन, 3-डी प्रिंटर से लेकर हज़ारों अन्य उत्पाद परिवारों तक। इस सेट में हर भेद्यता एक क्राफ्टेड FAT इमेज को माउंट करने पर ट्रिगर होती है, जो लगभग हमेशा इंसर्शन पर स्वचालित रूप से होती है, बिना किसी उपयोगकर्ता इंटरैक्शन की आवश्यकता के। हालांकि, भौतिक एक्सेस ही एकमात्र रास्ता नहीं है।
जो डिवाइस नेटवर्क स्रोत से FAT-स्वरूपित अपडेट पैकेज ग्रहण करते हैं, जैसे OTA अपडेट फ्रेमवर्क और ड्रैग-एंड-ड्रॉप बूटलोडर अपडेट, वे किसी भी हमलावर द्वारा शोषण योग्य हैं जो अपडेट पाइपलाइन में दुर्भावनापूर्ण इमेज पहुंचा सकता है। सप्लाई चेन समझौते, क्लियरटेक्स्ट HTTP अपडेट फीड पर AitM इंजेक्शन, या शौकिया फर्मवेयर वितरण पोर्टल पर पोस्ट की गई दुर्भावनापूर्ण इमेज। OTA पथ उन सभी डिवाइसों पर पूरी तरह से रिमोट है जिनमें FatFs के साथ माउंट करने से पहले अपडेट कंटेनर के एंड-टू-एंड प्रमाणित अखंडता सत्यापन का अभाव है।
CVE-2026-6682 - पूर्णांक अतिप्रवाह जो हमलावर-नियंत्रित रीड लंबाई की ओर ले जाता है
किसी विशिष्ट फ़ील्ड को अतिप्रवाहित करने के लिए FAT32 वॉल्यूम तैयार करके, एक हमलावर पीड़ित डिवाइस से एक निश्चित बफर में हमलावर द्वारा चुने गए बाइट्स की संख्या को पढ़वा सकता है - कोड निष्पादन का एक सीधा रास्ता। बेयर-मेटल एम्बेडेड टारगेट पर एक्सप्लॉइट नियतिवादी है और इसके लिए हीप स्प्रे, ब्रूट फोर्स, या पूर्वापेक्षा के रूप में सूचना लीक की आवश्यकता नहीं होती।