CVE-2026-23224 (GCVE-0-2026-23224)

Vulnerability from cvelistv5 – Published: 2026-02-18 14:53 – Updated: 2026-02-18 14:53
VLAI?
Title
erofs: fix UAF issue for file-backed mounts w/ directio option
Summary
In the Linux kernel, the following vulnerability has been resolved: erofs: fix UAF issue for file-backed mounts w/ directio option [ 9.269940][ T3222] Call trace: [ 9.269948][ T3222] ext4_file_read_iter+0xac/0x108 [ 9.269979][ T3222] vfs_iocb_iter_read+0xac/0x198 [ 9.269993][ T3222] erofs_fileio_rq_submit+0x12c/0x180 [ 9.270008][ T3222] erofs_fileio_submit_bio+0x14/0x24 [ 9.270030][ T3222] z_erofs_runqueue+0x834/0x8ac [ 9.270054][ T3222] z_erofs_read_folio+0x120/0x220 [ 9.270083][ T3222] filemap_read_folio+0x60/0x120 [ 9.270102][ T3222] filemap_fault+0xcac/0x1060 [ 9.270119][ T3222] do_pte_missing+0x2d8/0x1554 [ 9.270131][ T3222] handle_mm_fault+0x5ec/0x70c [ 9.270142][ T3222] do_page_fault+0x178/0x88c [ 9.270167][ T3222] do_translation_fault+0x38/0x54 [ 9.270183][ T3222] do_mem_abort+0x54/0xac [ 9.270208][ T3222] el0_da+0x44/0x7c [ 9.270227][ T3222] el0t_64_sync_handler+0x5c/0xf4 [ 9.270253][ T3222] el0t_64_sync+0x1bc/0x1c0 EROFS may encounter above panic when enabling file-backed mount w/ directio mount option, the root cause is it may suffer UAF in below race condition: - z_erofs_read_folio wq s_dio_done_wq - z_erofs_runqueue - erofs_fileio_submit_bio - erofs_fileio_rq_submit - vfs_iocb_iter_read - ext4_file_read_iter - ext4_dio_read_iter - iomap_dio_rw : bio was submitted and return -EIOCBQUEUED - dio_aio_complete_work - dio_complete - dio->iocb->ki_complete (erofs_fileio_ki_complete()) - kfree(rq) : it frees iocb, iocb.ki_filp can be UAF in file_accessed(). - file_accessed : access NULL file point Introduce a reference count in struct erofs_fileio_rq, and initialize it as two, both erofs_fileio_ki_complete() and erofs_fileio_rq_submit() will decrease reference count, the last one decreasing the reference count to zero will free rq.
Severity ?
No CVSS data available.
Assigner
Impacted products
Vendor Product Version
Linux Linux Affected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 , < ae385826840a3c8e09bf38cac90adcd690716f57 (git)
Affected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 , < d741534302f71c511eb0bb670b92eaa7df4a0aec (git)
Affected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 , < b2ee5e4d5446babd23ff7beb4e636be0fb3ea5aa (git)
Create a notification for this product.
    Linux Linux Unaffected: 6.12.72 , ≤ 6.12.* (semver)
Unaffected: 6.18.11 , ≤ 6.18.* (semver)
Unaffected: 6.19.1 , ≤ 6.19.* (semver)
Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "fs/erofs/fileio.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "ae385826840a3c8e09bf38cac90adcd690716f57",
              "status": "affected",
              "version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
              "versionType": "git"
            },
            {
              "lessThan": "d741534302f71c511eb0bb670b92eaa7df4a0aec",
              "status": "affected",
              "version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
              "versionType": "git"
            },
            {
              "lessThan": "b2ee5e4d5446babd23ff7beb4e636be0fb3ea5aa",
              "status": "affected",
              "version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "fs/erofs/fileio.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.72",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.11",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.19.*",
              "status": "unaffected",
              "version": "6.19.1",
              "versionType": "semver"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.72",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.11",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.19.1",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nerofs: fix UAF issue for file-backed mounts w/ directio option\n\n[    9.269940][ T3222] Call trace:\n[    9.269948][ T3222]  ext4_file_read_iter+0xac/0x108\n[    9.269979][ T3222]  vfs_iocb_iter_read+0xac/0x198\n[    9.269993][ T3222]  erofs_fileio_rq_submit+0x12c/0x180\n[    9.270008][ T3222]  erofs_fileio_submit_bio+0x14/0x24\n[    9.270030][ T3222]  z_erofs_runqueue+0x834/0x8ac\n[    9.270054][ T3222]  z_erofs_read_folio+0x120/0x220\n[    9.270083][ T3222]  filemap_read_folio+0x60/0x120\n[    9.270102][ T3222]  filemap_fault+0xcac/0x1060\n[    9.270119][ T3222]  do_pte_missing+0x2d8/0x1554\n[    9.270131][ T3222]  handle_mm_fault+0x5ec/0x70c\n[    9.270142][ T3222]  do_page_fault+0x178/0x88c\n[    9.270167][ T3222]  do_translation_fault+0x38/0x54\n[    9.270183][ T3222]  do_mem_abort+0x54/0xac\n[    9.270208][ T3222]  el0_da+0x44/0x7c\n[    9.270227][ T3222]  el0t_64_sync_handler+0x5c/0xf4\n[    9.270253][ T3222]  el0t_64_sync+0x1bc/0x1c0\n\nEROFS may encounter above panic when enabling file-backed mount w/\ndirectio mount option, the root cause is it may suffer UAF in below\nrace condition:\n\n- z_erofs_read_folio                          wq s_dio_done_wq\n - z_erofs_runqueue\n  - erofs_fileio_submit_bio\n   - erofs_fileio_rq_submit\n    - vfs_iocb_iter_read\n     - ext4_file_read_iter\n      - ext4_dio_read_iter\n       - iomap_dio_rw\n       : bio was submitted and return -EIOCBQUEUED\n                                              - dio_aio_complete_work\n                                               - dio_complete\n                                                - dio-\u003eiocb-\u003eki_complete (erofs_fileio_ki_complete())\n                                                 - kfree(rq)\n                                                 : it frees iocb, iocb.ki_filp can be UAF in file_accessed().\n       - file_accessed\n       : access NULL file point\n\nIntroduce a reference count in struct erofs_fileio_rq, and initialize it\nas two, both erofs_fileio_ki_complete() and erofs_fileio_rq_submit() will\ndecrease reference count, the last one decreasing the reference count\nto zero will free rq."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-02-18T14:53:27.462Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/ae385826840a3c8e09bf38cac90adcd690716f57"
        },
        {
          "url": "https://git.kernel.org/stable/c/d741534302f71c511eb0bb670b92eaa7df4a0aec"
        },
        {
          "url": "https://git.kernel.org/stable/c/b2ee5e4d5446babd23ff7beb4e636be0fb3ea5aa"
        }
      ],
      "title": "erofs: fix UAF issue for file-backed mounts w/ directio option",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-23224",
    "datePublished": "2026-02-18T14:53:27.462Z",
    "dateReserved": "2026-01-13T15:37:45.987Z",
    "dateUpdated": "2026-02-18T14:53:27.462Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "nvd": "{\"cve\":{\"id\":\"CVE-2026-23224\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2026-02-18T16:22:32.143\",\"lastModified\":\"2026-02-18T17:51:53.510\",\"vulnStatus\":\"Awaiting Analysis\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nerofs: fix UAF issue for file-backed mounts w/ directio option\\n\\n[    9.269940][ T3222] Call trace:\\n[    9.269948][ T3222]  ext4_file_read_iter+0xac/0x108\\n[    9.269979][ T3222]  vfs_iocb_iter_read+0xac/0x198\\n[    9.269993][ T3222]  erofs_fileio_rq_submit+0x12c/0x180\\n[    9.270008][ T3222]  erofs_fileio_submit_bio+0x14/0x24\\n[    9.270030][ T3222]  z_erofs_runqueue+0x834/0x8ac\\n[    9.270054][ T3222]  z_erofs_read_folio+0x120/0x220\\n[    9.270083][ T3222]  filemap_read_folio+0x60/0x120\\n[    9.270102][ T3222]  filemap_fault+0xcac/0x1060\\n[    9.270119][ T3222]  do_pte_missing+0x2d8/0x1554\\n[    9.270131][ T3222]  handle_mm_fault+0x5ec/0x70c\\n[    9.270142][ T3222]  do_page_fault+0x178/0x88c\\n[    9.270167][ T3222]  do_translation_fault+0x38/0x54\\n[    9.270183][ T3222]  do_mem_abort+0x54/0xac\\n[    9.270208][ T3222]  el0_da+0x44/0x7c\\n[    9.270227][ T3222]  el0t_64_sync_handler+0x5c/0xf4\\n[    9.270253][ T3222]  el0t_64_sync+0x1bc/0x1c0\\n\\nEROFS may encounter above panic when enabling file-backed mount w/\\ndirectio mount option, the root cause is it may suffer UAF in below\\nrace condition:\\n\\n- z_erofs_read_folio                          wq s_dio_done_wq\\n - z_erofs_runqueue\\n  - erofs_fileio_submit_bio\\n   - erofs_fileio_rq_submit\\n    - vfs_iocb_iter_read\\n     - ext4_file_read_iter\\n      - ext4_dio_read_iter\\n       - iomap_dio_rw\\n       : bio was submitted and return -EIOCBQUEUED\\n                                              - dio_aio_complete_work\\n                                               - dio_complete\\n                                                - dio-\u003eiocb-\u003eki_complete (erofs_fileio_ki_complete())\\n                                                 - kfree(rq)\\n                                                 : it frees iocb, iocb.ki_filp can be UAF in file_accessed().\\n       - file_accessed\\n       : access NULL file point\\n\\nIntroduce a reference count in struct erofs_fileio_rq, and initialize it\\nas two, both erofs_fileio_ki_complete() and erofs_fileio_rq_submit() will\\ndecrease reference count, the last one decreasing the reference count\\nto zero will free rq.\"}],\"metrics\":{},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/ae385826840a3c8e09bf38cac90adcd690716f57\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/b2ee5e4d5446babd23ff7beb4e636be0fb3ea5aa\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/d741534302f71c511eb0bb670b92eaa7df4a0aec\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}"
  }
}


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 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…

Detection rules are retrieved from Rulezet.

Loading…

Loading…