Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
vulns-2026-fatfs-chance — FatFs 임베디드 파일시스템 라이브러리의 문서화된 보안 취약점 (CVE 세부 정보, 퍼징 하니스, 익스플로잇 디스크 이미지 생성기, 그리고 수십 개의 다운스트림 펌웨어 프로젝트에 걸친 공급망 영향 분석 포함). | Kitploit
도구/GitHubGitHub/runzeroinc/vulns-2026-fatfs-chance
Embedded Systems SecurityIoT SecurityVulnerability AnalysisExploitationFuzzingHardware SecurityBinary AnalysisSupply Chain SecurityPapers & Research

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
Learning & Education
Firmware Analysis
GitHubrunzeroinc/vulns-2026-fatfs-chance

vulns-2026-fatfs-chance

FatFs 임베디드 파일시스템 라이브러리의 문서화된 보안 취약점 (CVE 세부 정보, 퍼징 하니스, 익스플로잇 디스크 이미지 생성기, 그리고 수십 개의 다운스트림 펌웨어 프로젝트에 걸친 공급망 영향 분석 포함).

저장소 보기
419573개월 전Kitploit 검토 완료

ELM FatFs 취약점 연구

이 저장소는 FatFs의 6가지 확인된 보안 취약점을 테스트 하네스, 퍼저, 그리고 독립형 익스플로잇 디스크 이미지 생성기와 함께 문서화합니다.

원본 FatFs 소스 코드는 FatFs-R0.16 디렉토리에서 찾을 수 있습니다.

이 프로젝트는 2017년의 보안 평가로 돌아갑니다. 당시 수동 감사와 며칠 간의 퍼징을 통해 FatFs 드라이버에서 몇 가지 기본적이지만 흥미롭지 않은 버그를 발견했습니다. 9년 후인 2026년 3월, 우리는 Visual Studio Code, GitHub Copilot(자동 모드), 몇 가지 기본 프롬프트를 사용하여 특별한 루프, 하네스 또는 기술 없이 이 프로젝트를 재검토했습니다. 결과는 놀라웠습니다. 수동 감사 중에 간과되었던 버그들이 LLM을 사용하여 새로운 입력으로 퍼저를 자동으로 구축함으로써 사소하게 발견되었습니다. 이 노력은 흥미로운 버그를 찾았을 뿐만 아니라 다양한 임베디드 개발 시나리오에서 익스플로잇 가능성을 검증하는 과정을 자동화했습니다.

자세한 내용은 다음 파일을 참조하십시오:

  • 00_INITIAL.md: 초기 조사 및 발견
  • 01_PROJECTS.md: 프로젝트 열거 및 FatFs 버전 조사
  • 02_CRITICAL.md: 영향이 가장 큰 프로젝트 분석

FatFs란 무엇인가?

FatFs는 ChaN(elm-chan.org)이 C로 작성한 휴대용, 로열티 프리 FAT/exFAT 파일 시스템 라이브러리입니다. OS 종속성이 없고 리소스 제약이 있는 임베디드 시스템용으로 설계되었으며 일반적으로 펌웨어에 직접 컴파일됩니다. FAT12, FAT16, FAT32 및 exFAT와 선택적 LFN(긴 파일 이름) 및 GPT 파티션 지원을 지원합니다.

FatFs는 작고 자체 포함되어 있으며 허용적인 라이선스로 인해 마이크로컨트롤러 펌웨어를 위한 사실상의 표준 FAT 구현이 되었습니다. 이 라이브러리는 공식 SDK, RTOS, 부트로더 및 애플리케이션 프레임워크에 그대로 복사(vendored)됩니다. 즉, 단일 업스트림 취약점이 ff.c를 복사한 모든 다운스트림 프로젝트로 전파된다는 의미입니다.

주요 프로젝트

다음 프로젝트들은 취약한 버전의 FatFs를 번들로 포함하고 있는 것으로 확인되었습니다. 전체 분석, 프로젝트별 전파 경로 및 보안 연락처 정보는 02_CRITICAL.md를 참조하십시오.

프로젝트별표FatFs 버전버그
espressif/esp-idf17,655R0.16CVE-2026-6682
STMicroelectronics/stm32-mw-fatfs모든 STM32CubeR0.15 w/p2CVE-2026-6682, CVE-2026-6683, CVE-2026-6686, CVE-2026-6687
zephyrproject-rtos/zephyr14,820R0.16CVE-2026-6683, CVE-2026-6687, CVE-2026-6688
micropython/micropython21,583R0.13c (2019)CVE-2026-6682, CVE-2026-6683, CVE-2026-6684, CVE-2026-6686, CVE-2026-6687
ArduPilot/ardupilot14,743R0.14bCVE-2026-6682, CVE-2026-6683, CVE-2026-6686, CVE-2026-6687
RT-Thread/rt-thread11,862R0.16CVE-2026-6683, CVE-2026-6686
nodemcu/nodemcu-firmware7,903다양함CVE-2026-6688
RIOT-OS/RIOT5,701R0.15CVE-2026-6682, CVE-2026-6683, CVE-2026-6686, CVE-2026-6687
ARMmbed/mbed-os4,837R0.14bCVE-2026-6682, CVE-2026-6683, CVE-2026-6686
sbabic/swupdate1,780R0.16CVE-2026-6683
rsta2/circle2,222추후 결정CVE-2026-6684
hugen79/NanoVNA-H695R0.15CVE-2026-6683
ChibiOS/ChibiOS833다양함CVE-2026-6688
Samsung/TizenRT643R0.16CVE-2026-6683, CVE-2026-6688
adafruit/tinyuf2447추후 결정CVE-2026-6684, CVE-2026-6686
grblHAL/Plugin_SD_card475R0.16CVE-2026-6688
JcZou/StarryPilot315R0.16CVE-2026-6688
KeystoneHQ/keystone3-firmware199R0.16CVE-2026-6682
flysight/flysight44다양함CVE-2026-6682, CVE-2026-6688
eugene-tarassov/vivado-risc-v1,061추후 결정CVE-2026-6684

CVE 요약

CVE ID간단한 설명CWE
CVE-2026-6682FAT32 볼륨 마운트 시 정수 오버플로CWE-190: 정수 오버플로 또는 랩어라운드
CVE-2026-6683exFAT 동기화 시 0으로 나누기CWE-369: 0으로 나누기
CVE-2026-6684GPT 파티션 스캔 시 무한 루프CWE-835: 도달 불가능한 종료 조건이 있는 루프
CVE-2026-6686EOF 이후 탐색 후 초기화되지 않은 클러스터 사용CWE-908: 초기화되지 않은 리소스 사용
CVE-2026-6687제한되지 않는 exFAT 볼륨 레이블 길이로 인한 스택 버퍼 오버플로CWE-121: 스택 기반 버퍼 오버플로
CVE-2026-6688제한 없는 LFN 파일 이름 복사로 인한 버퍼 오버플로CWE-120: 입력 크기 확인 없이 버퍼 복사

공격자 가치

FatFs에는 CVE 이력, 보안 메일링 리스트, 패치 알림 메커니즘이 없습니다. ff.c를 복사하는 모든 다운스트림 프로젝트는 이러한 취약점을 독립적으로 발견, 분류 및 패치해야 하며, 일반적으로 자신이 영향을 받는지조차 알지 못합니다. 즉, 공개 공개와 광범위한 수정 사이의 기간은 일(day) 단위가 아닌 년(year) 단위로 측정됩니다. 따라서 실질적인 공격 표면은 하나의 소프트웨어 애플리케이션이나 서비스가 아니라 수천만 대의 장치이며, 여러 독립적인 코드베이스에 걸쳐 있으며, 이 중 많은 장치가 패치를 받지 못할 것입니다.

전형적인 익스플로잇 시나리오는 사악한 SD 카드입니다. 몇 초의 물리적 접근으로 공격자는 소비자 카메라, 드론, 3D 프린터에서 수천 개의 다른 제품군에 이르기까지 장치의 저장 매체를 교체합니다. 이 세트의 모든 취약점은 조작된 FAT 이미지를 마운트함으로써 트리거될 수 있으며, 이는 거의 항상 삽입 시 사용자의 상호 작용 없이 자동으로 발생합니다. 그렇다고 해서 물리적 접근만이 유일한 경로는 아닙니다.

OTA 업데이트 프레임워크 및 드래그 앤 드롭 부트로더 업데이트와 같은 네트워크 소스에서 FAT 형식의 업데이트 패키지를 수집하는 장치는 악의적인 이미지를 업데이트 파이프라인에 전달할 수 있는 모든 공격자에 의해 익스플로잇될 수 있습니다. 공급망 손상, 일반 텍스트 HTTP 업데이트 피드에 대한 AitM 주입, 또는 취미용 펌웨어 배포 포털에 게시된 악의적인 이미지 등이 있습니다. FatFs로 마운트하기 전에 업데이트 컨테이너의 종단 간 인증된 무결성 검증이 부족한 모든 장치에서 OTA 경로는 완전히 원격입니다.

CVE별 공격자 가치

CVE-2026-6682 - 공격자가 제어하는 읽기 길이로 이어지는 정수 오버플로

특정 필드가 오버플로되도록 조작된 FAT32 볼륨을 생성함으로써, 공격자는 피해자 장치가 공격자가 선택한 바이트 수만큼 공격자가 선택한 바이트를 고정된 버퍼로 읽도록 할 수 있습니다. 이는 코드 실행으로 이어지는 직접적인 경로입니다. 베어메탈 임베디드 타겟에서 익스플로잇은 결정론적이며 힙 스프레이, 무차별 대입 또는 정보 유출이 필요하지 않습니다.

공격자는 타겟이 마운트할 FAT 볼륨을 제어해야 합니다. 대부분의 장치에서 이는 SD 카드를 교체할 물리적 접근을 의미합니다. 네트워크를 통해 펌웨어 업데이트를 수락하거나 FatFs가 이미 구문 분석한 후에만 업데이트 패키지의 무결성을 신뢰하는 장치는 원격으로 익스플로잇될 수 있습니다.

CVE-2026-6683 - exFAT 동기화에서 0으로 나누기

R0.16 이전의 FatFs를 실행하는 장치에 조작된 exFAT 볼륨을 전달할 수 있는 공격자는 이후의 모든 쓰기에서 충돌을 보장할 수 있습니다. FatFs R0.16은 쓰기 전에 조작된 볼륨을 거부할 수 있는 부분적인 마운트 시간 가드를 추가했지만, 기본적인 산술 결함은 완전히 수정되지 않았습니다. OTA 펌웨어 업데이트를 FAT 형식 매체에 쓰는 방식으로 적용하는 장치의 경우, 성공적인 트리거는 일회성 원격 브릭이 됩니다. 업데이트 프로세스가 쓰기 도중에 충돌하여 장치가 하드웨어 디버거에 대한 물리적 접근 없이는 복구 불가능할 수 있습니다.

공격자는 타겟이 자신이 제어하는 exFAT 볼륨을 마운트한 다음 쓰기 또는 동기화 작업을 수행하도록 해야 합니다. 사악한 SD 카드 시나리오는 대부분의 임베디드 장치를 포괄합니다. 원격 익스플로잇의 경우 타겟의 OTA 파이프라인이 무결성을 먼저 검증하지 않고 공격자가 제공한 이미지를 수락하고 마운트해야 합니다.

CVE-2026-6684 - GPT 파티션 스캔에서 무한 루프

단일 필드가 최대값으로 설정된 GPT 디스크 이미지를 전달하면 타겟이 전원이 제거될 때까지 디스크 섹터를 반복적으로 읽는 루프에 빠지게 됩니다. 워치독 없이 실행되는 부트로더 및 베어메탈 펌웨어의 경우, 이는 영구적인 브릭입니다. 장치가 다시 부팅을 완료하지 못합니다. 이 취약점은 FatFs R0.16에서 수정되었으므로 이전 릴리스를 복사한 장치에만 영향을 미칩니다.

공격자는 타겟이 자신이 제어하는 GPT 형식 디스크를 마운트하도록 해야 하며, 타겟은 64비트 LBA 지원이 활성화된 R0.16 이전의 FatFs 빌드를 실행 중이어야 합니다. 부트로더는 워치독이나 복구 경로가 없는 경향이 있기 때문에 여기서 가장 매력적인 대상입니다.

CVE-2026-6686 - EOF 이후 탐색 시 읽을 수 있는 오래된 클러스터 데이터

파일이 끝을 넘어 탐색하여 확장될 때, FatFs는 새로 할당된 저장 공간을 0으로 만들지 않습니다. 이전에 삭제된 파일에 의해 해당 섹터에 기록된 모든 데이터는 확장된 파일을 여는 다음 프로세스에서 읽을 수 있습니다. OTA 스테이징 영역에서 펌웨어 이미지를 순환시키거나 부트로더와 애플리케이션 간에 SD 카드를 공유하는 장치에서 이는 이전 펌웨어 블롭, 키 또는 기타 민감한 콘텐츠를 덜 권한이 있는 판독자에게 노출시킬 수 있습니다.

공격자는 탐색 작업을 통해 확장된 타겟의 FAT 볼륨에 있는 파일에 대한 읽기 액세스 권한이 필요합니다. 이는 주로 로컬 또는 물리적 접근 시나리오입니다.

CVE-2026-6687 - exFAT 볼륨 레이블을 통한 스택 오버플로

크기가 큰 레이블이 있는 exFAT 볼륨을 제공하면 애플리케이션이 f_getlabel()을 호출할 때 FatFs가 호출자의 레이블 버퍼를 오버플로하게 됩니다. ST의 STM32CubeMX 코드 생성기는 생성하는 모든 FatFs 지원 프로젝트에서 취약한 버퍼 크기를 내보내므로, 이 취약점은 방대하고 대부분 카탈로그화되지 않은 상용 STM32 펌웨어 집단에 존재합니다. 스택 쿠키나 ASLR이 없는 베어메탈 Cortex-M 장치(일반적인 경우)에서 이는 일회성 코드 실행 프리미티브입니다.

공격자는 타겟이 자신이 제어하는 exFAT 볼륨을 마운트한 다음 f_getlabel()을 호출하도록 해야 합니다. FatFs 라이브러리는 이를 내부적으로 호출하지 않습니다. 애플리케이션이 명시적으로 호출해야 합니다. 대부분의 프로젝트는 자체 마운트 시간 초기화의 일부로 이를 수행하므로, 실제로는 해당 프로젝트에 대해 추가적인 공격자 상호 작용이 필요하지 않습니다.

CVE-2026-6688 - 디렉터리 목록에서 긴 LFN 파일 이름을 통한 버퍼 오버플로

도구 다운로드