{"id":"CVE-2024-50015","revision":"4d36bc7bac7544fe8a889bccc5cb801b","records":[{"revision":"4d36bc7bac7544fe8a889bccc5cb801b","observedAt":"2026-10-23T15:48:27.903+00:00","statement":{"source":"cve-program","id":"CVE-2024-50015","aliases":[],"title":"ext4: dax: fix overflowing extents beyond inode size when partially writing","description":"In the Linux kernel, the following vulnerability has been resolved:\n\next4: dax: fix overflowing extents beyond inode size when partially writing\n\nThe dax_iomap_rw() does two things in each iteration: map written blocks\nand copy user data to blocks. If the process is killed by user(See signal\nhandling in dax_iomap_iter()), the copied data will be returned and added\non inode size, which means that the length of written extents may exceed\nthe inode size, then fsck will fail. An example is given as:\n\ndd if=/dev/urandom of=file bs=4M count=1\n dax_iomap_rw\n  iomap_iter // round 1\n   ext4_iomap_begin\n    ext4_iomap_alloc // allocate 0~2M extents(written flag)\n  dax_iomap_iter // copy 2M data\n  iomap_iter // round 2\n   iomap_iter_advance\n    iter->pos += iter->processed // iter->pos = 2M\n   ext4_iomap_begin\n    ext4_iomap_alloc // allocate 2~4M extents(written flag)\n  dax_iomap_iter\n   fatal_signal_pending\n  done = iter->pos - iocb->ki_pos // done = 2M\n ext4_handle_inode_extension\n  ext4_update_inode_size // inode size = 2M\n\nfsck reports: Inode 13, i_size is 2097152, should be 4194304.  Fix?\n\nFix the problem by truncating extents if the written length is smaller\nthan expected.","state":0,"publishedAt":"2024-10-21T18:54:06.465+00:00","modifiedAt":"2026-10-15T00:56:10.673+00:00","affected":[{"ecosystem":"Vendor product","name":"Linux","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"product\": \"Linux\",\n                    \"vendor\": \"Linux\",\n                    \"defaultStatus\": \"unaffected\",\n                    \"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\n                    \"programFiles\": [\n                        \"fs/ext4/file.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"776722e85d3b0936253ecc3d14db4fba37f191ba\",\n                            \"lessThan\": \"f8a7c342326f6ad1dfdb30a18dd013c70f5e9669\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"776722e85d3b0936253ecc3d14db4fba37f191ba\",\n                            \"lessThan\": \"8c30a9a8610c314554997f86370140746aa35661\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"776722e85d3b0936253ecc3d14db4fba37f191ba\",\n                            \"lessThan\": \"abfaa876b948baaea4d14f21a1963789845c8b4c\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"776722e85d3b0936253ecc3d14db4fba37f191ba\",\n                            \"lessThan\": \"5efccdee4a7d507a483f20f880b809cc4eaef14d\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"776722e85d3b0936253ecc3d14db4fba37f191ba\",\n                            \"lessThan\": \"a9f331f51515bdb3ebc8d0963131af367ef468f6\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"776722e85d3b0936253ecc3d14db4fba37f191ba\",\n                            \"lessThan\": \"ec0dd451e236c46e4858d53e9e82bae7797a7af5\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"776722e85d3b0936253ecc3d14db4fba37f191ba\",\n                            \"lessThan\": \"dda898d7ffe85931f9cca6d702a51f33717c501e\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        }\n                    ]\n                }"},{"ecosystem":"Vendor product","name":"Linux","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"product\": \"Linux\",\n                    \"vendor\": \"Linux\",\n                    \"defaultStatus\": \"affected\",\n                    \"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\n                    \"programFiles\": [\n                        \"fs/ext4/file.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"4.10\",\n                            \"status\": \"affected\"\n                        },\n                        {\n                            \"version\": \"0\",\n                            \"lessThan\": \"4.10\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"5.10.227\",\n                            \"lessThanOrEqual\": \"5.10.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"5.15.168\",\n                            \"lessThanOrEqual\": \"5.15.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.1.113\",\n                            \"lessThanOrEqual\": \"6.1.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.6.55\",\n                            \"lessThanOrEqual\": \"6.6.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.10.14\",\n                            \"lessThanOrEqual\": \"6.10.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.11.3\",\n                            \"lessThanOrEqual\": \"6.11.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.12\",\n                            \"lessThanOrEqual\": \"*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"original_commit_for_fix\"\n                        }\n                    ]\n                }"}],"metrics":[],"references":["https://git.kernel.org/stable/c/f8a7c342326f6ad1dfdb30a18dd013c70f5e9669","https://git.kernel.org/stable/c/8c30a9a8610c314554997f86370140746aa35661","https://git.kernel.org/stable/c/abfaa876b948baaea4d14f21a1963789845c8b4c","https://git.kernel.org/stable/c/5efccdee4a7d507a483f20f880b809cc4eaef14d","https://git.kernel.org/stable/c/a9f331f51515bdb3ebc8d0963131af367ef468f6","https://git.kernel.org/stable/c/ec0dd451e236c46e4858d53e9e82bae7797a7af5","https://git.kernel.org/stable/c/dda898d7ffe85931f9cca6d702a51f33717c501e"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2024-50015","license":"CVE Program Terms of Use","key":"cve-program:CVE-2024-50015","identifiers":["CVE-2024-50015"]},"retained":false,"historicalAffected":[]}],"coverage":[]}