{
   "containers": {
      "cna": {
         "providerMetadata": {
            "orgId": "f4215fc3-5b6b-47ff-a258-f7189bd81038"
         },
         "descriptions": [
            {
               "lang": "en",
               "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nchar: tpm: Protect tpm_pm_suspend with locks\n\nCurrently tpm transactions are executed unconditionally in\ntpm_pm_suspend() function, which may lead to races with other tpm\naccessors in the system.\n\nSpecifically, the hw_random tpm driver makes use of tpm_get_random(),\nand this function is called in a loop from a kthread, which means it's\nnot frozen alongside userspace, and so can race with the work done\nduring system suspend:\n\n  tpm tpm0: tpm_transmit: tpm_recv: error -52\n  tpm tpm0: invalid TPM_STS.x 0xff, dumping stack for forensics\n  CPU: 0 PID: 1 Comm: init Not tainted 6.1.0-rc5+ #135\n  Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.0-20220807_005459-localhost 04/01/2014\n  Call Trace:\n   tpm_tis_status.cold+0x19/0x20\n   tpm_transmit+0x13b/0x390\n   tpm_transmit_cmd+0x20/0x80\n   tpm1_pm_suspend+0xa6/0x110\n   tpm_pm_suspend+0x53/0x80\n   __pnp_bus_suspend+0x35/0xe0\n   __device_suspend+0x10f/0x350\n\nFix this by calling tpm_try_get_ops(), which itself is a wrapper around\ntpm_chip_start(), but takes the appropriate mutex.\n\n[Jason: reworked commit message, added metadata]"
            }
         ],
         "affected": [
            {
               "product": "Linux",
               "vendor": "Linux",
               "defaultStatus": "unaffected",
               "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
               "programFiles": [
                  "drivers/char/tpm/tpm-interface.c"
               ],
               "versions": [
                  {
                     "version": "e891db1a18bf",
                     "lessThan": "d699373ac5f3",
                     "status": "affected",
                     "versionType": "git"
                  },
                  {
                     "version": "e891db1a18bf",
                     "lessThan": "4e0d6c687c92",
                     "status": "affected",
                     "versionType": "git"
                  },
                  {
                     "version": "e891db1a18bf",
                     "lessThan": "571b6bbbf54d",
                     "status": "affected",
                     "versionType": "git"
                  },
                  {
                     "version": "e891db1a18bf",
                     "lessThan": "25b78bf98b07",
                     "status": "affected",
                     "versionType": "git"
                  },
                  {
                     "version": "e891db1a18bf",
                     "lessThan": "23393c646142",
                     "status": "affected",
                     "versionType": "git"
                  }
               ]
            },
            {
               "product": "Linux",
               "vendor": "Linux",
               "defaultStatus": "affected",
               "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
               "programFiles": [
                  "drivers/char/tpm/tpm-interface.c"
               ],
               "versions": [
                  {
                     "version": "5.1",
                     "status": "affected"
                  },
                  {
                     "version": "0",
                     "lessThan": "5.1",
                     "status": "unaffected",
                     "versionType": "custom"
                  },
                  {
                     "version": "5.4.226",
                     "lessThanOrEqual": "5.4.*",
                     "status": "unaffected",
                     "versionType": "custom"
                  },
                  {
                     "version": "5.10.158",
                     "lessThanOrEqual": "5.10.*",
                     "status": "unaffected",
                     "versionType": "custom"
                  },
                  {
                     "version": "5.15.82",
                     "lessThanOrEqual": "5.15.*",
                     "status": "unaffected",
                     "versionType": "custom"
                  },
                  {
                     "version": "6.0.12",
                     "lessThanOrEqual": "6.0.*",
                     "status": "unaffected",
                     "versionType": "custom"
                  },
                  {
                     "version": "6.1",
                     "lessThanOrEqual": "*",
                     "status": "unaffected",
                     "versionType": "original_commit_for_fix"
                  }
               ]
            }
         ],
         "references": [
            {
               "url": "https://git.kernel.org/stable/c/d699373ac5f3545243d3c73a1ccab77fdef8cec6"
            },
            {
               "url": "https://git.kernel.org/stable/c/4e0d6c687c925e27fd4bc78a2721d10acf5614d6"
            },
            {
               "url": "https://git.kernel.org/stable/c/571b6bbbf54d835ea6120f65575cb55cd767e603"
            },
            {
               "url": "https://git.kernel.org/stable/c/25b78bf98b07ff5aceb9b1e24f72ec0236c5c053"
            },
            {
               "url": "https://git.kernel.org/stable/c/23393c6461422df5bf8084a086ada9a7e17dc2ba"
            }
         ],
         "title": "char: tpm: Protect tpm_pm_suspend with locks",
         "x_generator": {
            "engine": "bippy-c9c4e1df01b2"
         }
      }
   },
   "cveMetadata": {
      "assignerOrgId": "f4215fc3-5b6b-47ff-a258-f7189bd81038",
      "cveID": "CVE-2022-48997",
      "requesterUserId": "gregkh@kernel.org",
      "serial": "1",
      "state": "PUBLISHED"
   },
   "dataType": "CVE_RECORD",
   "dataVersion": "5.0"
}
