FKIE_CVE-2026-89496
Vulnerability from fkie_nvd - Published: 2026-09-11 20:19 - Updated: 2026-09-14 13:19
Severity
Summary
In the Linux kernel, the following vulnerability has been resolved:
ocfs2: always run deallocs on copy-on-write completion
Local fuzzing of 6.12.94 has found the following memory leak
caused by doing 'copy_file_range()' within the same filesystem:
unreferenced object 0xffff88812192c980 (size 32):
comm "syz.0.49", pid 12095, jiffies 4294964143
hex dump (first 32 bytes):
00 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 ................
c0 c5 92 21 81 88 ff ff 00 02 00 00 00 06 00 00 ...!............
backtrace (crc 7068d63f):
kmemleak_alloc_recursive include/linux/kmemleak.h:42 [inline]
slab_post_alloc_hook mm/slub.c:4152 [inline]
slab_alloc_node mm/slub.c:4197 [inline]
__kmalloc_cache_noprof+0x168/0x2c0 mm/slub.c:4358
kmalloc_noprof include/linux/slab.h:878 [inline]
ocfs2_find_per_slot_free_list fs/ocfs2/alloc.c:6618 [inline]
ocfs2_cache_block_dealloc+0x155/0x4b0 fs/ocfs2/alloc.c:6786
ocfs2_cache_extent_block_free fs/ocfs2/alloc.c:6819 [inline]
ocfs2_unlink_path+0x286/0x450 fs/ocfs2/alloc.c:2613
ocfs2_rotate_subtree_left fs/ocfs2/alloc.c:2779 [inline]
__ocfs2_rotate_tree_left+0x1f6f/0x2da0 fs/ocfs2/alloc.c:2985
ocfs2_rotate_tree_left+0x283/0xe00 fs/ocfs2/alloc.c:3237
ocfs2_try_to_merge_extent+0xf56/0x1a20 fs/ocfs2/alloc.c:3825
ocfs2_split_extent+0x15f4/0x2940 fs/ocfs2/alloc.c:5138
ocfs2_clear_ext_refcount+0x2f6/0x550 fs/ocfs2/refcounttree.c:3098
ocfs2_replace_clusters fs/ocfs2/refcounttree.c:3131 [inline]
ocfs2_make_clusters_writable fs/ocfs2/refcounttree.c:3255 [inline]
ocfs2_replace_cow+0x991/0x1660 fs/ocfs2/refcounttree.c:3349
ocfs2_refcount_cow_hunk fs/ocfs2/refcounttree.c:3427 [inline]
ocfs2_refcount_cow+0x5e1/0x9f0 fs/ocfs2/refcounttree.c:3470
ocfs2_prepare_inode_for_write fs/ocfs2/file.c:2340 [inline]
ocfs2_file_write_iter+0xbda/0x1880 fs/ocfs2/file.c:2451
iter_file_splice_write+0x890/0xf60 fs/splice.c:743
do_splice_from fs/splice.c:944 [inline]
direct_splice_actor+0x232/0x480 fs/splice.c:1167
splice_direct_to_actor+0x4b4/0xb60 fs/splice.c:1111
do_splice_direct_actor fs/splice.c:1210 [inline]
do_splice_direct+0x10f/0x1c0 fs/splice.c:1236
do_sendfile+0x430/0xbf0 fs/read_write.c:1388
unreferenced object 0xffff88812192c5c0 (size 32):
comm "syz.0.49", pid 12095, jiffies 4294964143
hex dump (first 32 bytes):
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
29 70 00 00 00 00 00 00 19 00 00 00 00 00 00 00 )p..............
backtrace (crc afec850f):
kmemleak_alloc_recursive include/linux/kmemleak.h:42 [inline]
slab_post_alloc_hook mm/slub.c:4152 [inline]
slab_alloc_node mm/slub.c:4197 [inline]
__kmalloc_cache_noprof+0x168/0x2c0 mm/slub.c:4358
kmalloc_noprof include/linux/slab.h:878 [inline]
kzalloc_noprof include/linux/slab.h:1014 [inline]
ocfs2_cache_block_dealloc+0x25c/0x4b0 fs/ocfs2/alloc.c:6793
ocfs2_cache_extent_block_free fs/ocfs2/alloc.c:6819 [inline]
ocfs2_unlink_path+0x286/0x450 fs/ocfs2/alloc.c:2613
ocfs2_rotate_subtree_left fs/ocfs2/alloc.c:2779 [inline]
__ocfs2_rotate_tree_left+0x1f6f/0x2da0 fs/ocfs2/alloc.c:2985
ocfs2_rotate_tree_left+0x283/0xe00 fs/ocfs2/alloc.c:3237
ocfs2_try_to_merge_extent+0xf56/0x1a20 fs/ocfs2/alloc.c:3825
ocfs2_split_extent+0x15f4/0x2940 fs/ocfs2/alloc.c:5138
ocfs2_clear_ext_refcount+0x2f6/0x550 fs/ocfs2/refcounttree.c:3098
ocfs2_replace_clusters fs/ocfs2/refcounttree.c:3131 [inline]
ocfs2_make_clusters_writable fs/ocfs2/refcounttree.c:3255 [inline]
ocfs2_replace_cow+0x991/0x1660 fs/ocfs2/refcounttree.c:3349
ocfs2_refcount_cow_hunk fs/ocfs2/refcounttree.c:3427 [inline]
ocfs2_refcount_cow+0x5e1/0x9f0 fs/ocfs2/refcounttree.c:3470
ocfs2_prepare_inode_for_write fs/ocfs2/file.c:2340 [inline]
ocfs2_file_write_iter+0xbda/0x1880 fs/ocfs2/file.c:2451
iter_file_splice_write+0x890/0xf60 fs/splice.c:743
do_splice_from fs/splice.c:9
---truncated---
References
Impacted products
| Vendor | Product | Version |
|---|
{
"affected": [
{
"affectedData": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/ocfs2/refcounttree.c",
"fs/ocfs2/xattr.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "5ff30f07def6d0e6edacf47952807b5ff60f3af6",
"status": "affected",
"version": "6f70fa519976a379d72781d927cf8e5f5b05ec86",
"versionType": "git"
},
{
"lessThan": "2753e12853ed2023555cec2c5fe22fbaabb2c0b7",
"status": "affected",
"version": "6f70fa519976a379d72781d927cf8e5f5b05ec86",
"versionType": "git"
},
{
"lessThan": "f0261b3aca027f5c409a402ea22f6982750f911c",
"status": "affected",
"version": "6f70fa519976a379d72781d927cf8e5f5b05ec86",
"versionType": "git"
},
{
"lessThan": "a4adaa722977f46511d4247172cd4ec991b80ff2",
"status": "affected",
"version": "6f70fa519976a379d72781d927cf8e5f5b05ec86",
"versionType": "git"
},
{
"lessThan": "123c050eb96aae0bab74c9f06c6ad3de7992722b",
"status": "affected",
"version": "6f70fa519976a379d72781d927cf8e5f5b05ec86",
"versionType": "git"
},
{
"lessThan": "71f07b7f90b3109c9098d1b9c8efbbeece5deb8a",
"status": "affected",
"version": "6f70fa519976a379d72781d927cf8e5f5b05ec86",
"versionType": "git"
},
{
"lessThan": "09e93a60e18e83a630ff84ae00cb564bab96ab1f",
"status": "affected",
"version": "6f70fa519976a379d72781d927cf8e5f5b05ec86",
"versionType": "git"
},
{
"lessThan": "82ea9d4fc05fb7a387db547c6a7c0aa6a3719616",
"status": "affected",
"version": "6f70fa519976a379d72781d927cf8e5f5b05ec86",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/ocfs2/refcounttree.c",
"fs/ocfs2/xattr.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.32"
},
{
"lessThan": "2.6.32",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3-rc1",
"versionType": "original_commit_for_fix"
}
]
}
],
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}
],
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nocfs2: always run deallocs on copy-on-write completion\n\nLocal fuzzing of 6.12.94 has found the following memory leak\ncaused by doing \u0027copy_file_range()\u0027 within the same filesystem:\n\nunreferenced object 0xffff88812192c980 (size 32):\n comm \"syz.0.49\", pid 12095, jiffies 4294964143\n hex dump (first 32 bytes):\n 00 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 ................\n c0 c5 92 21 81 88 ff ff 00 02 00 00 00 06 00 00 ...!............\n backtrace (crc 7068d63f):\n kmemleak_alloc_recursive include/linux/kmemleak.h:42 [inline]\n slab_post_alloc_hook mm/slub.c:4152 [inline]\n slab_alloc_node mm/slub.c:4197 [inline]\n __kmalloc_cache_noprof+0x168/0x2c0 mm/slub.c:4358\n kmalloc_noprof include/linux/slab.h:878 [inline]\n ocfs2_find_per_slot_free_list fs/ocfs2/alloc.c:6618 [inline]\n ocfs2_cache_block_dealloc+0x155/0x4b0 fs/ocfs2/alloc.c:6786\n ocfs2_cache_extent_block_free fs/ocfs2/alloc.c:6819 [inline]\n ocfs2_unlink_path+0x286/0x450 fs/ocfs2/alloc.c:2613\n ocfs2_rotate_subtree_left fs/ocfs2/alloc.c:2779 [inline]\n __ocfs2_rotate_tree_left+0x1f6f/0x2da0 fs/ocfs2/alloc.c:2985\n ocfs2_rotate_tree_left+0x283/0xe00 fs/ocfs2/alloc.c:3237\n ocfs2_try_to_merge_extent+0xf56/0x1a20 fs/ocfs2/alloc.c:3825\n ocfs2_split_extent+0x15f4/0x2940 fs/ocfs2/alloc.c:5138\n ocfs2_clear_ext_refcount+0x2f6/0x550 fs/ocfs2/refcounttree.c:3098\n ocfs2_replace_clusters fs/ocfs2/refcounttree.c:3131 [inline]\n ocfs2_make_clusters_writable fs/ocfs2/refcounttree.c:3255 [inline]\n ocfs2_replace_cow+0x991/0x1660 fs/ocfs2/refcounttree.c:3349\n ocfs2_refcount_cow_hunk fs/ocfs2/refcounttree.c:3427 [inline]\n ocfs2_refcount_cow+0x5e1/0x9f0 fs/ocfs2/refcounttree.c:3470\n ocfs2_prepare_inode_for_write fs/ocfs2/file.c:2340 [inline]\n ocfs2_file_write_iter+0xbda/0x1880 fs/ocfs2/file.c:2451\n iter_file_splice_write+0x890/0xf60 fs/splice.c:743\n do_splice_from fs/splice.c:944 [inline]\n direct_splice_actor+0x232/0x480 fs/splice.c:1167\n splice_direct_to_actor+0x4b4/0xb60 fs/splice.c:1111\n do_splice_direct_actor fs/splice.c:1210 [inline]\n do_splice_direct+0x10f/0x1c0 fs/splice.c:1236\n do_sendfile+0x430/0xbf0 fs/read_write.c:1388\n\nunreferenced object 0xffff88812192c5c0 (size 32):\n comm \"syz.0.49\", pid 12095, jiffies 4294964143\n hex dump (first 32 bytes):\n 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................\n 29 70 00 00 00 00 00 00 19 00 00 00 00 00 00 00 )p..............\n backtrace (crc afec850f):\n kmemleak_alloc_recursive include/linux/kmemleak.h:42 [inline]\n slab_post_alloc_hook mm/slub.c:4152 [inline]\n slab_alloc_node mm/slub.c:4197 [inline]\n __kmalloc_cache_noprof+0x168/0x2c0 mm/slub.c:4358\n kmalloc_noprof include/linux/slab.h:878 [inline]\n kzalloc_noprof include/linux/slab.h:1014 [inline]\n ocfs2_cache_block_dealloc+0x25c/0x4b0 fs/ocfs2/alloc.c:6793\n ocfs2_cache_extent_block_free fs/ocfs2/alloc.c:6819 [inline]\n ocfs2_unlink_path+0x286/0x450 fs/ocfs2/alloc.c:2613\n ocfs2_rotate_subtree_left fs/ocfs2/alloc.c:2779 [inline]\n __ocfs2_rotate_tree_left+0x1f6f/0x2da0 fs/ocfs2/alloc.c:2985\n ocfs2_rotate_tree_left+0x283/0xe00 fs/ocfs2/alloc.c:3237\n ocfs2_try_to_merge_extent+0xf56/0x1a20 fs/ocfs2/alloc.c:3825\n ocfs2_split_extent+0x15f4/0x2940 fs/ocfs2/alloc.c:5138\n ocfs2_clear_ext_refcount+0x2f6/0x550 fs/ocfs2/refcounttree.c:3098\n ocfs2_replace_clusters fs/ocfs2/refcounttree.c:3131 [inline]\n ocfs2_make_clusters_writable fs/ocfs2/refcounttree.c:3255 [inline]\n ocfs2_replace_cow+0x991/0x1660 fs/ocfs2/refcounttree.c:3349\n ocfs2_refcount_cow_hunk fs/ocfs2/refcounttree.c:3427 [inline]\n ocfs2_refcount_cow+0x5e1/0x9f0 fs/ocfs2/refcounttree.c:3470\n ocfs2_prepare_inode_for_write fs/ocfs2/file.c:2340 [inline]\n ocfs2_file_write_iter+0xbda/0x1880 fs/ocfs2/file.c:2451\n iter_file_splice_write+0x890/0xf60 fs/splice.c:743\n do_splice_from fs/splice.c:9\n---truncated---"
}
],
"id": "CVE-2026-89496",
"lastModified": "2026-09-14T13:19:06.767",
"metrics": {},
"published": "2026-09-11T20:19:31.657",
"references": [
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"url": "https://git.kernel.org/stable/c/09e93a60e18e83a630ff84ae00cb564bab96ab1f"
},
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"url": "https://git.kernel.org/stable/c/123c050eb96aae0bab74c9f06c6ad3de7992722b"
},
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"url": "https://git.kernel.org/stable/c/2753e12853ed2023555cec2c5fe22fbaabb2c0b7"
},
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"url": "https://git.kernel.org/stable/c/5ff30f07def6d0e6edacf47952807b5ff60f3af6"
},
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"url": "https://git.kernel.org/stable/c/71f07b7f90b3109c9098d1b9c8efbbeece5deb8a"
},
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"url": "https://git.kernel.org/stable/c/82ea9d4fc05fb7a387db547c6a7c0aa6a3719616"
},
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"url": "https://git.kernel.org/stable/c/a4adaa722977f46511d4247172cd4ec991b80ff2"
},
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"url": "https://git.kernel.org/stable/c/f0261b3aca027f5c409a402ea22f6982750f911c"
}
],
"sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"vulnStatus": "Received"
}
Loading…
Loading…
Experimental. This forecast is provided for visualization only and may change without notice. Do not use it for operational decisions.
Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Loading…
The MITRE ATT&CK techniques below are AI-generated suggestions, inferred from the description of the
vulnerability by the CIRCL/vulnerability-attack-technique-classification-roberta-base
model, served locally by ML-Gateway.
They have not been verified by an analyst and are provided for guidance only.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Browse all ATT&CK techniques and the vulnerabilities related to each.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Browse all ATT&CK techniques and the vulnerabilities related to each.
Loading…
Related by attack behaviour
Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.
Loading…