July 10, 2026
Some vulnerabilities in FatFs R0.16 and earlier have been found and published.
CVE-2026-6682 (*)
A FAT BPB with broken FAT size field can collapse the files or lead a system crash.
CVE-2026-6687 (*)
An exFAT volume label with manipulated name length field can lead a buffer overflow.
CVE-2026-6688
LFN length is 255 UTF-16 encode units maximum. Please make sure the size of buffer is sufficient
to copy the read file name.
CVE-2026-6685
Wraparound in these expressions are intentional and not harmful.
CVE-2026-6683 (*)
An exFAT BPB with manipulated cluster count field can trigger a /0 and lead the system crash.
CVE-2026-6686
This behavior has been documented in the manual. Please be careful.
CVE-2026-6684
A manipulated table size field in GPT header can lead the system freeze. It does not cover FatFs R0.16.
This publishment of problems was reported via an SNS.
September 13, 2025
From a suggestion in user forum, I have changed the minimum volume size from 128
sectors to 64 sectors.
When create a volume on the very small drive with f_mkfs function, it is recommended to
specify FM_SFD flag and set a proper value to n_root.
August 3, 2025
The Unicode conversion module, ffunicode.c, linked at LFN configuration occupies
a large amount of memory when it is configured for DBCS.
From a suggestion in user forum, I have found that there is much room for improvement
of the compression ratio of 6 out of 8 conversion tables. This is the result in
table size by modification of compression algorithm.
Japanese (932) 59k ==> 47k (-12k)
Simplified Chinese (936) 174k ==> 97k (-77k)
Korean (949) 136k ==> 103k (-33k)
Traditional Chinese (950) 108k ==> 78k (-30k)
All CP (0) 482k ==> 329k (-153k)
January 9, 2025
FatFs fails to load the FsInfo in FAT32 volumes and the f_getfree function will always be forced
a full FAT scan which takes a long time.
This problem was appeared at R0.15a and reported via an e-mail.
Nov 22, 2024
Fixed a complie error when FF_FS_LOCK != 0. (appeared at R0.15)
Fixed a potential issue when work FatFs concurrency with FF_FS_REENTRANT, FF_VOLUMES >= 2 and FF_FS_LOCK > 0.
Made f_setlabel accept a volume label with Unix style volume ID when FF_STR_VOLUME_ID == 2.
Made FatFs update PercInUse field in exFAT VBR. (A preceding f_getfree is needed for the accuracy)
December 4, 2022
There is a potential issue when work FatFs concurrency with FF_FS_REENTRANT, FF_VOLUMES >= 2
and FF_FS_LOCK > 0.
This problem was reported via the user forum.
February 14, 2021
f_mkfs function can create wrong exFAT volume.
This is a time dependent malfunction that two boot records each have different volumme sereal number. As the result, such exFAT volume cannot be mounted by Windows.
February 3, 2021
File gets dead-locked when f_open funciton failed with some conditions.
This is because the file is left locked when it is opened with FA_OPEN_APPEND flag and failed the
function due to a seek error.
November 10, 2019
Old floppy disks formatted with MS-DOS 2.x and 3.x cannot be mounted.
This is because the boot sector lacks "FAT" string and 0xAA55 signature.
August 30, 2019
Wrong memory read one or more characters beyond end of the input path name.
If the memory area following the string terminator is filled by / or \, it can cause memory
protection fault or bus fault.
February 14, 2019
f_readdir() function cannot retrieve long file names in length of FF_MAX_LFN - 1 characters.
f_open() function cannot find the file with file name in length of FF_MAX_LFN characters.
January 9, 2019
f_readdir() function returns file names with wrong case conversion.
When the directory item to be read has a file name within 8.3 format, the extension of file name
returned in fname[] is in wrong case conversion depends on the body length and the case.
Sep 3, 2018
f_getcwd function uses memory location beyond the output buffer length specified by argument if
the buffer has a valid drive number. It can collapse the data located next to the output buffer.
This problem was reported via email.
Jul 8, 2018
Creating a sub-directory in the fragmented sub-directory on the exFAT volume collapses FAT chain
of the parent directory. This problem was reported at the User Forum.
May 23, 2018
Reading a directory gets infinite loop.
Successive f_readdir() calls would not detect the end of directory if the directory was filled up
and the last entry is not empty. This problem was reported at the User Forum.
March 18, 2017
On the exFAT volume, NoFatChain flag of the file fragmented out of the
session is left not set after it gets contiguous again by f_truncate
function. Such a wrong contiguous file causes unreasonable performance
down at read/write operation of the file. (Appeared at R0.12)
March 9, 2015
At the thread-safe configuration (_FS_REENTRANT == 1), an unexpected
operation to the volume can result a wrong volume lock. For example,
f_open() ==> media change ==> f_close(), in this case the volume gets
left locked and following function calls to the volume will be locked
out until a forced initialization of the volume by f_mount(). To solve
this problem, apply this patch to the ff.c.