CVE-2023-53626 (GCVE-0-2023-53626)
Vulnerability from cvelistv5
Published
2025-10-07 15:19
Modified
2026-08-05 09:15
Summary
In the Linux kernel, the following vulnerability has been resolved: ext4: fix possible double unlock when moving a directory
Impacted products
Vendor Product Version
Linux Linux Version: 8dac5a63cf79707b547ea3d425fead5f4482198f
Version: 0c440f14558bfacd22c6935ae1fd4b2a09e96b5d
Version: c50fc503ee1b97f12c98e26afc39fdaebebcf04f
Version: b0bb13612292ca90fa4c2a7e425375649bc50d3e
Version: 291cd19d107e197306869cb3237c1bba62d13182
Version: 0813299c586b175d7edb25f56412c54b812d0379
Create a notification for this product.
   Linux Linux Version: 5.4.237   
Version: 5.10.175   
Version: 5.15.103   
Version: 6.1.20   
Version: 6.2.7   
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "fs/ext4/namei.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "c16cbd8233d6c58fc488545393e49b5d55729990",
              "status": "affected",
              "version": "8dac5a63cf79707b547ea3d425fead5f4482198f",
              "versionType": "git"
            },
            {
              "lessThan": "020166bc6669ca9fb267ebd96bd88c4fb64a5d46",
              "status": "affected",
              "version": "0c440f14558bfacd22c6935ae1fd4b2a09e96b5d",
              "versionType": "git"
            },
            {
              "lessThan": "1c93c42c7bb23057bde8a0a2ab834927ff64d20c",
              "status": "affected",
              "version": "c50fc503ee1b97f12c98e26afc39fdaebebcf04f",
              "versionType": "git"
            },
            {
              "lessThan": "e71eb4dca41f0f36823724ced0406bb2dbdd5506",
              "status": "affected",
              "version": "b0bb13612292ca90fa4c2a7e425375649bc50d3e",
              "versionType": "git"
            },
            {
              "lessThan": "43ce288ab5d7274a4a141d7f5e3ed2ab7b41f8a2",
              "status": "affected",
              "version": "291cd19d107e197306869cb3237c1bba62d13182",
              "versionType": "git"
            },
            {
              "lessThan": "70e42feab2e20618ddd0cbfc4ab4b08628236ecd",
              "status": "affected",
              "version": "0813299c586b175d7edb25f56412c54b812d0379",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "fs/ext4/namei.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "5.4.238",
              "status": "affected",
              "version": "5.4.237",
              "versionType": "semver"
            },
            {
              "lessThan": "5.10.176",
              "status": "affected",
              "version": "5.10.175",
              "versionType": "semver"
            },
            {
              "lessThan": "5.15.104",
              "status": "affected",
              "version": "5.15.103",
              "versionType": "semver"
            },
            {
              "lessThan": "6.1.21",
              "status": "affected",
              "version": "6.1.20",
              "versionType": "semver"
            },
            {
              "lessThan": "6.2.8",
              "status": "affected",
              "version": "6.2.7",
              "versionType": "semver"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.4.238",
                  "versionStartIncluding": "5.4.237",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.176",
                  "versionStartIncluding": "5.10.175",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.104",
                  "versionStartIncluding": "5.15.103",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.21",
                  "versionStartIncluding": "6.1.20",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.2.8",
                  "versionStartIncluding": "6.2.7",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\next4: fix possible double unlock when moving a directory"
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The bug is reached through the `rename(2)` syscall on a locally mounted ext4 filesystem; no network or remote peer is involved. The attacker needs local access to mount/attach the crafted ext4 image and issue the rename.\nAC:L - The `ext4_rename_dir_prepare()` failure is deterministic with a crafted `.`/`..` entry, so the double `up_write()` always occurs, and the attacker controls every thread contending for the moved directory\u0027s `i_rwsem`. The unlock window spans a sleeping `ext4_journal_stop()`, so winning the mutual-exclusion-break race is easy and infinitely retryable.\nPR:L - An ordinary unprivileged local user suffices: on mainstream desktop/kiosk deployments udisks2\u0027s default polkit `allow_active` loop-setup and removable-media automount let a console user mount an arbitrary attacker-authored ext4 image, and the `rename(2)` itself needs only write access to the attacker\u0027s own directories.\nUI:N - In the automount/loop-setup scenario the attacker performs the mount and the rename themselves; no second user has to be induced into any action.\nS:U - The corrupted `i_rwsem`, the resulting concurrent directory mutation, and any memory corruption all stay within the kernel\u0027s own security authority. No VM, IOMMU, or sandbox boundary is crossed.\nC:H - Breaking exclusion on a directory inode lets concurrent readers/writers race the inline-dir-to-extent conversion, so dirent parsing runs against the raw inode\u0027s `i_block`/xattr region under a stale format assumption, exposing adjacent kernel memory through `readdir`/`getdents`, and the buffer_head UAF this enables gives a further read primitive.\nI:H - The silent release of another task\u0027s exclusive `i_rwsem` allows two threads to run ext4 dirent add/delete, htree split, and inline-to-extent conversion on the same inode simultaneously, producing metadata and heap corruption \u2014 the exact corruption class `0813299c586b` was written to prevent \u2014 which is leverageable for controlled writes.\nA:H - When the lock is free at the second unlock, the rwsem count underflows to `~0UL` with no owner, so every later `down_read`/`down_write` on that directory blocks permanently in uninterruptible sleep, hanging the directory, the unmount, and eventually tripping the hung-task watchdog. The corruption path independently yields oopses and `errors=remount-ro`/`panic` filesystem shutdown."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T09:15:11.541Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/c16cbd8233d6c58fc488545393e49b5d55729990"
        },
        {
          "url": "https://git.kernel.org/stable/c/020166bc6669ca9fb267ebd96bd88c4fb64a5d46"
        },
        {
          "url": "https://git.kernel.org/stable/c/1c93c42c7bb23057bde8a0a2ab834927ff64d20c"
        },
        {
          "url": "https://git.kernel.org/stable/c/e71eb4dca41f0f36823724ced0406bb2dbdd5506"
        },
        {
          "url": "https://git.kernel.org/stable/c/43ce288ab5d7274a4a141d7f5e3ed2ab7b41f8a2"
        },
        {
          "url": "https://git.kernel.org/stable/c/70e42feab2e20618ddd0cbfc4ab4b08628236ecd"
        }
      ],
      "title": "ext4: fix possible double unlock when moving a directory",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2023-53626",
    "datePublished": "2025-10-07T15:19:30.895Z",
    "dateReserved": "2025-10-07T15:16:59.656Z",
    "dateUpdated": "2026-08-05T09:15:11.541Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}


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.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • 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…

Loading…