GHSA-WXHH-3JVH-R4HP
Vulnerability from github – Published: 2026-09-11 21:31 – Updated: 2026-09-14 15:32In 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---
{
"affected": [],
"aliases": [
"CVE-2026-89496"
],
"database_specific": {
"cwe_ids": [],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2026-09-11T20:19:31Z",
"severity": null
},
"details": "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": "GHSA-wxhh-3jvh-r4hp",
"modified": "2026-09-14T15:32:27Z",
"published": "2026-09-11T21:31:29Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-89496"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/09e93a60e18e83a630ff84ae00cb564bab96ab1f"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/123c050eb96aae0bab74c9f06c6ad3de7992722b"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/2753e12853ed2023555cec2c5fe22fbaabb2c0b7"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/5ff30f07def6d0e6edacf47952807b5ff60f3af6"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/71f07b7f90b3109c9098d1b9c8efbbeece5deb8a"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/82ea9d4fc05fb7a387db547c6a7c0aa6a3719616"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/a4adaa722977f46511d4247172cd4ec991b80ff2"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/f0261b3aca027f5c409a402ea22f6982750f911c"
}
],
"schema_version": "1.4.0",
"severity": []
}
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.
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.
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.