{"api_version":"1","generated_at":"2026-10-28T03:11:34+00:00","cve":"CVE-2026-72105","urls":{"html":"https://cve.report/CVE-2026-72105","api":"https://cve.report/api/cve/CVE-2026-72105.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-72105","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-72105"},"summary":{"title":"dm-log: fix a bitset_size overflow on 32bit machines","description":"In the Linux kernel, the following vulnerability has been resolved:\n\ndm-log: fix a bitset_size overflow on 32bit machines\n\nCommit c20e36b7631d (\"dm log: fix out-of-bounds write due to\nregion_count overflow\") made sure that region_count could fit in an\nunsigned int. But the bitmap memory isn't allocated based on\nregion_count. It uses bitset_size (a size_t variable). The first step of\ncalculating bitset_size is to set it to region_count, rounded up to a\nmultiple of BITS_PER_LONG. If region_size is less than BITS_PER_LONG\nsmaller than UINT_MAX, it will get rounded up to 2^32. On a 32bit\narchitecture, this will make bitset_size wrap around to 0 and fail,\ndespite region_count being valid.\n\nSince bitset_size gets divided by 8, it can hold any valid region_count.\nIt just needs a special case to handle the rollover. If it is 0, the\nvalue rolled over, and bitset size should be set to the number of bytes\nneeded to hold 2^32 bits.","state":"PUBLISHED","assigner":"Linux","published_at":"2026-08-15 06:21:24","updated_at":"2026-10-19 22:17:27"},"problem_types":["CWE-190","CWE-190 CWE-190 Integer Overflow or Wraparound"],"metrics":[{"version":"3.1","source":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","type":"Secondary","score":"7.8","severity":"HIGH","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","data":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","baseScore":7.8,"baseSeverity":"HIGH","attackVector":"LOCAL","attackComplexity":"LOW","privilegesRequired":"LOW","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"HIGH","integrityImpact":"HIGH","availabilityImpact":"HIGH"}},{"version":"3.1","source":"CNA","type":"DECLARED","score":"7.8","severity":"HIGH","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","data":{"baseScore":7.8,"baseSeverity":"HIGH","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","version":"3.1"}}],"references":[{"url":"https://git.kernel.org/stable/c/1c3412b584e1fb6c665ff33ba7259253bc0082cb","name":"https://git.kernel.org/stable/c/1c3412b584e1fb6c665ff33ba7259253bc0082cb","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/9743132a41f4d9d0e54c5f2adcb821b04796bab1","name":"https://git.kernel.org/stable/c/9743132a41f4d9d0e54c5f2adcb821b04796bab1","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/79feb87ab2396d49b9b65e4bb815d33cc71cba47","name":"https://git.kernel.org/stable/c/79feb87ab2396d49b9b65e4bb815d33cc71cba47","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/e0b0163a65758ec3a2361ae1cea407898c27f21e","name":"https://git.kernel.org/stable/c/e0b0163a65758ec3a2361ae1cea407898c27f21e","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/d05e0edfecf5260e6dddd28b2f0cce02bfc6ed7a","name":"https://git.kernel.org/stable/c/d05e0edfecf5260e6dddd28b2f0cce02bfc6ed7a","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/cdc4ddf9db2cb79f4ab86b1a509b7ac21b0b6cf5","name":"https://git.kernel.org/stable/c/cdc4ddf9db2cb79f4ab86b1a509b7ac21b0b6cf5","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/567602fa72d57169365cbc589e0b8c3be900636d","name":"https://git.kernel.org/stable/c/567602fa72d57169365cbc589e0b8c3be900636d","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/4b0de5a3ac1fd42acb0dc1f80ac5747e3287d723","name":"https://git.kernel.org/stable/c/4b0de5a3ac1fd42acb0dc1f80ac5747e3287d723","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-72105","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-72105","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 44ab8875ae4a2842bde2d756bed195d375e0debb cdc4ddf9db2cb79f4ab86b1a509b7ac21b0b6cf5 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected defe483e47173768c227532694dc78cb65db5f09 4b0de5a3ac1fd42acb0dc1f80ac5747e3287d723 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 3ec74da927b4e171a6fc0e77b1188ba4d019af51 567602fa72d57169365cbc589e0b8c3be900636d git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected d4ac87567f86a55c3c92e9a5144dcd943a9772a1 d05e0edfecf5260e6dddd28b2f0cce02bfc6ed7a git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 12bd5b88e91a02785244ff1d20fb157e96e9cdc8 1c3412b584e1fb6c665ff33ba7259253bc0082cb git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected b455903eed4558982be0811f5b7f44f6bbc4ff57 e0b0163a65758ec3a2361ae1cea407898c27f21e git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected c20e36b7631d83e7535877f08af8b0af72c44b1a 79feb87ab2396d49b9b65e4bb815d33cc71cba47 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected c20e36b7631d83e7535877f08af8b0af72c44b1a 9743132a41f4d9d0e54c5f2adcb821b04796bab1 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 4ec8323b9f0764a14d532b1ae9b87f8a9fecb867 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 5.10.258 5.10.261 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 5.15.209 5.15.212 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 6.1.175 6.1.178 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 6.6.141 6.6.145 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 6.12.91 6.12.97 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 6.18.33 6.18.40 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 7.0.10 7.1 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 7.1","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.1 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 5.10.261 5.10.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 5.15.212 5.15.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.1.178 6.1.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.6.145 6.6.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.12.97 6.12.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.18.40 6.18.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.1.5 7.1.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.2 * original_commit_for_fix","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":{"cve_year":"2026","cve_id":"72105","cve":"CVE-2026-72105","epss":"0.001690000","percentile":"0.058380000","score_date":"2026-10-19","updated_at":"2026-10-20 00:13:47"},"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"adp":[{"metrics":[{"other":{"content":{"id":"CVE-2026-72105","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"total"}],"role":"CISA Coordinator","timestamp":"2026-10-16T15:52:08.599167Z","version":"2.0.3"},"type":"ssvc"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-190","description":"CWE-190 Integer Overflow or Wraparound","lang":"en","type":"CWE"}]}],"providerMetadata":{"dateUpdated":"2026-10-19T21:19:28.267Z","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","shortName":"CISA-ADP"},"title":"CISA ADP Vulnrichment"}],"cna":{"affected":[{"defaultStatus":"unaffected","product":"Linux","programFiles":["drivers/md/dm-log.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"lessThan":"cdc4ddf9db2cb79f4ab86b1a509b7ac21b0b6cf5","status":"affected","version":"44ab8875ae4a2842bde2d756bed195d375e0debb","versionType":"git"},{"lessThan":"4b0de5a3ac1fd42acb0dc1f80ac5747e3287d723","status":"affected","version":"defe483e47173768c227532694dc78cb65db5f09","versionType":"git"},{"lessThan":"567602fa72d57169365cbc589e0b8c3be900636d","status":"affected","version":"3ec74da927b4e171a6fc0e77b1188ba4d019af51","versionType":"git"},{"lessThan":"d05e0edfecf5260e6dddd28b2f0cce02bfc6ed7a","status":"affected","version":"d4ac87567f86a55c3c92e9a5144dcd943a9772a1","versionType":"git"},{"lessThan":"1c3412b584e1fb6c665ff33ba7259253bc0082cb","status":"affected","version":"12bd5b88e91a02785244ff1d20fb157e96e9cdc8","versionType":"git"},{"lessThan":"e0b0163a65758ec3a2361ae1cea407898c27f21e","status":"affected","version":"b455903eed4558982be0811f5b7f44f6bbc4ff57","versionType":"git"},{"lessThan":"79feb87ab2396d49b9b65e4bb815d33cc71cba47","status":"affected","version":"c20e36b7631d83e7535877f08af8b0af72c44b1a","versionType":"git"},{"lessThan":"9743132a41f4d9d0e54c5f2adcb821b04796bab1","status":"affected","version":"c20e36b7631d83e7535877f08af8b0af72c44b1a","versionType":"git"},{"status":"affected","version":"4ec8323b9f0764a14d532b1ae9b87f8a9fecb867","versionType":"git"},{"lessThan":"5.10.261","status":"affected","version":"5.10.258","versionType":"semver"},{"lessThan":"5.15.212","status":"affected","version":"5.15.209","versionType":"semver"},{"lessThan":"6.1.178","status":"affected","version":"6.1.175","versionType":"semver"},{"lessThan":"6.6.145","status":"affected","version":"6.6.141","versionType":"semver"},{"lessThan":"6.12.97","status":"affected","version":"6.12.91","versionType":"semver"},{"lessThan":"6.18.40","status":"affected","version":"6.18.33","versionType":"semver"},{"lessThan":"7.1","status":"affected","version":"7.0.10","versionType":"semver"}]},{"defaultStatus":"affected","product":"Linux","programFiles":["drivers/md/dm-log.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"status":"affected","version":"7.1"},{"lessThan":"7.1","status":"unaffected","version":"0","versionType":"semver"},{"lessThanOrEqual":"5.10.*","status":"unaffected","version":"5.10.261","versionType":"semver"},{"lessThanOrEqual":"5.15.*","status":"unaffected","version":"5.15.212","versionType":"semver"},{"lessThanOrEqual":"6.1.*","status":"unaffected","version":"6.1.178","versionType":"semver"},{"lessThanOrEqual":"6.6.*","status":"unaffected","version":"6.6.145","versionType":"semver"},{"lessThanOrEqual":"6.12.*","status":"unaffected","version":"6.12.97","versionType":"semver"},{"lessThanOrEqual":"6.18.*","status":"unaffected","version":"6.18.40","versionType":"semver"},{"lessThanOrEqual":"7.1.*","status":"unaffected","version":"7.1.5","versionType":"semver"},{"lessThanOrEqual":"*","status":"unaffected","version":"7.2","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"cpeMatch":[{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"5.10.261","versionStartIncluding":"5.10.258","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"5.15.212","versionStartIncluding":"5.15.209","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.1.178","versionStartIncluding":"6.1.175","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.6.145","versionStartIncluding":"6.6.141","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.12.97","versionStartIncluding":"6.12.91","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.18.40","versionStartIncluding":"6.18.33","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.1.5","versionStartIncluding":"7.1","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.2","versionStartIncluding":"7.1","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"7.0.10","vulnerable":true}],"negate":false,"operator":"OR"}]}],"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\ndm-log: fix a bitset_size overflow on 32bit machines\n\nCommit c20e36b7631d (\"dm log: fix out-of-bounds write due to\nregion_count overflow\") made sure that region_count could fit in an\nunsigned int. But the bitmap memory isn't allocated based on\nregion_count. It uses bitset_size (a size_t variable). The first step of\ncalculating bitset_size is to set it to region_count, rounded up to a\nmultiple of BITS_PER_LONG. If region_size is less than BITS_PER_LONG\nsmaller than UINT_MAX, it will get rounded up to 2^32. On a 32bit\narchitecture, this will make bitset_size wrap around to 0 and fail,\ndespite region_count being valid.\n\nSince bitset_size gets divided by 8, it can hold any valid region_count.\nIt just needs a special case to handle the rollover. If it is 0, the\nvalue rolled over, and bitset size should be set to the number of bytes\nneeded to hold 2^32 bits."}],"metrics":[{"cvssV3_1":{"baseScore":7.8,"baseSeverity":"HIGH","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","version":"3.1"},"scenarios":[{"lang":"en","value":"AV:L - The flaw is reached only via local Device Mapper ioctls on /dev/mapper/control (dmsetup table load creating a mirror with core/disk log); there is no network, wireless, or physical-bus receive path into create_log_context().\nAC:L - A CAP_SYS_ADMIN attacker fully controls mirror table length and region_size via dmsetup, deterministically forcing region_count into the UINT_MAX-30..UINT_MAX wrap range on 32-bit kernels without races or victim-specific heap layout.\nPR:L - DM control ioctls require CAP_SYS_ADMIN, which is obtainable inside an unprivileged user namespace per kernel CNA guidance; mirror/dm-log setup is not limited to init-namespace root on typical container-capable systems.\nUI:N - Exploitation requires only the attacker issuing dmsetup/ioctl to create or resume a mirror with crafted parameters; no separate victim action such as mounting a filesystem or opening a file is needed.\nS:U - Impact is kernel vmalloc heap corruption and privilege escalation within the host kernel; it does not cross a VM, hypervisor, or IOMMU security boundary.\nC:H - Wrapping bitset_size to zero undersizes clean_bits/sync_bits/recovering_bits versus lc->region_count near UINT_MAX; subsequent log_test_bit/__set_bit_le calls during mirror I/O perform out-of-bounds reads of adjacent vmalloc heap memory.\nI:H - The same undersized bitmap sizing lets log_set_bit and log_clear_bit write far beyond the allocated bitset via region indices derived from dm mirror bios, corrupting adjacent kernel heap objects exploitable for arbitrary write or code execution.\nA:H - Identical dm-log bitset paths (e.g., core_in_sync calling log_test_bit) have been shown to kernel-crash with CR2 faults from out-of-bounds heap access; triggering this overflow causes oops, panic, or hang on affected 32-bit storage nodes."}]}],"providerMetadata":{"dateUpdated":"2026-08-17T05:40:19.004Z","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux"},"references":[{"url":"https://git.kernel.org/stable/c/cdc4ddf9db2cb79f4ab86b1a509b7ac21b0b6cf5"},{"url":"https://git.kernel.org/stable/c/4b0de5a3ac1fd42acb0dc1f80ac5747e3287d723"},{"url":"https://git.kernel.org/stable/c/567602fa72d57169365cbc589e0b8c3be900636d"},{"url":"https://git.kernel.org/stable/c/d05e0edfecf5260e6dddd28b2f0cce02bfc6ed7a"},{"url":"https://git.kernel.org/stable/c/1c3412b584e1fb6c665ff33ba7259253bc0082cb"},{"url":"https://git.kernel.org/stable/c/e0b0163a65758ec3a2361ae1cea407898c27f21e"},{"url":"https://git.kernel.org/stable/c/79feb87ab2396d49b9b65e4bb815d33cc71cba47"},{"url":"https://git.kernel.org/stable/c/9743132a41f4d9d0e54c5f2adcb821b04796bab1"}],"title":"dm-log: fix a bitset_size overflow on 32bit machines","x_generator":{"engine":"bippy-1.2.0"}}},"cveMetadata":{"assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","assignerShortName":"Linux","cveId":"CVE-2026-72105","datePublished":"2026-08-15T05:52:48.099Z","dateReserved":"2026-08-09T03:40:39.906Z","dateUpdated":"2026-10-19T21:19:28.267Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-08-15 06:21:24","lastModifiedDate":"2026-10-19 22:17:27","problem_types":["CWE-190","CWE-190 CWE-190 Integer Overflow or Wraparound"],"metrics":{"cvssMetricV31":[{"source":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","type":"Secondary","cvssData":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","baseScore":7.8,"baseSeverity":"HIGH","attackVector":"LOCAL","attackComplexity":"LOW","privilegesRequired":"LOW","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"HIGH","integrityImpact":"HIGH","availabilityImpact":"HIGH"},"exploitabilityScore":1.8,"impactScore":5.9}],"ssvcV203":[{"source":"134c704f-9b21-4f2e-91b3-4a467353bcc0","ssvcData":{"timestamp":"2026-10-16T15:52:08.599167Z","id":"CVE-2026-72105","options":[{"exploitation":"none"},{"automatable":"no"},{"technicalImpact":"total"}],"role":"CISA Coordinator","version":"2.0.3"}}]},"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"72105","Ordinal":"1","Title":"dm-log: fix a bitset_size overflow on 32bit machines","CVE":"CVE-2026-72105","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"72105","Ordinal":"1","NoteData":"In the Linux kernel, the following vulnerability has been resolved:\n\ndm-log: fix a bitset_size overflow on 32bit machines\n\nCommit c20e36b7631d (\"dm log: fix out-of-bounds write due to\nregion_count overflow\") made sure that region_count could fit in an\nunsigned int. But the bitmap memory isn't allocated based on\nregion_count. It uses bitset_size (a size_t variable). The first step of\ncalculating bitset_size is to set it to region_count, rounded up to a\nmultiple of BITS_PER_LONG. If region_size is less than BITS_PER_LONG\nsmaller than UINT_MAX, it will get rounded up to 2^32. On a 32bit\narchitecture, this will make bitset_size wrap around to 0 and fail,\ndespite region_count being valid.\n\nSince bitset_size gets divided by 8, it can hold any valid region_count.\nIt just needs a special case to handle the rollover. If it is 0, the\nvalue rolled over, and bitset size should be set to the number of bytes\nneeded to hold 2^32 bits.","Type":"Description","Title":"dm-log: fix a bitset_size overflow on 32bit machines"}]}}}