{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2024-42273","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2024-07-30T07:40:12.260Z","datePublished":"2024-08-17T08:54:27.422Z","dateUpdated":"2026-08-05T11:36:14.266Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-08-05T11:36:14.266Z"},"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nf2fs: assign CURSEG_ALL_DATA_ATGC if blkaddr is valid\n\nmkdir /mnt/test/comp\nf2fs_io setflags compression /mnt/test/comp\ndd if=/dev/zero of=/mnt/test/comp/testfile bs=16k count=1\ntruncate --size 13 /mnt/test/comp/testfile\n\nIn the above scenario, we can get a BUG_ON.\n kernel BUG at fs/f2fs/segment.c:3589!\n Call Trace:\n  do_write_page+0x78/0x390 [f2fs]\n  f2fs_outplace_write_data+0x62/0xb0 [f2fs]\n  f2fs_do_write_data_page+0x275/0x740 [f2fs]\n  f2fs_write_single_data_page+0x1dc/0x8f0 [f2fs]\n  f2fs_write_multi_pages+0x1e5/0xae0 [f2fs]\n  f2fs_write_cache_pages+0xab1/0xc60 [f2fs]\n  f2fs_write_data_pages+0x2d8/0x330 [f2fs]\n  do_writepages+0xcf/0x270\n  __writeback_single_inode+0x44/0x350\n  writeback_sb_inodes+0x242/0x530\n  __writeback_inodes_wb+0x54/0xf0\n  wb_writeback+0x192/0x310\n  wb_workfn+0x30d/0x400\n\nThe reason is we gave CURSEG_ALL_DATA_ATGC to COMPR_ADDR where the\npage was set the gcing flag by set_cluster_dirty()."}],"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 - Triggered entirely through local filesystem syscalls (mkdir, FS_IOC_SETFLAGS ioctl, write, truncate) on an already-mounted f2fs volume. No network or remote peer is involved.\nAC:L - The upstream reproducer is a deterministic four-command sequence fully under attacker control with no race window and no dependence on memory layout; the attacker dirties the compressed cluster and normal background writeback reliably reaches the faulty path.\nPR:L - Requires only an unprivileged local account with write access to an f2fs mount (e.g. an ordinary app sandbox on Android /data); setting the compression flag on one's own directory needs no capability.\nUI:N - No victim action is needed — the filesystem is already mounted in the target scenario and the fault fires asynchronously in the kernel writeback worker after the attacker's truncate.\nS:U - The corruption and crash are confined to the kernel's own memory and the f2fs metadata it manages; no VM, IOMMU, or sandbox boundary is crossed.\nC:H - In production builds without CONFIG_F2FS_CHECK_FS the code dereferences sentries[0xFFFFFFFF], a wild out-of-bounds read roughly 171 GB past the array, and the value read is then used to index dirty_segmap[] far beyond its 8 entries, producing a chained unbounded read of kernel memory.\nI:H - The out-of-bounds seg_entry supplies an attacker-uncontrolled segment type and mtime to get_atssr_segment()/f2fs_get_victim(), which scans an out-of-bounds pointer as a dirty bitmap and picks the segment that data blocks are allocated into, corrupting SIT/segment metadata — the kernel itself sets SBI_NEED_FSCK on this path.\nA:H - With CONFIG_F2FS_CHECK_FS this is an outright BUG_ON panic, and without it the wild dereference oopses; either way it happens in the shared writeback kworker while holding curseg_lock, curseg_mutex and sentry_lock, hanging the filesystem system-wide."}]}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/f2fs/segment.c"],"versions":[{"version":"7c972c89457511007dfc933814c06786905e515c","lessThan":"5fd057160ab240dd816ae09b625395d54c297de1","status":"affected","versionType":"git"},{"version":"417b8a91f4e8831cadaf85c3f15c6991c1f54dde","lessThan":"4239571c5db46a42f723b8fa8394039187c34439","status":"affected","versionType":"git"},{"version":"4961acdd65c956e97c1a000c82d91a8c1cdbe44b","lessThan":"0cd106612396656d6f1ca17ef192c6759bb60791","status":"affected","versionType":"git"},{"version":"4961acdd65c956e97c1a000c82d91a8c1cdbe44b","lessThan":"8cb1f4080dd91c6e6b01dbea013a3f42341cb6a1","status":"affected","versionType":"git"},{"version":"7ea0f29d9fd84905051be020c0df7d557e286136","status":"affected","versionType":"git"},{"version":"b8094c0f1aae329b1c60a275a780d6c2c9ff7aa3","status":"affected","versionType":"git"},{"version":"6.1.77","lessThan":"6.1.104","status":"affected","versionType":"semver"},{"version":"6.6.16","lessThan":"6.6.45","status":"affected","versionType":"semver"},{"version":"5.15.149","lessThan":"5.16","status":"affected","versionType":"semver"},{"version":"6.7.4","lessThan":"6.8","status":"affected","versionType":"semver"}]},{"product":"Linux","vendor":"Linux","defaultStatus":"affected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/f2fs/segment.c"],"versions":[{"version":"6.8","status":"affected"},{"version":"0","lessThan":"6.8","status":"unaffected","versionType":"semver"},{"version":"6.1.104","lessThanOrEqual":"6.1.*","status":"unaffected","versionType":"semver"},{"version":"6.6.45","lessThanOrEqual":"6.6.*","status":"unaffected","versionType":"semver"},{"version":"6.10.4","lessThanOrEqual":"6.10.*","status":"unaffected","versionType":"semver"},{"version":"6.11","lessThanOrEqual":"*","status":"unaffected","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.1.77","versionEndExcluding":"6.1.104"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.6.16","versionEndExcluding":"6.6.45"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.8","versionEndExcluding":"6.10.4"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.8","versionEndExcluding":"6.11"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.15.149"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.7.4"}]}]}],"references":[{"url":"https://git.kernel.org/stable/c/5fd057160ab240dd816ae09b625395d54c297de1"},{"url":"https://git.kernel.org/stable/c/4239571c5db46a42f723b8fa8394039187c34439"},{"url":"https://git.kernel.org/stable/c/0cd106612396656d6f1ca17ef192c6759bb60791"},{"url":"https://git.kernel.org/stable/c/8cb1f4080dd91c6e6b01dbea013a3f42341cb6a1"}],"title":"f2fs: assign CURSEG_ALL_DATA_ATGC if blkaddr is valid","x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2024-42273","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"version":"2.0.3","timestamp":"2024-09-10T16:12:04.954171Z"}}}],"title":"CISA ADP Vulnrichment","providerMetadata":{"orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","shortName":"CISA-ADP","dateUpdated":"2024-09-12T17:33:32.172Z"}},{"title":"CVE Program Container","references":[{"url":"https://lists.debian.org/debian-lts-announce/2025/01/msg00001.html"}],"providerMetadata":{"orgId":"af854a3a-2127-422b-91ae-364da2661108","shortName":"CVE","dateUpdated":"2025-11-03T22:03:11.549Z"}}]}}