CVE-2020-8918 json
TPM 1.2 key authorization values are vulnerable to a TPM transport eavesdropper
published 6y ago modified 4mo ago also GHSA-5x29-3hr9-6wpw , GO-2021-0095 , EUVD-2022-0847
- cvss
- 6.3
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.2%
- EPSS 0.2% chance of exploitation in 30 days, percentile 7%
- public exploits
- 0
- none known
Summary
An improperly initialized 'migrationAuth' value in Google's go-tpm TPM1.2 library versions prior to 0.3.0 can lead an eavesdropping attacker to discover the auth value for a key created with CreateWrapKey. An attacker listening in on the channel can collect both 'encUsageAuth' and 'encMigrationAuth', and then can calculate 'usageAuth ^ encMigrationAuth' as the 'migrationAuth' can be guessed for all keys created with CreateWrapKey. TPM2.0 is not impacted by this. We recommend updating your library to 0.3.0 or later, or, if you cannot update, to call CreateWrapKey with a random 20-byte value for 'migrationAuth'.
Patch / fix
- go github.com/google/go-tpm 0.3.0
- Google LLC google/go-tpm library 0.3.0
- github.com/google/go-tpm@d7806cc commit
- github.com/google/go-tpm#195 pull request
Is CVE-2020-8918 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerExploit prediction
0.18% chance of exploitation in the next 30 days, higher than 7% of all scored CVEs (FIRST EPSS, 2026-11-09).
Exploits and checks
- github.com https://github.com/google/go-tpm/security/advisories/GHSA-5x29-3hr9-6wpw referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 6.3 | CVSS:3.1/AV:L/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N |
| NVD | 3.1 | 7.1 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N |
| NVD | 2.0 | 3.6 | AV:L/AC:L/Au:N/C:P/I:P/A:N |
| GitHub | 3.1 | 7.1 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| go | github.com/google/go-tpm | <0.3.0 |
0.3.0 |
Affected products
- Google LLC google/go-tpm library
Classification
- Weakness
-
- CWE-665 Improper Initialization
References
-
github.com
/google/go-tpm/pull/195
web, patch
-
github.com
/google/go-tpm/commit/d7806cce857a1a020190c03348e5361725d8f141
web, patch
-
github.com
/google/go-tpm/security/advisories/GHSA-5x29-3hr9-6wpw
web, exploit, third-party-advisory
-
nvd.nist.gov
/vuln/detail/CVE-2020-8918
advisory
-
github.com
/google/go-tpm
package
-
pkg.go.dev
/vuln/GO-2021-0095
web
Sources
- CVE List CVE-2020-8918
- GitHub Advisory GHSA-5x29-3hr9-6wpw
- NVD CVE-2020-8918
- OSV GO-2021-0095
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.