{"id":"CVE-2026-93233","revision":"a6e36e14831844b9961f1cd1ce349578","records":[{"revision":"a6e36e14831844b9961f1cd1ce349578","observedAt":"2026-10-23T15:48:27.903+00:00","statement":{"source":"cve-program","id":"CVE-2026-93233","aliases":[],"title":"drm/nouveau/dmem: fix callocated underflow on large folio split","description":"In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/nouveau/dmem: fix callocated underflow on large folio split\n\nnouveau_dmem_folio_free() drops chunk->callocated once per freed folio,\nwhile a large (compound) device-private folio is only counted once when\nit is allocated.  When such a folio is split, the mm core invokes\n->folio_split() (nouveau_dmem_folio_split()) once for each new\nsub-folio, but the hook only fixes up the sub-folio metadata and leaves\nchunk->callocated unchanged.\n\nEach resulting sub-folio is later freed separately, so after a split\nthe single allocation (+1) is met by N frees (-N), leaving\nchunk->callocated short by N-1.  On the first split/free cycle it\nunderflows: WARN_ON(!chunk->callocated) fires, the unsigned counter\nwraps and never returns to zero, so the chunk can no longer be\nreclaimed (nouveau_dmem_fini() also warns on the leaked count).\n\nAccount for the new sub-folio in the split hook, under the same lock as\nnouveau_dmem_folio_free(), so the count stays balanced.","state":0,"publishedAt":"2026-09-24T15:32:51.743+00:00","modifiedAt":"2026-10-19T09:07:44.949+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                        \"drivers/gpu/drm/nouveau/nouveau_dmem.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"c3228747107705d47c7e9a03598a434a0380cb73\",\n                            \"lessThan\": \"0163b92946d0a7c816f619c57a4d9867954dd106\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"c3228747107705d47c7e9a03598a434a0380cb73\",\n                            \"lessThan\": \"c2256c044a1df39c8aad4dd2d6f709b2533e2d7a\",\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                        \"drivers/gpu/drm/nouveau/nouveau_dmem.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"6.19\",\n                            \"status\": \"affected\"\n                        },\n                        {\n                            \"version\": \"0\",\n                            \"lessThan\": \"6.19\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"7.2.5\",\n                            \"lessThanOrEqual\": \"7.2.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"7.3\",\n                            \"lessThanOrEqual\": \"*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"original_commit_for_fix\"\n                        }\n                    ]\n                }"}],"metrics":[],"references":["https://git.kernel.org/stable/c/0163b92946d0a7c816f619c57a4d9867954dd106","https://git.kernel.org/stable/c/c2256c044a1df39c8aad4dd2d6f709b2533e2d7a"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-93233","license":"CVE Program Terms of Use","key":"cve-program:CVE-2026-93233","identifiers":["CVE-2026-93233"]},"retained":false,"historicalAffected":[]}],"coverage":[]}