{"id":"CVE-2025-38710","revision":"b4de621501e24ff7b7c0f2e361d2a651","records":[{"revision":"b4de621501e24ff7b7c0f2e361d2a651","observedAt":"2026-10-23T15:48:27.903+00:00","statement":{"source":"cve-program","id":"CVE-2025-38710","aliases":[],"title":"gfs2: Validate i_depth for exhash directories","description":"In the Linux kernel, the following vulnerability has been resolved:\n\ngfs2: Validate i_depth for exhash directories\n\nA fuzzer test introduced corruption that ends up with a depth of 0 in\ndir_e_read(), causing an undefined shift by 32 at:\n\n  index = hash >> (32 - dip->i_depth);\n\nAs calculated in an open-coded way in dir_make_exhash(), the minimum\ndepth for an exhash directory is ilog2(sdp->sd_hash_ptrs) and 0 is\ninvalid as sdp->sd_hash_ptrs is fixed as sdp->bsize / 16 at mount time.\n\nSo we can avoid the undefined behaviour by checking for depth values\nlower than the minimum in gfs2_dinode_in(). Values greater than the\nmaximum are already being checked for there.\n\nAlso switch the calculation in dir_make_exhash() to use ilog2() to\nclarify how the depth is calculated.\n\nTested with the syzkaller repro.c and xfstests '-g quick'.","state":0,"publishedAt":"2025-09-04T15:33:00.629+00:00","modifiedAt":"2026-10-15T22:02:28.235+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/gfs2/dir.c\",\n                        \"fs/gfs2/glops.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"9a0045088d888c9c539c8c626a366cb52c0fbdab\",\n                            \"lessThan\": \"076e992752e4b24178918f748d75597c80a408d2\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"9a0045088d888c9c539c8c626a366cb52c0fbdab\",\n                            \"lessThan\": \"366183911b153e9b8cf758e1414e1154d7569337\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"9a0045088d888c9c539c8c626a366cb52c0fbdab\",\n                            \"lessThan\": \"112bb60cd0e254a369e95aa9941a694ffeca089f\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"9a0045088d888c9c539c8c626a366cb52c0fbdab\",\n                            \"lessThan\": \"cddea0c721106ea480371412d8de21705eb27376\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"9a0045088d888c9c539c8c626a366cb52c0fbdab\",\n                            \"lessThan\": \"53a0249d68a210c16e961b83adfa82f94ee0a53d\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"9a0045088d888c9c539c8c626a366cb52c0fbdab\",\n                            \"lessThan\": \"b5f46951e62377b6e406fadc18bc3c5bdf1632a7\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"9a0045088d888c9c539c8c626a366cb52c0fbdab\",\n                            \"lessThan\": \"9680c58675b82348ab84d387e4fa727f7587e1a0\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"9a0045088d888c9c539c8c626a366cb52c0fbdab\",\n                            \"lessThan\": \"557c024ca7250bb65ae60f16c02074106c2f197b\",\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/gfs2/dir.c\",\n                        \"fs/gfs2/glops.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"2.6.26\",\n                            \"status\": \"affected\"\n                        },\n                        {\n                            \"version\": \"0\",\n                            \"lessThan\": \"2.6.26\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"5.10.258\",\n                            \"lessThanOrEqual\": \"5.10.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"5.15.209\",\n                            \"lessThanOrEqual\": \"5.15.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.1.175\",\n                            \"lessThanOrEqual\": \"6.1.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.6.134\",\n                            \"lessThanOrEqual\": \"6.6.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.12.43\",\n                            \"lessThanOrEqual\": \"6.12.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.15.11\",\n                            \"lessThanOrEqual\": \"6.15.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.16.2\",\n                            \"lessThanOrEqual\": \"6.16.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.17\",\n                            \"lessThanOrEqual\": \"*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"original_commit_for_fix\"\n                        }\n                    ]\n                }"}],"metrics":[{"system":"CVSS 3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","score":7.8,"severity":"HIGH"}],"references":["https://git.kernel.org/stable/c/076e992752e4b24178918f748d75597c80a408d2","https://git.kernel.org/stable/c/366183911b153e9b8cf758e1414e1154d7569337","https://git.kernel.org/stable/c/112bb60cd0e254a369e95aa9941a694ffeca089f","https://git.kernel.org/stable/c/cddea0c721106ea480371412d8de21705eb27376","https://git.kernel.org/stable/c/53a0249d68a210c16e961b83adfa82f94ee0a53d","https://git.kernel.org/stable/c/b5f46951e62377b6e406fadc18bc3c5bdf1632a7","https://git.kernel.org/stable/c/9680c58675b82348ab84d387e4fa727f7587e1a0","https://git.kernel.org/stable/c/557c024ca7250bb65ae60f16c02074106c2f197b"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2025-38710","license":"CVE Program Terms of Use","key":"cve-program:CVE-2025-38710","identifiers":["CVE-2025-38710"]},"retained":false,"historicalAffected":[]}],"coverage":[]}