Headline
GHSA-gwvm-vrp4-4pp5: angular-server-side-configuration information disclosure vulnerability in monorepo with node.js backend
Impact
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 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.
Patches
Vulnerability has been mitigated in 15.1.0, by adding an option searchPattern
which restricts the detection file range by default.
# Update via npm
npm update angular-server-side-configuration
## Or more specific
npm install [email protected]
# Update via pnpm
pnpm update angular-server-side-configuration
## Or more specific
pnpm add [email protected]
# Update via yarn
yarn update angular-server-side-configuration
## Or more specific
yarn add [email protected]
Workarounds
Manually edit or create ngssc.json or run a script after ngssc.json generation
References
Impact
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 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.
Patches
Vulnerability has been mitigated in 15.1.0, by adding an option searchPattern which restricts the detection file range by default.
Update via npm
npm update angular-server-side-configuration ## Or more specific npm install [email protected]
Update via pnpm
pnpm update angular-server-side-configuration ## Or more specific pnpm add [email protected]
Update via yarn
yarn update angular-server-side-configuration ## Or more specific yarn add [email protected]
Workarounds
Manually edit or create ngssc.json or run a script after ngssc.json generation
References****References
- GHSA-gwvm-vrp4-4pp5
- https://nvd.nist.gov/vuln/detail/CVE-2023-28444
- kyubisation/angular-server-side-configuration@d701f51
- https://github.com/kyubisation/angular-server-side-configuration/releases/tag/v15.1.0
Related news
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 be...