Podatność w serwerze VTPM (Virtual TPM) platformy Linux Foundation Edge Virtualization Engine (EVE) umożliwia atakującemu przepełnienie bufora na stosie poprzez wysłanie spreparowanego nagłówka z zawyżonym rozmiarem danych. Ze względu na bardzo wysokie uprawnienia procesu vtpm_server, skuteczne wykorzystanie luki może prowadzić do przejęcia kontroli nad systemem.
▸ Pokaż oryginał (EN)
As noted in the “VTPM.md” file in the eve documentation, “VTPM is a server listening on port 8877 in EVE, exposing limited functionality of the TPM to the clients. VTPM allows clients to execute tpm2-tools binaries from a list of hardcoded options” The communication with this server is done using protobuf, and the data is comprised of 2 parts: 1. Header 2. Data When a connection is made, the server is waiting for 4 bytes of data, which will be the header, and these 4 bytes would be parsed as uint32 size of the actual data to come. Then, in the function “handleRequest” this size is then used in order to allocate a payload on the stack for the incoming data. As this payload is allocated on the stack, this will allow overflowing the stack size allocated for the relevant process with freely controlled data. * An attacker can crash the system. * An attacker can gain control over the system, specifically on the “vtpm_server” process which has very high privileges.
Serwer VTPM nasłuchuje na porcie 8877 i oczekuje połączeń przesyłających dane w formacie protobuf. Po nawiązaniu połączenia serwer odczytuje pierwsze 4 bajty, które interpretuje jako wartość uint32 określającą rozmiar dalszych danych. Wartość ta jest następnie używana w funkcji 'handleRequest' do alokacji bufora na stosie (stack) dla nadchodzących danych — bez walidacji rozmiaru. Atakujący może podać dowolnie dużą wartość nagłówka, co skutkuje przepełnieniem stosu (buffer overflow) kontrolowanymi danymi.
Atakujący może spowodować awarię systemu (crash) lub — przy udanym exploicie — przejąć kontrolę nad procesem 'vtpm_server', który działa z bardzo wysokimi uprawnieniami, co prowadzi do pełnego skompromitowania hosta.
Należy zastosować patche dostępne u producenta zgodnie z referencjami. Dodatkowo zaleca się ograniczenie dostępu sieciowego do portu 8877 wyłącznie do zaufanych, wewnętrznych klientów poprzez segmentację sieci lub odpowiednie reguły firewall.
Linux Foundation Edge Virtualization Engine (EVE) — wersje wskazane w referencjach producenta.
Wektor ataku wymaga dostępu z sieci lokalnej (AV:A) oraz uwierzytelnienia z niskimi uprawnieniami (PR:L). Podatność jest sklasyfikowana jako CWE-789 (niekontrolowana alokacja pamięci) oraz CWE-770 (alokacja zasobów bez ograniczeń). Szczegóły techniczne opublikowane przez ASRG pod adresem https://asrg.io/security-advisories/cve-2023-43632/.
CVSS:3.1/AV:A/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:HLinuxfoundation Edge Virtualization Engine
OSLinuxfoundation3.0.0 – 9.5.0 (bez)
Powiązane podatności
On boot, the Pillar eve container checks for the existence and content of “/config/authorized_keys”. If the ...
PCR14 is not in the list of PCRs that seal/unseal the “vault” key, but due to the change that was implemented ...
Vault Key Sealed With SHA1 PCRs The measured boot solution implemented in EVE OS leans on a PCR locking...
In EVE OS, the “measured boot” mechanism prevents a compromised device from accessing the encrypted data lo...
containerd CRI plugin: brak walidacji etykiet obrazu umożliwia RCE na hoście