{"id":"CVE-2023-52852","state":"PUBLISHED","title":"f2fs: compress: fix to avoid use-after-free on dic","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nf2fs: compress: fix to avoid use-after-free on dic\n\nCall trace:\n __memcpy+0x128/0x250\n f2fs_read_multi_pages+0x940/0xf7c\n f2fs_mpage_readpages+0x5a8/0x624\n f2fs_readahead+0x5c/0x110\n page_cache_ra_unbounded+0x1b8/0x590\n do_sync_mmap_readahead+0x1dc/0x2e4\n filemap_fault+0x254/0xa8c\n f2fs_filemap_fault+0x2c/0x104\n __do_fault+0x7c/0x238\n do_handle_mm_fault+0x11bc/0x2d14\n do_mem_abort+0x3a8/0x1004\n el0_da+0x3c/0xa0\n el0t_64_sync_handler+0xc4/0xec\n el0t_64_sync+0x1b4/0x1b8\n\nIn f2fs_read_multi_pages(), once f2fs_decompress_cluster() was called if\nwe hit cached page in compress_inode's cache, dic may be released, it needs\nbreak the loop rather than continuing it, in order to avoid accessing\ninvalid dic pointer.","publishedAt":"2024-05-21T15:31:47.889Z","updatedAt":"2026-08-05T09:11:41.937Z","severity":{"score":7.8,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"6ce19aff0b8cd386860855185c6cd79337fc4d2b","status":"affected","lessThan":"8c4504cc0c64862740a6acb301e0cfa59580dbc5","versionType":"git"},{"version":"6ce19aff0b8cd386860855185c6cd79337fc4d2b","status":"affected","lessThan":"9375ea7f269093d7c884857ae1f47633a91f429c","versionType":"git"},{"version":"6ce19aff0b8cd386860855185c6cd79337fc4d2b","status":"affected","lessThan":"932ddb5c29e884cc6fac20417ece72ba4a35c401","versionType":"git"},{"version":"6ce19aff0b8cd386860855185c6cd79337fc4d2b","status":"affected","lessThan":"9d065aa52b6ee1b06f9c4eca881c9b4425a12ba2","versionType":"git"},{"version":"6ce19aff0b8cd386860855185c6cd79337fc4d2b","status":"affected","lessThan":"b0327c84e91a0f4f0abced8cb83ec86a7083f086","versionType":"git"},{"version":"a23706426da9b611be5beae0f3faa260fb453b4e","status":"affected","versionType":"git"},{"version":"5.13.19","status":"affected","lessThan":"5.14","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/f2fs/data.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.14","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.14","versionType":"semver"},{"version":"5.15.139","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.63","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.5.12","status":"unaffected","lessThanOrEqual":"6.5.*","versionType":"semver"},{"version":"6.6.2","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.7","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/f2fs/data.c"]}],"references":["https://git.kernel.org/stable/c/8c4504cc0c64862740a6acb301e0cfa59580dbc5","https://git.kernel.org/stable/c/9375ea7f269093d7c884857ae1f47633a91f429c","https://git.kernel.org/stable/c/932ddb5c29e884cc6fac20417ece72ba4a35c401","https://git.kernel.org/stable/c/9d065aa52b6ee1b06f9c4eca881c9b4425a12ba2","https://git.kernel.org/stable/c/b0327c84e91a0f4f0abced8cb83ec86a7083f086"],"weaknesses":[],"ingestedAt":"2026-10-29T20:06:33.064Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2023/52xxx/CVE-2023-52852.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2023-52852","state":"PUBLISHED","datePublished":"2024-05-21T15:31:47.889Z","dateUpdated":"2026-08-05T09:11:41.937Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2024-05-21T15:19:24.255Z"},"containers":{"cna":{"title":"f2fs: compress: fix to avoid use-after-free on dic","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nf2fs: compress: fix to avoid use-after-free on dic\n\nCall trace:\n __memcpy+0x128/0x250\n f2fs_read_multi_pages+0x940/0xf7c\n f2fs_mpage_readpages+0x5a8/0x624\n f2fs_readahead+0x5c/0x110\n page_cache_ra_unbounded+0x1b8/0x590\n do_sync_mmap_readahead+0x1dc/0x2e4\n filemap_fault+0x254/0xa8c\n f2fs_filemap_fault+0x2c/0x104\n __do_fault+0x7c/0x238\n do_handle_mm_fault+0x11bc/0x2d14\n do_mem_abort+0x3a8/0x1004\n el0_da+0x3c/0xa0\n el0t_64_sync_handler+0xc4/0xec\n el0t_64_sync+0x1b4/0x1b8\n\nIn f2fs_read_multi_pages(), once f2fs_decompress_cluster() was called if\nwe hit cached page in compress_inode's cache, dic may be released, it needs\nbreak the loop rather than continuing it, in order to avoid accessing\ninvalid dic pointer."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"6ce19aff0b8cd386860855185c6cd79337fc4d2b","status":"affected","lessThan":"8c4504cc0c64862740a6acb301e0cfa59580dbc5","versionType":"git"},{"version":"6ce19aff0b8cd386860855185c6cd79337fc4d2b","status":"affected","lessThan":"9375ea7f269093d7c884857ae1f47633a91f429c","versionType":"git"},{"version":"6ce19aff0b8cd386860855185c6cd79337fc4d2b","status":"affected","lessThan":"932ddb5c29e884cc6fac20417ece72ba4a35c401","versionType":"git"},{"version":"6ce19aff0b8cd386860855185c6cd79337fc4d2b","status":"affected","lessThan":"9d065aa52b6ee1b06f9c4eca881c9b4425a12ba2","versionType":"git"},{"version":"6ce19aff0b8cd386860855185c6cd79337fc4d2b","status":"affected","lessThan":"b0327c84e91a0f4f0abced8cb83ec86a7083f086","versionType":"git"},{"version":"a23706426da9b611be5beae0f3faa260fb453b4e","status":"affected","versionType":"git"},{"version":"5.13.19","status":"affected","lessThan":"5.14","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/f2fs/data.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.14","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.14","versionType":"semver"},{"version":"5.15.139","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.63","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.5.12","status":"unaffected","lessThanOrEqual":"6.5.*","versionType":"semver"},{"version":"6.6.2","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.7","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/f2fs/data.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/8c4504cc0c64862740a6acb301e0cfa59580dbc5"},{"url":"https://git.kernel.org/stable/c/9375ea7f269093d7c884857ae1f47633a91f429c"},{"url":"https://git.kernel.org/stable/c/932ddb5c29e884cc6fac20417ece72ba4a35c401"},{"url":"https://git.kernel.org/stable/c/9d065aa52b6ee1b06f9c4eca881c9b4425a12ba2"},{"url":"https://git.kernel.org/stable/c/b0327c84e91a0f4f0abced8cb83ec86a7083f086"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","baseScore":7.8,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:L - The UAF is reached via local VFS read/mmap fault → f2fs_readahead → f2fs_mpage_readpages → f2fs_read_multi_pages on a compression-enabled f2fs inode; no network or adjacent protocol handler exercises this path.\nAC:L - An unprivileged attacker can reliably prime compress_inode cache (read compressed data, then posix_fadvise/DONTNEED or reclaim pagecache) and re-fault so f2fs_load_compressed_page hits and frees dic; no condition outside attacker control is required on Android deployments that already mount with compress_cache.\nPR:L - Only an unprivileged local account with read access to a compressed f2fs file is needed (e.g. an app mmapping its own compress_extension=apk file on Android /data); no capabilities are checked on the fault/readahead path.\nUI:N - The attacker triggers the bug themselves by reading/mmapping their own compressed file on an already-mounted f2fs volume; no separate victim action is required.\nS:U - Impact is confined to the host kernel heap and f2fs pagecache under the same security authority; this is standard kernel privilege escalation with no VM/IOMMU/sandbox boundary crossed.\nC:H - Use-after-free of decompress_io_ctx (and its cpages) after f2fs_decompress_cluster frees dic enables heap reuse and arbitrary kernel read primitives per UAF scoring guidance.\nI:H - Continuing the loop after dic is freed yields UAF writes (including memcpy into reclaimed cpage memory), enabling heap spray and control-flow hijack primitives typical of kernel UAFs.\nA:H - The reported call trace is a kernel fault in __memcpy while touching the freed dic/cpages path, so the bug causes oops/panic even when not fully exploited."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-05T09:11:41.937Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.14","versionEndExcluding":"5.15.139"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.14","versionEndExcluding":"6.1.63"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.14","versionEndExcluding":"6.5.12"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.14","versionEndExcluding":"6.6.2"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.14","versionEndExcluding":"6.7"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.13.19"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2023-52852","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"total"}],"version":"2.0.3","timestamp":"2024-05-29T17:16:38.626939Z"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2024-06-04T17:24:10.682Z"}},{"title":"CVE Program Container","references":[{"url":"https://git.kernel.org/stable/c/8c4504cc0c64862740a6acb301e0cfa59580dbc5","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/9375ea7f269093d7c884857ae1f47633a91f429c","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/932ddb5c29e884cc6fac20417ece72ba4a35c401","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/9d065aa52b6ee1b06f9c4eca881c9b4425a12ba2","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/b0327c84e91a0f4f0abced8cb83ec86a7083f086","tags":["x_transferred"]}],"providerMetadata":{"shortName":"CVE","orgId":"af854a3a-2127-422b-91ae-364da2661108","dateUpdated":"2024-08-02T23:11:36.038Z"}}]}}}