ublk: fix handling recovery & reissue in ublk_abort_queue()
In the Linux kernel, the following vulnerability has been resolved: ublk: fix handling recovery & reissue in ublk_abort_queue() Commit 8284066946e6 ("ublk: grab request reference when the request is handled by userspace") doesn't grab request reference in case of recovery reissue. Then the request can be requeued & re-dispatch & failed when canceling uring command. If it is one zc request, the request can be freed before io_uring returns the zc buffer back, then cause kernel panic: [ 126.773061] BUG: kernel NULL pointer dereference, address: 00000000000000c8 [ 126.773657] #PF: supervisor read access in kernel mode [ 126.774052] #PF: error_code(0x0000) - not-present page [ 126.774455] PGD 0 P4D 0 [ 126.774698] Oops: Oops: 0000 [#1] SMP NOPTI [ 126.775034] CPU: 13 UID: 0 PID: 1612 Comm: kworker/u64:55 Not tainted 6.14.0_blk+ #182 PREEMPT(full) [ 126.775676] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-1.fc39 04/01/2014 [ 126.776275] Workqueue: iou_exit io_ring_exit_work [ 126.776651] RIP: 0010:ublk_io_release+0x14/0x130 [ublk_drv] Fixes it by always grabbing request reference for aborting the request.
- Products
- Kernel
- Affected versions
- Not specified
- Fixed versions
- 6.12.24, 6.13.12, 6.14.3, 6.6.160
- CVEs
- CVE-2025-37759
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 4 Nov 2026, 16:05 UTC · Revision 1
Source evidence
ublk: fix handling recovery & reissue in ublk_abort_queue()
core-osv · Original sourcePublished 1 May 2025, 12:56 UTC
In the Linux kernel, the following vulnerability has been resolved: ublk: fix handling recovery & reissue in ublk_abort_queue() Commit 8284066946e6 ("ublk: grab request reference when the request is handled by userspace") doesn't grab request reference in case of recovery reissue. Then the request can be requeued & re-dispatch & failed when canceling uring command. If it is one zc request, the request can be freed before io_uring returns the zc buffer back, then cause kernel panic: [ 126.773061] BUG: kernel NULL pointer dereference, address: 00000000000000c8 [ 126.773657] #PF: supervisor read access in kernel mode [ 126.774052] #PF: error_code(0x0000) - not-present page [ 126.774455] PGD 0 P4D 0 [ 126.774698] Oops: Oops: 0000 [#1] SMP NOPTI [ 126.775034] CPU: 13 UID: 0 PID: 1612 Comm: kworker/u64:55 Not tainted 6.14.0_blk+ #182 PREEMPT(full) [ 126.775676] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-1.fc39 04/01/2014 [ 126.776275] Workqueue: iou_exit io_ring_exit_work [ 126.776651] RIP: 0010:ublk_io_release+0x14/0x130 [ublk_drv] Fixes it by always grabbing request reference for aborting the request.
osv:CVE-2025-37759
Kernel
Fixed versions: 6.6.160, 6.12.24, 6.13.12, 6.14.3
Complete source record
{
"id": "5e370c2df672f824b98f91efcc8e191438e84f6791f4b2832dab7469c92bad07",
"url": "https://osv.dev/vulnerability/CVE-2025-37759",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "ublk: fix handling recovery & reissue in ublk_abort_queue()",
"summary": "In the Linux kernel, the following vulnerability has been resolved: ublk: fix handling recovery & reissue in ublk_abort_queue() Commit 8284066946e6 (\"ublk: grab request reference when the request is handled by userspace\") doesn't grab request reference in case of recovery reissue. Then the request can be requeued & re-dispatch & failed when canceling uring command. If it is one zc request, the request can be freed before io_uring returns the zc buffer back, then cause kernel panic: [ 126.773061] BUG: kernel NULL pointer dereference, address: 00000000000000c8 [ 126.773657] #PF: supervisor read access in kernel mode [ 126.774052] #PF: error_code(0x0000) - not-present page [ 126.774455] PGD 0 P4D 0 [ 126.774698] Oops: Oops: 0000 [#1] SMP NOPTI [ 126.775034] CPU: 13 UID: 0 PID: 1612 Comm: kworker/u64:55 Not tainted 6.14.0_blk+ #182 PREEMPT(full) [ 126.775676] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-1.fc39 04/01/2014 [ 126.776275] Workqueue: iou_exit io_ring_exit_work [ 126.776651] RIP: 0010:ublk_io_release+0x14/0x130 [ublk_drv] Fixes it by always grabbing request reference for aborting the request.",
"evidence": "osv:CVE-2025-37759",
"products": [
{
"name": {
"value": "Kernel",
"evidence": "/affected/1/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "6.6.160",
"evidence": "/affected/1/ranges"
},
{
"value": "6.12.24",
"evidence": "/affected/1/ranges"
},
{
"value": "6.13.12",
"evidence": "/affected/1/ranges"
},
{
"value": "6.14.3",
"evidence": "/affected/1/ranges"
}
],
"affected_versions": []
}
],
"severity": "unknown",
"structured": {
"id": "CVE-2025-37759",
"aliases": [
"CVE-2025-37759"
],
"affected": [
{
"ranges": [
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "8284066946e6d9cc979566ce698fe24e7ca0b31e"
},
{
"fixed": "ab41bf5a211fbec3a85e025658ed90a911ccb692"
},
{
"fixed": "caa5c8a2358604f38bf0a4afaa5eacda13763067"
},
{
"fixed": "5d34a30efac9c9c93e150130caa940c0df6053c1"
},
{
"fixed": "0a21d259ca4d6310fdfcc0284ebbc000e66cbf70"
},
{
"fixed": "6ee6bd5d4fce502a5b5a2ea805e9ff16e6aa890f"
}
]
}
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2025-37759.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "6.5.0"
},
{
"fixed": "6.6.160"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "6.7.0"
},
{
"fixed": "6.12.24"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "6.13.0"
},
{
"fixed": "6.13.12"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "6.14.0"
},
{
"fixed": "6.14.3"
}
]
}
],
"package": {
"name": "Kernel",
"ecosystem": "Linux"
},
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2025-37759.json"
}
}
],
"modified": "2026-10-28T02:30:37.192922351Z",
"provider": "osv",
"references": [
"https://git.kernel.org/stable/c/0a21d259ca4d6310fdfcc0284ebbc000e66cbf70",
"https://git.kernel.org/stable/c/5d34a30efac9c9c93e150130caa940c0df6053c1",
"https://git.kernel.org/stable/c/6ee6bd5d4fce502a5b5a2ea805e9ff16e6aa890f",
"https://git.kernel.org/stable/c/ab41bf5a211fbec3a85e025658ed90a911ccb692",
"https://git.kernel.org/stable/c/caa5c8a2358604f38bf0a4afaa5eacda13763067",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/37xxx/CVE-2025-37759.json",
"https://nvd.nist.gov/vuln/detail/CVE-2025-37759",
"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
],
"provider_metadata": {
"cna_assigner": "Linux",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/37xxx/CVE-2025-37759.json"
}
},
"related_cves": [
{
"value": "CVE-2025-37759",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": null
},
"source_id": "core-osv",
"document_id": 504490,
"published_at": "2025-05-01T12:56:03.462+00:00"
}