← Back to CVE Explorer

CVE-2026-93269

Full vulnerability record from the local CVENow database.

Description

In the Linux kernel, the following vulnerability has been resolved: ext4: fix circular lock dependency in ext4_ext_migrate Move iput(tmp_inode) after ext4_writepages_up_write() to avoid a circular lock dependency between s_writepages_rwsem and sb_internal (freeze protection). The deadlock scenario: CPU0 (EXT4_IOC_MIGRATE) CPU1 (orphan cleanup during mount) ---- ---- ext4_ext_migrate() ext4_writepages_down_write() s_writepages_rwsem (write) ext4_evict_inode() sb_start_intwrite() [sb_internal] ... ext4_writepages() s_writepages_rwsem (read) [BLOCKED] iput(tmp_inode) ext4_evict_inode() sb_start_intwrite() [BLOCKED] The tmp_inode is a temporary inode with nlink=0 created solely for building the extent tree. Its eviction does not require s_writepages_rwsem protection, so deferring iput() until after releasing the rwsem is safe.

Severity
Not scored
CVSS score
Not available
Vulnerability status
Received
Source identifier
416baaa9-dc9f-4396-8d5f-8c081fb06d67
Published
2026-09-24 16:17:23.873000
Last modified
2026-10-30 13:21:01.700000
View original CVE JSON
{
  "id": "CVE-2026-93269",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
  "published": "2026-09-24T16:17:23.873",
  "lastModified": "2026-10-30T13:21:01.700",
  "vulnStatus": "Received",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\next4: fix circular lock dependency in ext4_ext_migrate\n\nMove iput(tmp_inode) after ext4_writepages_up_write() to avoid a\ncircular lock dependency between s_writepages_rwsem and sb_internal\n(freeze protection).\n\nThe deadlock scenario:\n\n  CPU0 (EXT4_IOC_MIGRATE)        CPU1 (orphan cleanup during mount)\n  ----                           ----\n  ext4_ext_migrate()\n    ext4_writepages_down_write()\n      s_writepages_rwsem (write)\n                                 ext4_evict_inode()\n                                   sb_start_intwrite()   [sb_internal]\n                                   ...\n                                     ext4_writepages()\n                                       s_writepages_rwsem (read) [BLOCKED]\n    iput(tmp_inode)\n      ext4_evict_inode()\n        sb_start_intwrite()         [BLOCKED]\n\nThe tmp_inode is a temporary inode with nlink=0 created solely for\nbuilding the extent tree.  Its eviction does not require\ns_writepages_rwsem protection, so deferring iput() until after\nreleasing the rwsem is safe."
    }
  ],
  "affected": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "affectedData": [
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "unaffected",
          "programFiles": [
            "fs/ext4/migrate.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "cb85f4d23f794e24127f3e562cb3b54b0803f456",
              "lessThan": "f204882d5eaca09f7848f081c9c9b5bbf2234895",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "cb85f4d23f794e24127f3e562cb3b54b0803f456",
              "lessThan": "452950461241dfed8b1d32e94b227db38c99c5af",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "cb85f4d23f794e24127f3e562cb3b54b0803f456",
              "lessThan": "ada23457d4748d6e9c36c6f871fc29a6f558c48c",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "cb85f4d23f794e24127f3e562cb3b54b0803f456",
              "lessThan": "e4223231b6860141813637a6413c2371ae4d6fa8",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "cb85f4d23f794e24127f3e562cb3b54b0803f456",
              "lessThan": "32f7ab52875ec7f800ca67e7176e5743a84baddf",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "cb85f4d23f794e24127f3e562cb3b54b0803f456",
              "lessThan": "a897682793eba5de51ee6f3152760374afa629cf",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "eb799e163dc2bc1ea0a4820b66f79d32a5e907df",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "bcc1eab71a67c46b9e24544ac7923f44444174ce",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "8cf20fb73e73a4c4df0328b5297842c5ef34fdd9",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "e5d25003d059649e18a249635ed5ca7a7b1de5ad",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "69f8a7991fd93c49096ddd11574db3e7df238b7b",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "4.9.215",
              "lessThan": "4.10",
              "versionType": "semver",
              "status": "affected"
            },
            {
              "version": "4.14.172",
              "lessThan": "4.15",
              "versionType": "semver",
              "status": "affected"
            },
            {
              "version": "4.19.107",
              "lessThan": "4.20",
              "versionType": "semver",
              "status": "affected"
            },
            {
              "version": "5.4.23",
              "lessThan": "5.5",
              "versionType": "semver",
              "status": "affected"
            },
            {
              "version": "5.5.7",
              "lessThan": "5.6",
              "versionType": "semver",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "affected",
          "programFiles": [
            "fs/ext4/migrate.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "5.6",
              "status": "affected"
            },
            {
              "version": "0",
              "lessThan": "5.6",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.1.191",
              "lessThanOrEqual": "6.1.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.6.157",
              "lessThanOrEqual": "6.6.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.12.110",
              "lessThanOrEqual": "6.12.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.18.52",
              "lessThanOrEqual": "6.18.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.2.6",
              "lessThanOrEqual": "7.2.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.3",
              "lessThanOrEqual": "*",
              "versionType": "original_commit_for_fix",
              "status": "unaffected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {},
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/32f7ab52875ec7f800ca67e7176e5743a84baddf",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/452950461241dfed8b1d32e94b227db38c99c5af",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/a897682793eba5de51ee6f3152760374afa629cf",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/ada23457d4748d6e9c36c6f871fc29a6f558c48c",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/e4223231b6860141813637a6413c2371ae4d6fa8",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/f204882d5eaca09f7848f081c9c9b5bbf2234895",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ]
}