Podatność w Keylime pozwala atakującemu na obejście mechanizmu weryfikacji integralności opartego na TPM poprzez podmianę klucza poświadczenia (AK) na klucz pochodzący z programowego TPM. Jest to krytyczne zagrożenie, ponieważ całkowicie łamie łańcuch zaufania, na którym opiera się platforma Keylime.
▸ Pokaż oryginał (EN)
Keylime does not enforce that the agent registrar data is the same when the tenant uses it for validation of the EK and identity quote and the verifier for validating the integrity quote. This allows an attacker to use one AK, EK pair from a real TPM to pass EK validation and give the verifier an AK of a software TPM. A successful attack breaks the entire chain of trust because a not validated AK is used by the verifier. This issue is worse if the validation happens first and then the agent gets added to the verifier because the timing is easier and the verifier does not validate the regcount entry being equal to 1,
Keylime nie wymusza spójności danych rejestracji agenta między etapem walidacji EK i identity quote (wykonywanej przez tenant) a etapem walidacji integrity quote (wykonywanej przez verifier). Atakujący może wykorzystać prawdziwą parę kluczy AK/EK z fizycznego TPM, aby pomyślnie przejść walidację EK, a następnie podstawić verifierowi klucz AK pochodzący z programowego (niezaufanego) TPM. Atak jest szczególnie łatwy do przeprowadzenia, gdy walidacja następuje przed dodaniem agenta do verifier, ponieważ verifier nie sprawdza wówczas, czy pole regcount wynosi dokładnie 1.
Atakujący może skutecznie podszyć się pod zaufanego agenta, omijając mechanizmy weryfikacji integralności platformy, co całkowicie kompromituje łańcuch zaufania (chain of trust) i pozwala na działanie niezaufanego środowiska bez wykrycia przez system Keylime.
Należy zastosować patche dostępne u producenta zgodnie z referencjami — poprawka została opublikowana w repozytorium GitHub Keylime (commit bd5de712acdd77860e7dc58969181e16c7a8dc5d). Użytkownicy Fedora powinni zaktualizować pakiet Keylime zgodnie z komunikatami opublikowanymi na listach Fedora Project.
Keylime (wersje wskazane w referencjach producenta) oraz Fedora (pakiety Keylime dostępne w repozytoriach Fedora Project — szczegółowe wersje wskazane w referencjach producenta).
Podatność zgłoszona poprzez Red Hat Bugzilla (bug #2065024) oraz opublikowana jako advisory GitHub Security (GHSA-jf66-3q76-h5p5). Dotyczy fundamentalnego mechanizmu weryfikacji opartego na TPM — środowiska korzystające z Keylime do attestacji sprzętowej powinny potraktować aktualizację priorytetowo.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:NFedora Project Fedora
OSFedoraproject343536Keylime
APPKeylime< 6.4.0
Powiązane podatności
PHP CGI argument injection – RCE na Windows przez mechanizm Best-Fit
Type Confusion w V8 (Google Chrome) — RCE przez spreparowaną stronę HTML
Type Confusion w silniku V8 Chrome — zdalne wykonanie kodu (RCE)
Use-after-free w Google Chrome Visuals umożliwiający ucieczkę z sandbox
Integer overflow w Skia w Google Chrome — sandbox escape