ghsa-5c3p-rf64-5rph
Vulnerability from github
Published
2025-09-07 18:31
Modified
2025-09-07 18:31
Details

In the Linux kernel, the following vulnerability has been resolved:

f2fs: vm_unmap_ram() may be called from an invalid context

When testing F2FS with xfstests using UFS backed virtual disks the kernel complains sometimes that f2fs_release_decomp_mem() calls vm_unmap_ram() from an invalid context. Example trace from f2fs/007 test:

f2fs/007 5s ... [12:59:38][ 8.902525] run fstests f2fs/007 [ 11.468026] BUG: sleeping function called from invalid context at mm/vmalloc.c:2978 [ 11.471849] in_atomic(): 1, irqs_disabled(): 1, non_block: 0, pid: 68, name: irq/22-ufshcd [ 11.475357] preempt_count: 1, expected: 0 [ 11.476970] RCU nest depth: 0, expected: 0 [ 11.478531] CPU: 0 UID: 0 PID: 68 Comm: irq/22-ufshcd Tainted: G W 6.16.0-rc5-xfstests-ufs-g40f92e79b0aa #9 PREEMPT(none) [ 11.478535] Tainted: [W]=WARN [ 11.478536] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 [ 11.478537] Call Trace: [ 11.478543] [ 11.478545] dump_stack_lvl+0x4e/0x70 [ 11.478554] __might_resched.cold+0xaf/0xbe [ 11.478557] vm_unmap_ram+0x21/0xb0 [ 11.478560] f2fs_release_decomp_mem+0x59/0x80 [ 11.478563] f2fs_free_dic+0x18/0x1a0 [ 11.478565] f2fs_finish_read_bio+0xd7/0x290 [ 11.478570] blk_update_request+0xec/0x3b0 [ 11.478574] ? sbitmap_queue_clear+0x3b/0x60 [ 11.478576] scsi_end_request+0x27/0x1a0 [ 11.478582] scsi_io_completion+0x40/0x300 [ 11.478583] ufshcd_mcq_poll_cqe_lock+0xa3/0xe0 [ 11.478588] ufshcd_sl_intr+0x194/0x1f0 [ 11.478592] ufshcd_threaded_intr+0x68/0xb0 [ 11.478594] ? __pfx_irq_thread_fn+0x10/0x10 [ 11.478599] irq_thread_fn+0x20/0x60 [ 11.478602] ? __pfx_irq_thread_fn+0x10/0x10 [ 11.478603] irq_thread+0xb9/0x180 [ 11.478605] ? __pfx_irq_thread_dtor+0x10/0x10 [ 11.478607] ? __pfx_irq_thread+0x10/0x10 [ 11.478609] kthread+0x10a/0x230 [ 11.478614] ? __pfx_kthread+0x10/0x10 [ 11.478615] ret_from_fork+0x7e/0xd0 [ 11.478619] ? __pfx_kthread+0x10/0x10 [ 11.478621] ret_from_fork_asm+0x1a/0x30 [ 11.478623]

This patch modifies in_task() check inside f2fs_read_end_io() to also check if interrupts are disabled. This ensures that pages are unmapped asynchronously in an interrupt handler.

Show details on source website


{
  "affected": [],
  "aliases": [
    "CVE-2025-39731"
  ],
  "database_specific": {
    "cwe_ids": [],
    "github_reviewed": false,
    "github_reviewed_at": null,
    "nvd_published_at": "2025-09-07T16:15:48Z",
    "severity": null
  },
  "details": "In the Linux kernel, the following vulnerability has been resolved:\n\nf2fs: vm_unmap_ram() may be called from an invalid context\n\nWhen testing F2FS with xfstests using UFS backed virtual disks the\nkernel complains sometimes that f2fs_release_decomp_mem() calls\nvm_unmap_ram() from an invalid context. Example trace from\nf2fs/007 test:\n\nf2fs/007 5s ...  [12:59:38][    8.902525] run fstests f2fs/007\n[   11.468026] BUG: sleeping function called from invalid context at mm/vmalloc.c:2978\n[   11.471849] in_atomic(): 1, irqs_disabled(): 1, non_block: 0, pid: 68, name: irq/22-ufshcd\n[   11.475357] preempt_count: 1, expected: 0\n[   11.476970] RCU nest depth: 0, expected: 0\n[   11.478531] CPU: 0 UID: 0 PID: 68 Comm: irq/22-ufshcd Tainted: G        W           6.16.0-rc5-xfstests-ufs-g40f92e79b0aa #9 PREEMPT(none)\n[   11.478535] Tainted: [W]=WARN\n[   11.478536] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014\n[   11.478537] Call Trace:\n[   11.478543]  \u003cTASK\u003e\n[   11.478545]  dump_stack_lvl+0x4e/0x70\n[   11.478554]  __might_resched.cold+0xaf/0xbe\n[   11.478557]  vm_unmap_ram+0x21/0xb0\n[   11.478560]  f2fs_release_decomp_mem+0x59/0x80\n[   11.478563]  f2fs_free_dic+0x18/0x1a0\n[   11.478565]  f2fs_finish_read_bio+0xd7/0x290\n[   11.478570]  blk_update_request+0xec/0x3b0\n[   11.478574]  ? sbitmap_queue_clear+0x3b/0x60\n[   11.478576]  scsi_end_request+0x27/0x1a0\n[   11.478582]  scsi_io_completion+0x40/0x300\n[   11.478583]  ufshcd_mcq_poll_cqe_lock+0xa3/0xe0\n[   11.478588]  ufshcd_sl_intr+0x194/0x1f0\n[   11.478592]  ufshcd_threaded_intr+0x68/0xb0\n[   11.478594]  ? __pfx_irq_thread_fn+0x10/0x10\n[   11.478599]  irq_thread_fn+0x20/0x60\n[   11.478602]  ? __pfx_irq_thread_fn+0x10/0x10\n[   11.478603]  irq_thread+0xb9/0x180\n[   11.478605]  ? __pfx_irq_thread_dtor+0x10/0x10\n[   11.478607]  ? __pfx_irq_thread+0x10/0x10\n[   11.478609]  kthread+0x10a/0x230\n[   11.478614]  ? __pfx_kthread+0x10/0x10\n[   11.478615]  ret_from_fork+0x7e/0xd0\n[   11.478619]  ? __pfx_kthread+0x10/0x10\n[   11.478621]  ret_from_fork_asm+0x1a/0x30\n[   11.478623]  \u003c/TASK\u003e\n\nThis patch modifies in_task() check inside f2fs_read_end_io() to also\ncheck if interrupts are disabled. This ensures that pages are unmapped\nasynchronously in an interrupt handler.",
  "id": "GHSA-5c3p-rf64-5rph",
  "modified": "2025-09-07T18:31:27Z",
  "published": "2025-09-07T18:31:27Z",
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2025-39731"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/08a7efc5b02a0620ae16aa9584060e980a69cb55"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/0fe7976b62546f1e95eebfe9879925e9aa22b7a8"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/1023836d1b9465593c8746f97d608da32958785f"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/18eea36f4f460ead3750ed4afe5496f7ce55f99e"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/411e00f44e2e1a7fdb526013b25a7f0ed22a0947"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/eb69e69a5ae6c8350957893b5f68bd55b1565fb2"
    }
  ],
  "schema_version": "1.4.0",
  "severity": []
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…