CRITICAL🇬🇧 English

CVE-2023-28444

angular-server-side-configuration: ujawnienie zmiennych środowiskowych backendu w index.html

CVSS 9.9v3.1pub. 2023-03-24upd. 2024-11-21

Podatność w bibliotece angular-server-side-configuration (wersja 15.0.0) powoduje niezamierzone wykrywanie i eksponowanie zmiennych środowiskowych przeznaczonych dla komponentów backendowych poprzez plik index.html aplikacji Angular. W środowiskach monorepo może to prowadzić do ujawnienia wrażliwych danych konfiguracyjnych publicznie dostępnym użytkownikom.

Pokaż oryginał (EN)

angular-server-side-configuration helps configure an angular application at runtime on the server or in a docker container via environment variables. angular-server-side-configuration detects used environment variables in TypeScript (.ts) files during build time of an Angular CLI project. The detected environment variables are written to a ngssc.json file in the output directory. During deployment of an Angular based app, the environment variables based on the variables from ngssc.json are inserted into the apps index.html (or defined index file). With version 15.0.0 the environment variable detection was widened to the entire project, relative to the angular.json file from the Angular CLI. In a monorepo setup, this could lead to environment variables intended for a backend/service to be detected and written to the ngssc.json, which would then be populated and exposed via index.html. This has NO IMPACT, in a plain Angular project that has no backend component. This vulnerability has been mitigated in version 15.1.0, by adding an option `searchPattern` which restricts the detection file range by default. As a workaround, manually edit or create ngssc.json or run script after ngssc.json generation.

🤖 Analiza AI
Jak działa

Od wersji 15.0.0 mechanizm wykrywania zmiennych środowiskowych został rozszerzony na cały projekt względem pliku angular.json — zamiast ograniczać się wyłącznie do plików TypeScript aplikacji frontendowej. W konfiguracji monorepo, gdzie w jednym repozytorium współistnieje frontend Angular oraz komponenty backendowe lub usługi, narzędzie może wykryć zmienne środowiskowe należące do backendu. Wykryte zmienne trafiają do pliku ngssc.json w katalogu wyjściowym, a następnie są wstrzykiwane do pliku index.html aplikacji podczas wdrożenia, czyniąc je dostępnymi dla każdego użytkownika aplikacji.

Skutki

Atakujący (lub zwykły użytkownik aplikacji) może odczytać wrażliwe zmienne środowiskowe przeznaczone dla backendu — takie jak klucze API, dane uwierzytelniające, adresy wewnętrznych usług lub inne sekrety konfiguracyjne — bezpośrednio z publicznie dostępnego pliku index.html.

Mitygacja

Należy zaktualizować angular-server-side-configuration do wersji 15.1.0, która wprowadza opcję `searchPattern` ograniczającą domyślny zakres wykrywania zmiennych środowiskowych. Jako obejście (workaround) można ręcznie edytować lub utworzyć plik ngssc.json albo uruchomić skrypt korygujący zawartość ngssc.json po jego wygenerowaniu.

Kogo dotyczy

angular-server-side-configuration w wersji 15.0.0, wdrożona w konfiguracji monorepo zawierającej zarówno aplikację Angular, jak i komponenty backendowe. Aplikacje Angular bez komponentu backendowego nie są podatne.

Uwagi

Podatność dotyczy wyłącznie projektów w konfiguracji monorepo — w standardowym projekcie Angular bez backendu nie ma żadnego wpływu na bezpieczeństwo, co zostało wprost wskazane w opisie oryginalnym.

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:L/A:L
  • Angular Server Side Configuration Project Angular Server Side Configuration

    APP
    Angular-Server-Side-Configuration Project
    15.0.0 – 15.1.0 (bez)
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
Tagi
Container
CWE
Referencje