{"id":"CVE-2021-47649","state":"PUBLISHED","title":"udmabuf: validate ubuf->pagecount","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nudmabuf: validate ubuf->pagecount\n\nSyzbot has reported GPF in sg_alloc_append_table_from_pages(). The\nproblem was in ubuf->pages == ZERO_PTR.\n\nubuf->pagecount is calculated from arguments passed from user-space. If\nuser creates udmabuf with list.size == 0 then ubuf->pagecount will be\nalso equal to zero; it causes kmalloc_array() to return ZERO_PTR.\n\nFix it by validating ubuf->pagecount before passing it to\nkmalloc_array().","publishedAt":"2025-02-26T01:54:16.574Z","updatedAt":"2026-05-11T13:58:35.146Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"fbb0de795078190a9834b3409e4b009cfb18a6d4","status":"affected","lessThan":"5d50f851dd307c07ca5591297093f19967c834a9","versionType":"git"},{"version":"fbb0de795078190a9834b3409e4b009cfb18a6d4","status":"affected","lessThan":"b267a8118c2b171bf7d67b90ed64154eeab9fae0","versionType":"git"},{"version":"fbb0de795078190a9834b3409e4b009cfb18a6d4","status":"affected","lessThan":"811b667cefbea9cb7511a874b169d6a92907137e","versionType":"git"},{"version":"fbb0de795078190a9834b3409e4b009cfb18a6d4","status":"affected","lessThan":"a3728d32fc61eb0fe283cb8ff60b2c8f751e2202","versionType":"git"},{"version":"fbb0de795078190a9834b3409e4b009cfb18a6d4","status":"affected","lessThan":"9e9b4a269f84d3230f2af84ff42322db676440d9","versionType":"git"},{"version":"fbb0de795078190a9834b3409e4b009cfb18a6d4","status":"affected","lessThan":"2b6dd600dd72573c23ea180b5b0b2f1813405882","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/dma-buf/udmabuf.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.20","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.20","versionType":"semver"},{"version":"5.4.189","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.110","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.33","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"5.16.19","status":"unaffected","lessThanOrEqual":"5.16.*","versionType":"semver"},{"version":"5.17.2","status":"unaffected","lessThanOrEqual":"5.17.*","versionType":"semver"},{"version":"5.18","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/dma-buf/udmabuf.c"]}],"references":["https://git.kernel.org/stable/c/5d50f851dd307c07ca5591297093f19967c834a9","https://git.kernel.org/stable/c/b267a8118c2b171bf7d67b90ed64154eeab9fae0","https://git.kernel.org/stable/c/811b667cefbea9cb7511a874b169d6a92907137e","https://git.kernel.org/stable/c/a3728d32fc61eb0fe283cb8ff60b2c8f751e2202","https://git.kernel.org/stable/c/9e9b4a269f84d3230f2af84ff42322db676440d9","https://git.kernel.org/stable/c/2b6dd600dd72573c23ea180b5b0b2f1813405882"],"weaknesses":[],"ingestedAt":"2026-10-29T19:49:19.404Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2021/47xxx/CVE-2021-47649.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2021-47649","state":"PUBLISHED","datePublished":"2025-02-26T01:54:16.574Z","dateUpdated":"2026-05-11T13:58:35.146Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2025-02-26T01:48:21.520Z"},"containers":{"cna":{"title":"udmabuf: validate ubuf->pagecount","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nudmabuf: validate ubuf->pagecount\n\nSyzbot has reported GPF in sg_alloc_append_table_from_pages(). The\nproblem was in ubuf->pages == ZERO_PTR.\n\nubuf->pagecount is calculated from arguments passed from user-space. If\nuser creates udmabuf with list.size == 0 then ubuf->pagecount will be\nalso equal to zero; it causes kmalloc_array() to return ZERO_PTR.\n\nFix it by validating ubuf->pagecount before passing it to\nkmalloc_array()."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"fbb0de795078190a9834b3409e4b009cfb18a6d4","status":"affected","lessThan":"5d50f851dd307c07ca5591297093f19967c834a9","versionType":"git"},{"version":"fbb0de795078190a9834b3409e4b009cfb18a6d4","status":"affected","lessThan":"b267a8118c2b171bf7d67b90ed64154eeab9fae0","versionType":"git"},{"version":"fbb0de795078190a9834b3409e4b009cfb18a6d4","status":"affected","lessThan":"811b667cefbea9cb7511a874b169d6a92907137e","versionType":"git"},{"version":"fbb0de795078190a9834b3409e4b009cfb18a6d4","status":"affected","lessThan":"a3728d32fc61eb0fe283cb8ff60b2c8f751e2202","versionType":"git"},{"version":"fbb0de795078190a9834b3409e4b009cfb18a6d4","status":"affected","lessThan":"9e9b4a269f84d3230f2af84ff42322db676440d9","versionType":"git"},{"version":"fbb0de795078190a9834b3409e4b009cfb18a6d4","status":"affected","lessThan":"2b6dd600dd72573c23ea180b5b0b2f1813405882","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/dma-buf/udmabuf.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.20","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.20","versionType":"semver"},{"version":"5.4.189","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.110","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.33","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"5.16.19","status":"unaffected","lessThanOrEqual":"5.16.*","versionType":"semver"},{"version":"5.17.2","status":"unaffected","lessThanOrEqual":"5.17.*","versionType":"semver"},{"version":"5.18","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/dma-buf/udmabuf.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/5d50f851dd307c07ca5591297093f19967c834a9"},{"url":"https://git.kernel.org/stable/c/b267a8118c2b171bf7d67b90ed64154eeab9fae0"},{"url":"https://git.kernel.org/stable/c/811b667cefbea9cb7511a874b169d6a92907137e"},{"url":"https://git.kernel.org/stable/c/a3728d32fc61eb0fe283cb8ff60b2c8f751e2202"},{"url":"https://git.kernel.org/stable/c/9e9b4a269f84d3230f2af84ff42322db676440d9"},{"url":"https://git.kernel.org/stable/c/2b6dd600dd72573c23ea180b5b0b2f1813405882"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-05-11T13:58:35.146Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.20","versionEndExcluding":"5.4.189"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.20","versionEndExcluding":"5.10.110"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.20","versionEndExcluding":"5.15.33"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.20","versionEndExcluding":"5.16.19"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.20","versionEndExcluding":"5.17.2"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.20","versionEndExcluding":"5.18"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}