mgechev / mgechev/codelyzer

@angular/core 9.0.0 dependency causes a circular security vulnerability

Open
#1,042 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
2.5k
Forks
232
PR merge metrics
No merged PRs in 30d

Description

Describe the bug

While working to fix security vulnerabilities in my own project, Codelyzer 6.0.02 gets flagged for Cross Site Scripting in Angular.. Trying to use npm audit fix --force will cause npm to install Codelyzer 0.0.28 for some strange reason. After the first run of npm audit fix --force, vulnerabilities for tslint, minimist, and optimist are flagged by npm. Running npm audit fix --force again will cause the vulnerabilities to revert back to the original vulnerability that suggests installing Codelyzer 0.0.28. Checking Codelyzer's current required version of @angular/core shows that it depends on Angular 9, which is an angular version flagged by the vulnerability link I mentioned above.

Context and configuration

Please share:
Bug is caused by dependency on Angular 9.

To Reproduce
Run npm install on a project running Angular 18 (or version 11 or higher) & Codelyzer 6.0.02, and follow npm's inline suggestions for fixing vulnerabilities. (see description above).

Expected behavior
Codelyzer should not cause security vulnerabilities when used with the latest version of Angular.

Code

npm install
npm audit fix --force

Environment

  • Version 6.0.1
  • OS: MacOS Sonoma 14.4.1
  • Node.js version: 22.11.0
  • Package manager (yarn/npm) version: 10.9.0
  • Angular version: 18.2.11
  • tslint version: 5.20.1

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the dependency resolution with npm install and npm audit fix --force using Angular 18 and Codelyzer 6.0.1. Inspect the package dependency metadata to identify the Angular constraint and verify how npm resolves it. Done means the supported Codelyzer dependency path no longer produces the reported Angular vulnerability or circular audit result.

Written by the indexing model from the issue text.

Assessment

Tech stack
angular, typescript
Domain
devtools, security
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.