CRITICAL🇬🇧 English

CVE-2026-37531

AGL app-framework-main: Zip Slip + TOCTOU umożliwiają zapis dowolnych plików

CVSS 9.8v3.1pub. 2026-05-01upd. 2026-05-18

AGL app-framework-main w wersjach do 17.1.12 zawiera podatność typu Zip Slip (path traversal) połączoną z błędem wyścigu TOCTOU w procesie instalacji widgetów. Atakujący może zapisać dowolne pliki w dowolnym miejscu systemu plików, omijając przy tym weryfikację podpisu.

Pokaż oryginał (EN)

AGL app-framework-main thru 17.1.12 contains a Zip Slip path traversal vulnerability (CWE-22) combined with a TOCTOU race condition (CWE-367) in the widget installation flow. The is_valid_filename function in wgtpkg-zip.c validates ZIP entry names but does not check for dot notation directory traversal sequences it only blocks absolute paths. The zread extraction function uses openat(workdirfd, filename, O_CREAT) which resolves dot notation values relative to the work directory, allowing files to be written anywhere on the filesystem. Critically, in function install_widget in file wgtpkg-install.c, extraction via zread occurs BEFORE signature verification via check_all_signatures. Even if signature verification fails, the error cleanup (remove_workdir) only deletes the temporary work directory files written outside via path traversal persist permanently.

🤖 Analiza AI
Jak działa

Funkcja `is_valid_filename` w pliku `wgtpkg-zip.c` weryfikuje nazwy wpisów w archiwum ZIP, jednak blokuje wyłącznie ścieżki bezwzględne — nie sprawdza sekwencji zawierających notację z kropkami (np. `../`). Funkcja `zread` dokonuje ekstrakcji przy użyciu `openat(workdirfd, filename, O_CREAT)`, co powoduje rozwiązanie ścieżek względnych poza katalogiem roboczym i umożliwia zapis plików w dowolnym miejscu systemu. Krytyczny błąd wyścigu TOCTOU polega na tym, że w funkcji `install_widget` (plik `wgtpkg-install.c`) ekstrakcja plików przez `zread` następuje PRZED weryfikacją podpisu przez `check_all_signatures`. Nawet jeśli weryfikacja podpisu zakończy się błędem, procedura czyszcząca `remove_workdir` usuwa jedynie pliki z katalogu tymczasowego — pliki zapisane poza nim za pośrednictwem path traversal pozostają na systemie plików na stałe.

Skutki

Atakujący bez uwierzytelnienia może zapisać dowolne pliki w dowolnym miejscu systemu plików urządzenia, co w praktyce umożliwia trwałe przejęcie kontroli nad systemem, privilege escalation lub wprowadzenie złośliwego kodu — nawet jeśli dostarczony widget posiada nieprawidłowy podpis.

Mitygacja

Należy zastosować patche dostępne u producenta zgodnie z referencjami. Tymczasowo należy ograniczyć możliwość instalacji widgetów do zaufanych, uwierzytelnionych źródeł oraz monitorować integralność krytycznych zasobów systemu plików. Zaleca się śledzenie repozytorium projektu pod adresem https://gerrit.automotivelinux.org/gerrit/src/app-framework-main w celu uzyskania aktualnych poprawek.

Kogo dotyczy

AGL app-framework-main w wersjach do 17.1.12 włącznie.

Uwagi

Podatność została udokumentowana wraz z publicznym proof-of-concept dostępnym pod adresem https://gist.github.com/sgInnora/8526eedcfd826d05ef1fc45d8f405643. Połączenie Zip Slip z TOCTOU sprawia, że weryfikacja podpisu nie stanowi skutecznej ochrony, ponieważ zapis pliku następuje przed jej przeprowadzeniem.

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
  • Linuxfoundation Automotive Grade Linux

    OS
    Linuxfoundation
    ≤ 17.1.12
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
Tagi
Path TraversalRace Condition
CWE
Referencje

Powiązane podatności

CVE-2026-37525HIGH7.8ten sam produkt

AGL app-framework-binder (afb-daemon) through v19.90.0 contains a privilege escalation vulnerability in the su...

CVE-2026-37526HIGH7.8ten sam produkt

AGL app-framework-binder (afb-daemon) through v19.90.0 allows any local process to execute privileged supervis...

CVE-2026-37530HIGH7.5ten sam produkt

AGL agl-service-can-low-level thru 17.1.12 contains a stack buffer overflow in the uds-c library. The send_dia...

CVE-2026-37532HIGH7.1ten sam produkt

AGL agl-service-can-low-level thru 17.1.12 contains a heap buffer over-read in the isotp-c library. In isotp_c...

CVE-2022-48363HIGH7.5ten sam produkt

In MPD before 0.23.8, as used on Automotive Grade Linux and other platforms, the PipeWire output plugin mishan...