{"api_version":"1","generated_at":"2026-08-23T15:22:30+00:00","cve":"CVE-2023-54060","urls":{"html":"https://cve.report/CVE-2023-54060","api":"https://cve.report/api/cve/CVE-2023-54060.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2023-54060","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2023-54060"},"summary":{"title":"iommufd: Set end correctly when doing batch carry","description":"In the Linux kernel, the following vulnerability has been resolved:\n\niommufd: Set end correctly when doing batch carry\n\nEven though the test suite covers this it somehow became obscured that\nthis wasn't working.\n\nThe test iommufd_ioas.mock_domain.access_domain_destory would blow up\nrarely.\n\nend should be set to 1 because this just pushed an item, the carry, to the\npfns list.\n\nSometimes the test would blow up with:\n\n  BUG: kernel NULL pointer dereference, address: 0000000000000000\n  #PF: supervisor read access in kernel mode\n  #PF: error_code(0x0000) - not-present page\n  PGD 0 P4D 0\n  Oops: 0000 [#1] SMP\n  CPU: 5 PID: 584 Comm: iommufd Not tainted 6.5.0-rc1-dirty #1236\n  Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.13.0-0-gf21b5a4aeb02-prebuilt.qemu.org 04/01/2014\n  RIP: 0010:batch_unpin+0xa2/0x100 [iommufd]\n  Code: 17 48 81 fe ff ff 07 00 77 70 48 8b 15 b7 be 97 e2 48 85 d2 74 14 48 8b 14 fa 48 85 d2 74 0b 40 0f b6 f6 48 c1 e6 04 48 01 f2 <48> 8b 3a 48 c1 e0 06 89 ca 48 89 de 48 83 e7 f0 48 01 c7 e8 96 dc\n  RSP: 0018:ffffc90001677a58 EFLAGS: 00010246\n  RAX: 00007f7e2646f000 RBX: 0000000000000000 RCX: 0000000000000001\n  RDX: 0000000000000000 RSI: 00000000fefc4c8d RDI: 0000000000fefc4c\n  RBP: ffffc90001677a80 R08: 0000000000000048 R09: 0000000000000200\n  R10: 0000000000030b98 R11: ffffffff81f3bb40 R12: 0000000000000001\n  R13: ffff888101f75800 R14: ffffc90001677ad0 R15: 00000000000001fe\n  FS:  00007f9323679740(0000) GS:ffff8881ba540000(0000) knlGS:0000000000000000\n  CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033\n  CR2: 0000000000000000 CR3: 0000000105ede003 CR4: 00000000003706a0\n  DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000\n  DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400\n  Call Trace:\n   <TASK>\n   ? show_regs+0x5c/0x70\n   ? __die+0x1f/0x60\n   ? page_fault_oops+0x15d/0x440\n   ? lock_release+0xbc/0x240\n   ? exc_page_fault+0x4a4/0x970\n   ? asm_exc_page_fault+0x27/0x30\n   ? batch_unpin+0xa2/0x100 [iommufd]\n   ? batch_unpin+0xba/0x100 [iommufd]\n   __iopt_area_unfill_domain+0x198/0x430 [iommufd]\n   ? __mutex_lock+0x8c/0xb80\n   ? __mutex_lock+0x6aa/0xb80\n   ? xa_erase+0x28/0x30\n   ? iopt_table_remove_domain+0x162/0x320 [iommufd]\n   ? lock_release+0xbc/0x240\n   iopt_area_unfill_domain+0xd/0x10 [iommufd]\n   iopt_table_remove_domain+0x195/0x320 [iommufd]\n   iommufd_hw_pagetable_destroy+0xb3/0x110 [iommufd]\n   iommufd_object_destroy_user+0x8e/0xf0 [iommufd]\n   iommufd_device_detach+0xc5/0x140 [iommufd]\n   iommufd_selftest_destroy+0x1f/0x70 [iommufd]\n   iommufd_object_destroy_user+0x8e/0xf0 [iommufd]\n   iommufd_destroy+0x3a/0x50 [iommufd]\n   iommufd_fops_ioctl+0xfb/0x170 [iommufd]\n   __x64_sys_ioctl+0x40d/0x9a0\n   do_syscall_64+0x3c/0x80\n   entry_SYSCALL_64_after_hwframe+0x46/0xb0","state":"PUBLISHED","assigner":"Linux","published_at":"2025-12-24 13:16:07","updated_at":"2026-08-04 10:19:26"},"problem_types":[],"metrics":[{"version":"3.1","source":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","type":"Secondary","score":"8.8","severity":"HIGH","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H","data":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H","baseScore":8.8,"baseSeverity":"HIGH","attackVector":"LOCAL","attackComplexity":"LOW","privilegesRequired":"LOW","userInteraction":"NONE","scope":"CHANGED","confidentialityImpact":"HIGH","integrityImpact":"HIGH","availabilityImpact":"HIGH"}},{"version":"3.1","source":"CNA","type":"DECLARED","score":"8.8","severity":"HIGH","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H","data":{"baseScore":8.8,"baseSeverity":"HIGH","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H","version":"3.1"}}],"references":[{"url":"https://git.kernel.org/stable/c/b7c822fa6b7701b17e139f1c562fc24135880ed4","name":"https://git.kernel.org/stable/c/b7c822fa6b7701b17e139f1c562fc24135880ed4","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/176f36a376c417b58d19f79edfce20db9317eaa2","name":"https://git.kernel.org/stable/c/176f36a376c417b58d19f79edfce20db9317eaa2","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2023-54060","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2023-54060","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected f394576eb11dbcd3a740fa41e577b97f0720d26e 176f36a376c417b58d19f79edfce20db9317eaa2 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected f394576eb11dbcd3a740fa41e577b97f0720d26e b7c822fa6b7701b17e139f1c562fc24135880ed4 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 6.2","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.2 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.4.8 6.4.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.5 * original_commit_for_fix","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":{"cve_year":"2023","cve_id":"54060","cve":"CVE-2023-54060","epss":"0.001600000","percentile":"0.056420000","score_date":"2026-08-06","updated_at":"2026-08-07 00:14:20"},"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"defaultStatus":"unaffected","product":"Linux","programFiles":["drivers/iommu/iommufd/pages.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"lessThan":"176f36a376c417b58d19f79edfce20db9317eaa2","status":"affected","version":"f394576eb11dbcd3a740fa41e577b97f0720d26e","versionType":"git"},{"lessThan":"b7c822fa6b7701b17e139f1c562fc24135880ed4","status":"affected","version":"f394576eb11dbcd3a740fa41e577b97f0720d26e","versionType":"git"}]},{"defaultStatus":"affected","product":"Linux","programFiles":["drivers/iommu/iommufd/pages.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"status":"affected","version":"6.2"},{"lessThan":"6.2","status":"unaffected","version":"0","versionType":"semver"},{"lessThanOrEqual":"6.4.*","status":"unaffected","version":"6.4.8","versionType":"semver"},{"lessThanOrEqual":"*","status":"unaffected","version":"6.5","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"cpeMatch":[{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.4.8","versionStartIncluding":"6.2","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.5","versionStartIncluding":"6.2","vulnerable":true}],"negate":false,"operator":"OR"}]}],"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\niommufd: Set end correctly when doing batch carry\n\nEven though the test suite covers this it somehow became obscured that\nthis wasn't working.\n\nThe test iommufd_ioas.mock_domain.access_domain_destory would blow up\nrarely.\n\nend should be set to 1 because this just pushed an item, the carry, to the\npfns list.\n\nSometimes the test would blow up with:\n\n  BUG: kernel NULL pointer dereference, address: 0000000000000000\n  #PF: supervisor read access in kernel mode\n  #PF: error_code(0x0000) - not-present page\n  PGD 0 P4D 0\n  Oops: 0000 [#1] SMP\n  CPU: 5 PID: 584 Comm: iommufd Not tainted 6.5.0-rc1-dirty #1236\n  Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.13.0-0-gf21b5a4aeb02-prebuilt.qemu.org 04/01/2014\n  RIP: 0010:batch_unpin+0xa2/0x100 [iommufd]\n  Code: 17 48 81 fe ff ff 07 00 77 70 48 8b 15 b7 be 97 e2 48 85 d2 74 14 48 8b 14 fa 48 85 d2 74 0b 40 0f b6 f6 48 c1 e6 04 48 01 f2 <48> 8b 3a 48 c1 e0 06 89 ca 48 89 de 48 83 e7 f0 48 01 c7 e8 96 dc\n  RSP: 0018:ffffc90001677a58 EFLAGS: 00010246\n  RAX: 00007f7e2646f000 RBX: 0000000000000000 RCX: 0000000000000001\n  RDX: 0000000000000000 RSI: 00000000fefc4c8d RDI: 0000000000fefc4c\n  RBP: ffffc90001677a80 R08: 0000000000000048 R09: 0000000000000200\n  R10: 0000000000030b98 R11: ffffffff81f3bb40 R12: 0000000000000001\n  R13: ffff888101f75800 R14: ffffc90001677ad0 R15: 00000000000001fe\n  FS:  00007f9323679740(0000) GS:ffff8881ba540000(0000) knlGS:0000000000000000\n  CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033\n  CR2: 0000000000000000 CR3: 0000000105ede003 CR4: 00000000003706a0\n  DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000\n  DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400\n  Call Trace:\n   <TASK>\n   ? show_regs+0x5c/0x70\n   ? __die+0x1f/0x60\n   ? page_fault_oops+0x15d/0x440\n   ? lock_release+0xbc/0x240\n   ? exc_page_fault+0x4a4/0x970\n   ? asm_exc_page_fault+0x27/0x30\n   ? batch_unpin+0xa2/0x100 [iommufd]\n   ? batch_unpin+0xba/0x100 [iommufd]\n   __iopt_area_unfill_domain+0x198/0x430 [iommufd]\n   ? __mutex_lock+0x8c/0xb80\n   ? __mutex_lock+0x6aa/0xb80\n   ? xa_erase+0x28/0x30\n   ? iopt_table_remove_domain+0x162/0x320 [iommufd]\n   ? lock_release+0xbc/0x240\n   iopt_area_unfill_domain+0xd/0x10 [iommufd]\n   iopt_table_remove_domain+0x195/0x320 [iommufd]\n   iommufd_hw_pagetable_destroy+0xb3/0x110 [iommufd]\n   iommufd_object_destroy_user+0x8e/0xf0 [iommufd]\n   iommufd_device_detach+0xc5/0x140 [iommufd]\n   iommufd_selftest_destroy+0x1f/0x70 [iommufd]\n   iommufd_object_destroy_user+0x8e/0xf0 [iommufd]\n   iommufd_destroy+0x3a/0x50 [iommufd]\n   iommufd_fops_ioctl+0xfb/0x170 [iommufd]\n   __x64_sys_ioctl+0x40d/0x9a0\n   do_syscall_64+0x3c/0x80\n   entry_SYSCALL_64_after_hwframe+0x46/0xb0"}],"metrics":[{"cvssV3_1":{"baseScore":8.8,"baseSeverity":"HIGH","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H","version":"3.1"}}],"providerMetadata":{"dateUpdated":"2026-08-04T09:17:22.033Z","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux"},"references":[{"url":"https://git.kernel.org/stable/c/176f36a376c417b58d19f79edfce20db9317eaa2"},{"url":"https://git.kernel.org/stable/c/b7c822fa6b7701b17e139f1c562fc24135880ed4"}],"title":"iommufd: Set end correctly when doing batch carry","x_generator":{"engine":"bippy-1.2.0"}}},"cveMetadata":{"assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","assignerShortName":"Linux","cveId":"CVE-2023-54060","datePublished":"2025-12-24T12:23:07.276Z","dateReserved":"2025-12-24T12:21:05.091Z","dateUpdated":"2026-08-04T09:17:22.033Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2025-12-24 13:16:07","lastModifiedDate":"2026-08-04 10:19:26","problem_types":[],"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:C/C:H/I:H/A:H","baseScore":8.8,"baseSeverity":"HIGH","attackVector":"LOCAL","attackComplexity":"LOW","privilegesRequired":"LOW","userInteraction":"NONE","scope":"CHANGED","confidentialityImpact":"HIGH","integrityImpact":"HIGH","availabilityImpact":"HIGH"},"exploitabilityScore":2,"impactScore":6}]},"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2023","CveId":"54060","Ordinal":"1","Title":"iommufd: Set end correctly when doing batch carry","CVE":"CVE-2023-54060","Year":"2023"},"notes":[{"CveYear":"2023","CveId":"54060","Ordinal":"1","NoteData":"In the Linux kernel, the following vulnerability has been resolved:\n\niommufd: Set end correctly when doing batch carry\n\nEven though the test suite covers this it somehow became obscured that\nthis wasn't working.\n\nThe test iommufd_ioas.mock_domain.access_domain_destory would blow up\nrarely.\n\nend should be set to 1 because this just pushed an item, the carry, to the\npfns list.\n\nSometimes the test would blow up with:\n\n  BUG: kernel NULL pointer dereference, address: 0000000000000000\n  #PF: supervisor read access in kernel mode\n  #PF: error_code(0x0000) - not-present page\n  PGD 0 P4D 0\n  Oops: 0000 [#1] SMP\n  CPU: 5 PID: 584 Comm: iommufd Not tainted 6.5.0-rc1-dirty #1236\n  Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.13.0-0-gf21b5a4aeb02-prebuilt.qemu.org 04/01/2014\n  RIP: 0010:batch_unpin+0xa2/0x100 [iommufd]\n  Code: 17 48 81 fe ff ff 07 00 77 70 48 8b 15 b7 be 97 e2 48 85 d2 74 14 48 8b 14 fa 48 85 d2 74 0b 40 0f b6 f6 48 c1 e6 04 48 01 f2 <48> 8b 3a 48 c1 e0 06 89 ca 48 89 de 48 83 e7 f0 48 01 c7 e8 96 dc\n  RSP: 0018:ffffc90001677a58 EFLAGS: 00010246\n  RAX: 00007f7e2646f000 RBX: 0000000000000000 RCX: 0000000000000001\n  RDX: 0000000000000000 RSI: 00000000fefc4c8d RDI: 0000000000fefc4c\n  RBP: ffffc90001677a80 R08: 0000000000000048 R09: 0000000000000200\n  R10: 0000000000030b98 R11: ffffffff81f3bb40 R12: 0000000000000001\n  R13: ffff888101f75800 R14: ffffc90001677ad0 R15: 00000000000001fe\n  FS:  00007f9323679740(0000) GS:ffff8881ba540000(0000) knlGS:0000000000000000\n  CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033\n  CR2: 0000000000000000 CR3: 0000000105ede003 CR4: 00000000003706a0\n  DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000\n  DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400\n  Call Trace:\n   <TASK>\n   ? show_regs+0x5c/0x70\n   ? __die+0x1f/0x60\n   ? page_fault_oops+0x15d/0x440\n   ? lock_release+0xbc/0x240\n   ? exc_page_fault+0x4a4/0x970\n   ? asm_exc_page_fault+0x27/0x30\n   ? batch_unpin+0xa2/0x100 [iommufd]\n   ? batch_unpin+0xba/0x100 [iommufd]\n   __iopt_area_unfill_domain+0x198/0x430 [iommufd]\n   ? __mutex_lock+0x8c/0xb80\n   ? __mutex_lock+0x6aa/0xb80\n   ? xa_erase+0x28/0x30\n   ? iopt_table_remove_domain+0x162/0x320 [iommufd]\n   ? lock_release+0xbc/0x240\n   iopt_area_unfill_domain+0xd/0x10 [iommufd]\n   iopt_table_remove_domain+0x195/0x320 [iommufd]\n   iommufd_hw_pagetable_destroy+0xb3/0x110 [iommufd]\n   iommufd_object_destroy_user+0x8e/0xf0 [iommufd]\n   iommufd_device_detach+0xc5/0x140 [iommufd]\n   iommufd_selftest_destroy+0x1f/0x70 [iommufd]\n   iommufd_object_destroy_user+0x8e/0xf0 [iommufd]\n   iommufd_destroy+0x3a/0x50 [iommufd]\n   iommufd_fops_ioctl+0xfb/0x170 [iommufd]\n   __x64_sys_ioctl+0x40d/0x9a0\n   do_syscall_64+0x3c/0x80\n   entry_SYSCALL_64_after_hwframe+0x46/0xb0","Type":"Description","Title":"iommufd: Set end correctly when doing batch carry"}]}}}