{"id":41317,"date":"2026-10-19T00:33:11","date_gmt":"2026-10-18T16:33:11","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-98845"},"modified":"2026-10-19T00:33:11","modified_gmt":"2026-10-18T16:33:11","slug":"cve-2026-98845","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-98845","title":{"rendered":"CVE-2026-98845 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\ntpm: Disable TPM on n"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>tpm: Disable TPM on null key name mismatch<\/p>\n<p>The null key name check exists to protect against TPM reset attacks, so<br \/>\na mismatch should stop the device from serving further requests.<br \/>\nCurrently it does not disable the chip when it finds a mismatch.<\/p>\n<p>The mismatch is logged:<\/p>\n<p>    tpm tpm0: null key integrity check failed<\/p>\n<p>but the chip keeps serving commands:<\/p>\n<p>    \/ # tpm2_getcap -c properties-fixed<br \/>\n    TPM_PT_FAMILY_INDICATOR:<br \/>\n      as UINT32:                0x08322e3000<br \/>\n      as string:                &#8220;2.0&#8221;<br \/>\n    &#8230;<\/p>\n<p>tpm2_load_null() where the null key name check is run sets the chip as<br \/>\ndisabled only if the rc is non zero. When the mismatch is seen, rc is<br \/>\nzero at that point and it returns success. The other issue is that the<br \/>\ncaller expects the null key handle to be populated when the function<br \/>\nreturns 0 which it does here without writing the handle and proceeds<br \/>\nassuming the null key handle is valid.<\/p>\n<p>During the test, I noticed that tpm2_start_auth_session() uses the<br \/>\nuninitialized stack value as the key handle since tpm2_load_null()<br \/>\nreturns 0 despite the integrity failure and proceeds with<br \/>\nTPM2_CC_START_AUTH_SESS with this value as salt key handle.<\/p>\n<p>Set rc to -ENODEV on the mismatch. The error path then disables the chip<br \/>\nand returns the correct code to the caller.<\/p>\n<p>Tested in QEMU with swtpm and CONFIG_TCG_TPM2_HMAC=y by making<br \/>\nTPM2_CC_CONTEXT_LOAD fail with TPM2_RC_INTEGRITY and changing the name<br \/>\nof the re-created null key. The chip is now disabled on the mismatch.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>tpm: Disable TPM on null key name mismatch<\/p>\n<p>The null key name check exists to protect against TPM reset attacks, so<br \/>\na mismatch shou<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-41317","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/41317","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=41317"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=41317"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=41317"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}