{"id":"CVE-2022-50273","state":"PUBLISHED","title":"f2fs: fix to do sanity check on destination blkaddr during recovery","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nf2fs: fix to do sanity check on destination blkaddr during recovery\n\nAs Wenqing Liu reported in bugzilla:\n\nhttps://bugzilla.kernel.org/show_bug.cgi?id=216456\n\nloop5: detected capacity change from 0 to 131072\nF2FS-fs (loop5): recover_inode: ino = 6, name = hln, inline = 1\nF2FS-fs (loop5): recover_data: ino = 6 (i_size: recover) err = 0\nF2FS-fs (loop5): recover_inode: ino = 6, name = hln, inline = 1\nF2FS-fs (loop5): recover_data: ino = 6 (i_size: recover) err = 0\nF2FS-fs (loop5): recover_inode: ino = 6, name = hln, inline = 1\nF2FS-fs (loop5): recover_data: ino = 6 (i_size: recover) err = 0\nF2FS-fs (loop5): Bitmap was wrongly set, blk:5634\n------------[ cut here ]------------\nWARNING: CPU: 3 PID: 1013 at fs/f2fs/segment.c:2198\nRIP: 0010:update_sit_entry+0xa55/0x10b0 [f2fs]\nCall Trace:\n <TASK>\n f2fs_do_replace_block+0xa98/0x1890 [f2fs]\n f2fs_replace_block+0xeb/0x180 [f2fs]\n recover_data+0x1a69/0x6ae0 [f2fs]\n f2fs_recover_fsync_data+0x120d/0x1fc0 [f2fs]\n f2fs_fill_super+0x4665/0x61e0 [f2fs]\n mount_bdev+0x2cf/0x3b0\n legacy_get_tree+0xed/0x1d0\n vfs_get_tree+0x81/0x2b0\n path_mount+0x47e/0x19d0\n do_mount+0xce/0xf0\n __x64_sys_mount+0x12c/0x1a0\n do_syscall_64+0x38/0x90\n entry_SYSCALL_64_after_hwframe+0x63/0xcd\n\nIf we enable CONFIG_F2FS_CHECK_FS config, it will trigger a kernel panic\ninstead of warning.\n\nThe root cause is: in fuzzed image, SIT table is inconsistent with inode\nmapping table, result in triggering such warning during SIT table update.\n\nThis patch introduces a new flag DATA_GENERIC_ENHANCE_UPDATE, w/ this\nflag, data block recovery flow can check destination blkaddr's validation\nin SIT table, and skip f2fs_replace_block() to avoid inconsistent status.","publishedAt":"2025-09-15T14:21:09.496Z","updatedAt":"2026-08-15T12:23:16.485Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"d624c96fb3249e5d3dcf4e60a805e5e6b0dd7d91","status":"affected","lessThan":"68b1e607559d3dc85f94b0d738d7c4e8029b0cfa","versionType":"git"},{"version":"d624c96fb3249e5d3dcf4e60a805e5e6b0dd7d91","status":"affected","lessThan":"73fb4bd2c055a393816f078f158cdd3025006f1d","versionType":"git"},{"version":"d624c96fb3249e5d3dcf4e60a805e5e6b0dd7d91","status":"affected","lessThan":"ed854f10e6afd5cbd5c3274d4c4df4bfe0ab4362","versionType":"git"},{"version":"d624c96fb3249e5d3dcf4e60a805e5e6b0dd7d91","status":"affected","lessThan":"8f0a47def4722c5fd8d6b9268b5ffed8a249e2db","versionType":"git"},{"version":"d624c96fb3249e5d3dcf4e60a805e5e6b0dd7d91","status":"affected","lessThan":"3a4d24d746866dd45d970bd565ff3886e839366a","versionType":"git"},{"version":"d624c96fb3249e5d3dcf4e60a805e5e6b0dd7d91","status":"affected","lessThan":"0ef4ca04a3f9223ff8bc440041c524b2123e09a3","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/f2fs/checkpoint.c","fs/f2fs/f2fs.h","fs/f2fs/recovery.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"3.8","status":"affected"},{"version":"0","status":"unaffected","lessThan":"3.8","versionType":"semver"},{"version":"5.4.220","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.150","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.75","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"5.19.17","status":"unaffected","lessThanOrEqual":"5.19.*","versionType":"semver"},{"version":"6.0.3","status":"unaffected","lessThanOrEqual":"6.0.*","versionType":"semver"},{"version":"6.1","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/f2fs/checkpoint.c","fs/f2fs/f2fs.h","fs/f2fs/recovery.c"]}],"references":["https://git.kernel.org/stable/c/68b1e607559d3dc85f94b0d738d7c4e8029b0cfa","https://git.kernel.org/stable/c/73fb4bd2c055a393816f078f158cdd3025006f1d","https://git.kernel.org/stable/c/ed854f10e6afd5cbd5c3274d4c4df4bfe0ab4362","https://git.kernel.org/stable/c/8f0a47def4722c5fd8d6b9268b5ffed8a249e2db","https://git.kernel.org/stable/c/3a4d24d746866dd45d970bd565ff3886e839366a","https://git.kernel.org/stable/c/0ef4ca04a3f9223ff8bc440041c524b2123e09a3"],"weaknesses":[],"ingestedAt":"2026-10-29T20:05:26.763Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2022/50xxx/CVE-2022-50273.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2022-50273","state":"PUBLISHED","datePublished":"2025-09-15T14:21:09.496Z","dateUpdated":"2026-08-15T12:23:16.485Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2025-09-15T13:58:00.975Z"},"containers":{"cna":{"title":"f2fs: fix to do sanity check on destination blkaddr during recovery","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nf2fs: fix to do sanity check on destination blkaddr during recovery\n\nAs Wenqing Liu reported in bugzilla:\n\nhttps://bugzilla.kernel.org/show_bug.cgi?id=216456\n\nloop5: detected capacity change from 0 to 131072\nF2FS-fs (loop5): recover_inode: ino = 6, name = hln, inline = 1\nF2FS-fs (loop5): recover_data: ino = 6 (i_size: recover) err = 0\nF2FS-fs (loop5): recover_inode: ino = 6, name = hln, inline = 1\nF2FS-fs (loop5): recover_data: ino = 6 (i_size: recover) err = 0\nF2FS-fs (loop5): recover_inode: ino = 6, name = hln, inline = 1\nF2FS-fs (loop5): recover_data: ino = 6 (i_size: recover) err = 0\nF2FS-fs (loop5): Bitmap was wrongly set, blk:5634\n------------[ cut here ]------------\nWARNING: CPU: 3 PID: 1013 at fs/f2fs/segment.c:2198\nRIP: 0010:update_sit_entry+0xa55/0x10b0 [f2fs]\nCall Trace:\n <TASK>\n f2fs_do_replace_block+0xa98/0x1890 [f2fs]\n f2fs_replace_block+0xeb/0x180 [f2fs]\n recover_data+0x1a69/0x6ae0 [f2fs]\n f2fs_recover_fsync_data+0x120d/0x1fc0 [f2fs]\n f2fs_fill_super+0x4665/0x61e0 [f2fs]\n mount_bdev+0x2cf/0x3b0\n legacy_get_tree+0xed/0x1d0\n vfs_get_tree+0x81/0x2b0\n path_mount+0x47e/0x19d0\n do_mount+0xce/0xf0\n __x64_sys_mount+0x12c/0x1a0\n do_syscall_64+0x38/0x90\n entry_SYSCALL_64_after_hwframe+0x63/0xcd\n\nIf we enable CONFIG_F2FS_CHECK_FS config, it will trigger a kernel panic\ninstead of warning.\n\nThe root cause is: in fuzzed image, SIT table is inconsistent with inode\nmapping table, result in triggering such warning during SIT table update.\n\nThis patch introduces a new flag DATA_GENERIC_ENHANCE_UPDATE, w/ this\nflag, data block recovery flow can check destination blkaddr's validation\nin SIT table, and skip f2fs_replace_block() to avoid inconsistent status."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"d624c96fb3249e5d3dcf4e60a805e5e6b0dd7d91","status":"affected","lessThan":"68b1e607559d3dc85f94b0d738d7c4e8029b0cfa","versionType":"git"},{"version":"d624c96fb3249e5d3dcf4e60a805e5e6b0dd7d91","status":"affected","lessThan":"73fb4bd2c055a393816f078f158cdd3025006f1d","versionType":"git"},{"version":"d624c96fb3249e5d3dcf4e60a805e5e6b0dd7d91","status":"affected","lessThan":"ed854f10e6afd5cbd5c3274d4c4df4bfe0ab4362","versionType":"git"},{"version":"d624c96fb3249e5d3dcf4e60a805e5e6b0dd7d91","status":"affected","lessThan":"8f0a47def4722c5fd8d6b9268b5ffed8a249e2db","versionType":"git"},{"version":"d624c96fb3249e5d3dcf4e60a805e5e6b0dd7d91","status":"affected","lessThan":"3a4d24d746866dd45d970bd565ff3886e839366a","versionType":"git"},{"version":"d624c96fb3249e5d3dcf4e60a805e5e6b0dd7d91","status":"affected","lessThan":"0ef4ca04a3f9223ff8bc440041c524b2123e09a3","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/f2fs/checkpoint.c","fs/f2fs/f2fs.h","fs/f2fs/recovery.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"3.8","status":"affected"},{"version":"0","status":"unaffected","lessThan":"3.8","versionType":"semver"},{"version":"5.4.220","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.150","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.75","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"5.19.17","status":"unaffected","lessThanOrEqual":"5.19.*","versionType":"semver"},{"version":"6.0.3","status":"unaffected","lessThanOrEqual":"6.0.*","versionType":"semver"},{"version":"6.1","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/f2fs/checkpoint.c","fs/f2fs/f2fs.h","fs/f2fs/recovery.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/68b1e607559d3dc85f94b0d738d7c4e8029b0cfa"},{"url":"https://git.kernel.org/stable/c/73fb4bd2c055a393816f078f158cdd3025006f1d"},{"url":"https://git.kernel.org/stable/c/ed854f10e6afd5cbd5c3274d4c4df4bfe0ab4362"},{"url":"https://git.kernel.org/stable/c/8f0a47def4722c5fd8d6b9268b5ffed8a249e2db"},{"url":"https://git.kernel.org/stable/c/3a4d24d746866dd45d970bd565ff3886e839366a"},{"url":"https://git.kernel.org/stable/c/0ef4ca04a3f9223ff8bc440041c524b2123e09a3"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-15T12:23:16.485Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.8","versionEndExcluding":"5.4.220"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.8","versionEndExcluding":"5.10.150"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.8","versionEndExcluding":"5.15.75"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.8","versionEndExcluding":"5.19.17"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.8","versionEndExcluding":"6.0.3"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.8","versionEndExcluding":"6.1"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}