{
  "affected": [
    {
      "ranges": [
        {
          "events": [
            {
              "introduced": "62f17d9df6924cf805de5ae970470615c1c8d9f2"
            },
            {
              "fixed": "b0f7343a002f9c8b8378011f60482c76f3216dfd"
            },
            {
              "fixed": "ed566979f99c5516cad45a76ae25e2a4928ffb67"
            },
            {
              "fixed": "ada2e5a44e99113e08ad9b7b71396c6c572204da"
            }
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "type": "GIT"
        }
      ]
    },
    {
      "package": {
        "ecosystem": "Linux",
        "name": "Kernel"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "6.16.0"
            },
            {
              "fixed": "6.18.52"
            }
          ],
          "type": "ECOSYSTEM"
        },
        {
          "events": [
            {
              "introduced": "6.19.0"
            },
            {
              "fixed": "7.2.6"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    }
  ],
  "database_specific": {
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/93xxx/CVE-2026-93106.json"
  },
  "details": "In the Linux kernel, the following vulnerability has been resolved:\n\ncrash_dump: release keyring reference at the correct time\n\nrestore_dm_crypt_keys_to_thread_keyring() gets a reference to the user\nkeyring before restoring the saved dm-crypt keys.\n\nThe same keyring reference is then passed to add_key_to_keyring() for each\nsaved key, but add_key_to_keyring() drops that reference on every call.\nThis is only balanced when exactly one key is restored. With multiple\nkeys, the keyring reference is dropped too many times and may trigger a\nrefcount underflow or use-after-free.\n\nWhen more than five keys are restored, a refcount underflow/use-after-free\nwarning can be triggered.\n\nThe early error paths after lookup_user_key() also return without dropping\nthe keyring reference.\n\nKeep ownership of the keyring reference in\nrestore_dm_crypt_keys_to_thread_keyring(), drop it once on all exit paths,\nand make add_key_to_keyring() only use the reference without consuming it.",
  "id": "CVE-2026-93106",
  "modified": "2026-09-19T03:30:54.259918944Z",
  "published": "2026-09-17T16:11:17.136Z",
  "references": [
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/ada2e5a44e99113e08ad9b7b71396c6c572204da"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/b0f7343a002f9c8b8378011f60482c76f3216dfd"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/ed566979f99c5516cad45a76ae25e2a4928ffb67"
    },
    {
      "type": "ADVISORY",
      "url": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/93xxx/CVE-2026-93106.json"
    },
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-93106"
    },
    {
      "type": "PACKAGE",
      "url": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
    }
  ],
  "schema_version": "1.9.0",
  "summary": "crash_dump: release keyring reference at the correct time"
}