{"id":"CVE-2025-38256","state":"PUBLISHED","title":"io_uring/rsrc: fix folio unpinning","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nio_uring/rsrc: fix folio unpinning\n\nsyzbot complains about an unmapping failure:\n\n[  108.070381][   T14] kernel BUG at mm/gup.c:71!\n[  108.070502][   T14] Internal error: Oops - BUG: 00000000f2000800 [#1]  SMP\n[  108.123672][   T14] Hardware name: QEMU KVM Virtual Machine, BIOS edk2-20250221-8.fc42 02/21/2025\n[  108.127458][   T14] Workqueue: iou_exit io_ring_exit_work\n[  108.174205][   T14] Call trace:\n[  108.175649][   T14]  sanity_check_pinned_pages+0x7cc/0x7d0 (P)\n[  108.178138][   T14]  unpin_user_page+0x80/0x10c\n[  108.180189][   T14]  io_release_ubuf+0x84/0xf8\n[  108.182196][   T14]  io_free_rsrc_node+0x250/0x57c\n[  108.184345][   T14]  io_rsrc_data_free+0x148/0x298\n[  108.186493][   T14]  io_sqe_buffers_unregister+0x84/0xa0\n[  108.188991][   T14]  io_ring_ctx_free+0x48/0x480\n[  108.191057][   T14]  io_ring_exit_work+0x764/0x7d8\n[  108.193207][   T14]  process_one_work+0x7e8/0x155c\n[  108.195431][   T14]  worker_thread+0x958/0xed8\n[  108.197561][   T14]  kthread+0x5fc/0x75c\n[  108.199362][   T14]  ret_from_fork+0x10/0x20\n\nWe can pin a tail page of a folio, but then io_uring will try to unpin\nthe head page of the folio. While it should be fine in terms of keeping\nthe page actually alive, mm folks say it's wrong and triggers a debug\nwarning. Use unpin_user_folio() instead of unpin_user_page*.\n\n[axboe: adapt to current tree, massage commit message]","publishedAt":"2025-07-09T10:42:33.819Z","updatedAt":"2026-05-11T21:24:16.843Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"a8edbb424b1391b077407c75d8f5d2ede77aa70d","status":"affected","lessThan":"53fd75f25b223878b5fff14932e3a22f42b54f77","versionType":"git"},{"version":"a8edbb424b1391b077407c75d8f5d2ede77aa70d","status":"affected","lessThan":"11e7b7369e655e6131387b174218d7fa9557b3da","versionType":"git"},{"version":"a8edbb424b1391b077407c75d8f5d2ede77aa70d","status":"affected","lessThan":"5afb4bf9fc62d828647647ec31745083637132e4","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["io_uring/rsrc.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.12","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.12","versionType":"semver"},{"version":"6.12.36","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.15.5","status":"unaffected","lessThanOrEqual":"6.15.*","versionType":"semver"},{"version":"6.16","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["io_uring/rsrc.c"]}],"references":["https://git.kernel.org/stable/c/53fd75f25b223878b5fff14932e3a22f42b54f77","https://git.kernel.org/stable/c/11e7b7369e655e6131387b174218d7fa9557b3da","https://git.kernel.org/stable/c/5afb4bf9fc62d828647647ec31745083637132e4"],"weaknesses":[],"ingestedAt":"2026-10-29T20:09:09.358Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2025/38xxx/CVE-2025-38256.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2025-38256","state":"PUBLISHED","datePublished":"2025-07-09T10:42:33.819Z","dateUpdated":"2026-05-11T21:24:16.843Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2025-04-16T04:51:23.997Z"},"containers":{"cna":{"title":"io_uring/rsrc: fix folio unpinning","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nio_uring/rsrc: fix folio unpinning\n\nsyzbot complains about an unmapping failure:\n\n[  108.070381][   T14] kernel BUG at mm/gup.c:71!\n[  108.070502][   T14] Internal error: Oops - BUG: 00000000f2000800 [#1]  SMP\n[  108.123672][   T14] Hardware name: QEMU KVM Virtual Machine, BIOS edk2-20250221-8.fc42 02/21/2025\n[  108.127458][   T14] Workqueue: iou_exit io_ring_exit_work\n[  108.174205][   T14] Call trace:\n[  108.175649][   T14]  sanity_check_pinned_pages+0x7cc/0x7d0 (P)\n[  108.178138][   T14]  unpin_user_page+0x80/0x10c\n[  108.180189][   T14]  io_release_ubuf+0x84/0xf8\n[  108.182196][   T14]  io_free_rsrc_node+0x250/0x57c\n[  108.184345][   T14]  io_rsrc_data_free+0x148/0x298\n[  108.186493][   T14]  io_sqe_buffers_unregister+0x84/0xa0\n[  108.188991][   T14]  io_ring_ctx_free+0x48/0x480\n[  108.191057][   T14]  io_ring_exit_work+0x764/0x7d8\n[  108.193207][   T14]  process_one_work+0x7e8/0x155c\n[  108.195431][   T14]  worker_thread+0x958/0xed8\n[  108.197561][   T14]  kthread+0x5fc/0x75c\n[  108.199362][   T14]  ret_from_fork+0x10/0x20\n\nWe can pin a tail page of a folio, but then io_uring will try to unpin\nthe head page of the folio. While it should be fine in terms of keeping\nthe page actually alive, mm folks say it's wrong and triggers a debug\nwarning. Use unpin_user_folio() instead of unpin_user_page*.\n\n[axboe: adapt to current tree, massage commit message]"}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"a8edbb424b1391b077407c75d8f5d2ede77aa70d","status":"affected","lessThan":"53fd75f25b223878b5fff14932e3a22f42b54f77","versionType":"git"},{"version":"a8edbb424b1391b077407c75d8f5d2ede77aa70d","status":"affected","lessThan":"11e7b7369e655e6131387b174218d7fa9557b3da","versionType":"git"},{"version":"a8edbb424b1391b077407c75d8f5d2ede77aa70d","status":"affected","lessThan":"5afb4bf9fc62d828647647ec31745083637132e4","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["io_uring/rsrc.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.12","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.12","versionType":"semver"},{"version":"6.12.36","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.15.5","status":"unaffected","lessThanOrEqual":"6.15.*","versionType":"semver"},{"version":"6.16","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["io_uring/rsrc.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/53fd75f25b223878b5fff14932e3a22f42b54f77"},{"url":"https://git.kernel.org/stable/c/11e7b7369e655e6131387b174218d7fa9557b3da"},{"url":"https://git.kernel.org/stable/c/5afb4bf9fc62d828647647ec31745083637132e4"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-05-11T21:24:16.843Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.12","versionEndExcluding":"6.12.36"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.12","versionEndExcluding":"6.15.5"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.12","versionEndExcluding":"6.16"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}