feat(audit): add ability to ignore Github Security Advisory (#8483)

close #6838
This commit is contained in:
Ian Krieger
2024-08-31 21:10:30 -04:00
committed by GitHub
parent 2ed45946db
commit d500d9f12e
8 changed files with 664 additions and 2 deletions

View File

@@ -0,0 +1,25 @@
---
"@pnpm/plugin-commands-audit": minor
"@pnpm/audit": minor
"@pnpm/types": minor
"pnpm": minor
---
Added a new setting to `package.json` at `pnpm.auditConfig.ignoreGhsas` for ignoring vulnerabilities by their GHSA code [#6838](https://github.com/pnpm/pnpm/issues/6838).
For instance:
```json
{
"pnpm": {
"auditConfig": {
"ignoreGhsas": [
"GHSA-42xw-2xvc-qx8m",
"GHSA-4w2v-q235-vp99",
"GHSA-cph5-m8f7-6c5x",
"GHSA-vh95-rmgr-6w4m"
]
}
}
}
```

View File

@@ -76,6 +76,8 @@
"gabor",
"gcttmf",
"getattr",
"ghsa",
"ghsas",
"globalconfig",
"globstar",
"gruntfile",
@@ -207,6 +209,7 @@
"reka",
"relinks",
"reqheaders",
"rmgr",
"rpmdevtools",
"rpmlint",
"rstacruz",

View File

@@ -57,6 +57,7 @@ export interface AuditAdvisory {
access: string
severity: AuditLevelString
cwe: string
github_advisory_id: string
metadata: {
module_type: string
exploitability: number

View File

@@ -212,6 +212,11 @@ ${JSON.stringify(newOverrides, null, 2)}`,
const vulnerabilities = auditReport.metadata.vulnerabilities
const totalVulnerabilityCount = Object.values(vulnerabilities)
.reduce((sum: number, vulnerabilitiesCount: number) => sum + vulnerabilitiesCount, 0)
const ignoreGhsas = opts.rootProjectManifest?.pnpm?.auditConfig?.ignoreGhsas
if (ignoreGhsas) {
// eslint-disable-next-line @typescript-eslint/naming-convention
auditReport.advisories = pickBy(({ github_advisory_id }) => !ignoreGhsas.includes(github_advisory_id), auditReport.advisories)
}
const ignoreCves = opts.rootProjectManifest?.pnpm?.auditConfig?.ignoreCves
if (ignoreCves) {
auditReport.advisories = pickBy(({ cves }) => cves.length === 0 || difference(cves, ignoreCves).length > 0, auditReport.advisories)

View File

@@ -4011,3 +4011,597 @@ exports[`plugin-commands-audit audit: CVEs in ignoreCves do not show up when JSO
}
}"
`;
exports[`plugin-commands-audit audit: CVEs in ignoreGhsas do not show up 1`] = `
"┌─────────────────────┬────────────────────────────────────────────────────────┐
│ critical │ Improper Certificate Validation in xmlhttprequest-ssl │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package │ xmlhttprequest-ssl │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ <1.6.1 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions │ >=1.6.1 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths │ . > karma@2.0.5 > socket.io@2.0.4 > │
│ │ socket.io-client@2.0.4 > engine.io-client@3.1.6 > │
│ │ xmlhttprequest-ssl@1.5.5 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info │ https://github.com/advisories/GHSA-72mh-269x-7mh5 │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ critical │ Command injection in nodemailer │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package │ nodemailer │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ <6.4.16 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions │ >=6.4.16 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths │ . > karma@2.0.5 > log4js@2.11.0 > nodemailer@2.7.2 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info │ https://github.com/advisories/GHSA-48ww-j4fc-435p │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ critical │ Insufficient Entropy in cryptiles │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package │ cryptiles │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ <4.1.2 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions │ >=4.1.2 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths │ . > karma@2.0.5 > log4js@2.11.0 > loggly@1.1.1 > │
│ │ request@2.75.0 > hawk@3.1.3 > cryptiles@2.0.5 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info │ https://github.com/advisories/GHSA-rq8g-5pc5-wrhr │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ critical │ Improper parsing of octal bytes in netmask │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package │ netmask │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ <1.1.0 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions │ >=1.1.0 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths │ . > karma@2.0.5 > log4js@2.11.0 > mailgun-js@0.18.1 > │
│ │ proxy-agent@3.0.3 > pac-proxy-agent@3.0.1 > │
│ │ pac-resolver@3.0.0 > netmask@1.0.6 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info │ https://github.com/advisories/GHSA-4c7m-wxvm-r7gc │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ high │ Arbitrary File Creation/Overwrite on Windows via │
│ │ insufficient relative path sanitization │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package │ tar │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ <4.4.18 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions │ >=4.4.18 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths │ . > karma@2.0.5 > chokidar@2.1.8 > fsevents@1.2.9 > │
│ │ node-pre-gyp@0.12.0 > tar@4.4.15 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info │ https://github.com/advisories/GHSA-5955-9wpr-37jh │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ high │ Arbitrary File Creation/Overwrite via insufficient │
│ │ symlink protection due to directory cache poisoning │
│ │ using symbolic links │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package │ tar │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ <4.4.18 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions │ >=4.4.18 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths │ . > karma@2.0.5 > chokidar@2.1.8 > fsevents@1.2.9 > │
│ │ node-pre-gyp@0.12.0 > tar@4.4.15 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info │ https://github.com/advisories/GHSA-qq89-hq3f-393p │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ high │ Arbitrary File Creation/Overwrite via insufficient │
│ │ symlink protection due to directory cache poisoning │
│ │ using symbolic links │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package │ tar │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ <4.4.16 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions │ >=4.4.16 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths │ . > karma@2.0.5 > chokidar@2.1.8 > fsevents@1.2.9 > │
│ │ node-pre-gyp@0.12.0 > tar@4.4.15 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info │ https://github.com/advisories/GHSA-9r2w-394v-53qc │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ high │ Code Injection in pac-resolver │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package │ pac-resolver │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ <5.0.0 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions │ >=5.0.0 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths │ . > karma@2.0.5 > log4js@2.11.0 > mailgun-js@0.18.1 > │
│ │ proxy-agent@3.0.3 > pac-proxy-agent@3.0.1 > │
│ │ pac-resolver@3.0.0 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info │ https://github.com/advisories/GHSA-9j49-mfvp-vmhm │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ high │ Resource exhaustion in socket.io-parser │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package │ socket.io-parser │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ <3.3.2 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions │ >=3.3.2 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths │ . > karma@2.0.5 > socket.io@2.0.4 > │
│ │ socket.io-client@2.0.4 > socket.io-parser@3.1.3 │
│ │ │
│ │ . > karma@2.0.5 > socket.io@2.0.4 > │
│ │ socket.io-parser@3.1.3 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info │ https://github.com/advisories/GHSA-xfhh-g9f5-x4m4 │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ high │ Arbitrary Code Injection │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package │ xmlhttprequest-ssl │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ <1.6.2 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions │ >=1.6.2 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths │ . > karma@2.0.5 > socket.io@2.0.4 > │
│ │ socket.io-client@2.0.4 > engine.io-client@3.1.6 > │
│ │ xmlhttprequest-ssl@1.5.5 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info │ https://github.com/advisories/GHSA-h4j5-c7cj-74xg │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ high │ Arbitrary Code Execution in underscore │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package │ underscore │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ >=1.3.2 <1.12.1 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions │ >=1.12.1 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths │ . > karma@2.0.5 > log4js@2.11.0 > nodemailer@2.7.2 > │
│ │ nodemailer-direct-transport@3.3.2 > │
│ │ smtp-connection@2.12.0 > httpntlm@1.6.1 > │
│ │ underscore@1.7.0 │
│ │ │
│ │ . > karma@2.0.5 > log4js@2.11.0 > nodemailer@2.7.2 > │
│ │ nodemailer-smtp-pool@2.8.2 > smtp-connection@2.12.0 > │
│ │ httpntlm@1.6.1 > underscore@1.7.0 │
│ │ │
│ │ . > karma@2.0.5 > log4js@2.11.0 > nodemailer@2.7.2 > │
│ │ nodemailer-smtp-transport@2.7.2 > │
│ │ smtp-connection@2.12.0 > httpntlm@1.6.1 > │
│ │ underscore@1.7.0 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info │ https://github.com/advisories/GHSA-cf4h-3jhx-xvhq │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ high │ Path traversal in url-parse │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package │ url-parse │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ <1.5.0 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions │ >=1.5.0 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths │ . > karma@2.0.5 > log4js@2.11.0 > amqplib@0.5.5 > │
│ │ url-parse@1.4.7 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info │ https://github.com/advisories/GHSA-9m6j-fcg5-2442 │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ high │ Remote Memory Exposure in bl │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package │ bl │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ <1.2.3 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions │ >=1.2.3 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths │ . > karma@2.0.5 > log4js@2.11.0 > loggly@1.1.1 > │
│ │ request@2.75.0 > bl@1.1.2 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info │ https://github.com/advisories/GHSA-pp7h-53gx-mx7r │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ high │ Denial of Service in http-proxy │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package │ http-proxy │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ <1.18.1 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions │ >=1.18.1 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths │ . > karma@2.0.5 > http-proxy@1.18.0 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info │ https://github.com/advisories/GHSA-6x33-pw7p-hmpq │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ high │ Validation Bypass in kind-of │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package │ kind-of │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ >=6.0.0 <6.0.3 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions │ >=6.0.3 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths │ . > karma@2.0.5 > chokidar@2.1.8 > anymatch@2.0.0 > │
│ │ micromatch@3.1.10 > braces@2.3.2 > snapdragon@0.8.2 > │
│ │ base@0.11.2 > define-property@1.0.0 > │
│ │ is-descriptor@1.0.2 > is-accessor-descriptor@1.0.0 > │
│ │ kind-of@6.0.2 │
│ │ │
│ │ . > karma@2.0.5 > chokidar@2.1.8 > anymatch@2.0.0 > │
│ │ micromatch@3.1.10 > braces@2.3.2 > snapdragon@0.8.2 > │
│ │ base@0.11.2 > define-property@1.0.0 > │
│ │ is-descriptor@1.0.2 > is-data-descriptor@1.0.0 > │
│ │ kind-of@6.0.2 │
│ │ │
│ │ . > karma@2.0.5 > chokidar@2.1.8 > anymatch@2.0.0 > │
│ │ micromatch@3.1.10 > braces@2.3.2 > snapdragon@0.8.2 > │
│ │ base@0.11.2 > define-property@1.0.0 > │
│ │ is-descriptor@1.0.2 > kind-of@6.0.2 │
│ │ │
│ │ ... Found 97 paths, run \`pnpm why kind-of\` for more │
│ │ information │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info │ https://github.com/advisories/GHSA-6c8f-qphg-qjgp │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ high │ Exposure of sensitive information in follow-redirects │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package │ follow-redirects │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ <1.14.7 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions │ >=1.14.7 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths │ . > karma@2.0.5 > log4js@2.11.0 > axios@0.15.3 > │
│ │ follow-redirects@1.0.0 │
│ │ │
│ │ . > axios@0.15.3 > follow-redirects@1.0.0 │
│ │ │
│ │ . > karma@2.0.5 > http-proxy@1.18.0 > │
│ │ follow-redirects@1.9.0 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info │ https://github.com/advisories/GHSA-74fj-2j2h-c42q │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ high │ Regular expression denial of service │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package │ glob-parent │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ <5.1.2 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions │ >=5.1.2 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths │ . > karma@2.0.5 > chokidar@2.1.8 > glob-parent@3.1.0 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info │ https://github.com/advisories/GHSA-ww39-953v-wcq6 │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ high │ Command Injection in lodash │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package │ lodash │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ <4.17.21 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions │ >=4.17.21 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths │ . > karma@2.0.5 > combine-lists@1.0.1 > lodash@4.17.15 │
│ │ │
│ │ . > karma@2.0.5 > lodash@4.17.15 │
│ │ │
│ │ . > karma@2.0.5 > log4js@2.11.0 > │
│ │ hipchat-notifier@1.1.0 > lodash@4.17.15 │
│ │ │
│ │ ... Found 5 paths, run \`pnpm why lodash\` for more │
│ │ information │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info │ https://github.com/advisories/GHSA-35jh-r3h4-6jhm │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ high │ Prototype Pollution in lodash │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package │ lodash │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ <4.17.19 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions │ >=4.17.19 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths │ . > karma@2.0.5 > combine-lists@1.0.1 > lodash@4.17.15 │
│ │ │
│ │ . > karma@2.0.5 > lodash@4.17.15 │
│ │ │
│ │ . > karma@2.0.5 > log4js@2.11.0 > │
│ │ hipchat-notifier@1.1.0 > lodash@4.17.15 │
│ │ │
│ │ ... Found 5 paths, run \`pnpm why lodash\` for more │
│ │ information │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info │ https://github.com/advisories/GHSA-p6mc-m468-83gw │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ high │ Resource exhaustion in engine.io │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package │ engine.io │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ <4.0.0 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions │ >=4.0.0 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths │ . > karma@2.0.5 > socket.io@2.0.4 > engine.io@3.1.5 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info │ https://github.com/advisories/GHSA-j4f2-536g-r55m │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ high │ Authorization bypass in url-parse │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package │ url-parse │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ <1.5.6 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions │ >=1.5.6 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths │ . > karma@2.0.5 > log4js@2.11.0 > amqplib@0.5.5 > │
│ │ url-parse@1.4.7 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info │ https://github.com/advisories/GHSA-rqff-837h-mm52 │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ moderate │ Prototype Pollution in node-jsonpointer │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package │ jsonpointer │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ <5.0.0 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions │ >=5.0.0 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths │ . > karma@2.0.5 > log4js@2.11.0 > loggly@1.1.1 > │
│ │ request@2.75.0 > har-validator@2.0.6 > │
│ │ is-my-json-valid@2.20.0 > jsonpointer@4.0.1 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info │ https://github.com/advisories/GHSA-282f-qqgm-c34q │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ moderate │ Open redirect in url-parse │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package │ url-parse │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ <1.5.2 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions │ >=1.5.2 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths │ . > karma@2.0.5 > log4js@2.11.0 > amqplib@0.5.5 > │
│ │ url-parse@1.4.7 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info │ https://github.com/advisories/GHSA-hh27-ffr2-f2jc │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ moderate │ netmask npm package vulnerable to octal input data │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package │ netmask │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ <2.0.1 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions │ >=2.0.1 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths │ . > karma@2.0.5 > log4js@2.11.0 > mailgun-js@0.18.1 > │
│ │ proxy-agent@3.0.3 > pac-proxy-agent@3.0.1 > │
│ │ pac-resolver@3.0.0 > netmask@1.0.6 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info │ https://github.com/advisories/GHSA-pch5-whg9-qr2r │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ moderate │ Insecure defaults due to CORS misconfiguration in │
│ │ socket.io │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package │ socket.io │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ <2.4.0 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions │ >=2.4.0 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths │ . > karma@2.0.5 > socket.io@2.0.4 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info │ https://github.com/advisories/GHSA-fxwf-4rqh-v8g3 │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ moderate │ Tmp files readable by other users in sync-exec │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package │ sync-exec │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ <=0.6.2 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions │ <0.0.0 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths │ . > sync-exec@0.6.2 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info │ https://github.com/advisories/GHSA-38h8-x697-gh8q │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ moderate │ Memory Exposure in tunnel-agent │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package │ tunnel-agent │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ <0.6.0 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions │ >=0.6.0 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths │ . > karma@2.0.5 > log4js@2.11.0 > loggly@1.1.1 > │
│ │ request@2.75.0 > tunnel-agent@0.4.3 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info │ https://github.com/advisories/GHSA-xc7v-wxcw-j472 │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ moderate │ Prototype Pollution in hoek │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package │ hoek │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ <4.2.1 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions │ >=4.2.1 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths │ . > karma@2.0.5 > log4js@2.11.0 > loggly@1.1.1 > │
│ │ request@2.75.0 > hawk@3.1.3 > boom@2.10.1 > │
│ │ hoek@2.16.3 │
│ │ │
│ │ . > karma@2.0.5 > log4js@2.11.0 > loggly@1.1.1 > │
│ │ request@2.75.0 > hawk@3.1.3 > cryptiles@2.0.5 > │
│ │ boom@2.10.1 > hoek@2.16.3 │
│ │ │
│ │ . > karma@2.0.5 > log4js@2.11.0 > loggly@1.1.1 > │
│ │ request@2.75.0 > hawk@3.1.3 > hoek@2.16.3 │
│ │ │
│ │ ... Found 4 paths, run \`pnpm why hoek\` for more │
│ │ information │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info │ https://github.com/advisories/GHSA-jp4x-w63m-7wgm │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ moderate │ json-schema is vulnerable to Prototype Pollution │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package │ json-schema │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ <0.4.0 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions │ >=0.4.0 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths │ . > karma@2.0.5 > log4js@2.11.0 > │
│ │ hipchat-notifier@1.1.0 > request@2.88.0 > │
│ │ http-signature@1.2.0 > jsprim@1.4.1 > │
│ │ json-schema@0.2.3 │
│ │ │
│ │ . > karma@2.0.5 > log4js@2.11.0 > loggly@1.1.1 > │
│ │ request@2.75.0 > http-signature@1.1.1 > jsprim@1.4.1 > │
│ │ json-schema@0.2.3 │
│ │ │
│ │ . > karma@2.0.5 > log4js@2.11.0 > slack-node@0.2.0 > │
│ │ requestretry@1.13.0 > request@2.88.0 > │
│ │ http-signature@1.2.0 > jsprim@1.4.1 > │
│ │ json-schema@0.2.3 │
│ │ │
│ │ ... Found 4 paths, run \`pnpm why json-schema\` for more │
│ │ information │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info │ https://github.com/advisories/GHSA-896r-f27r-55mw │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ moderate │ Header injection in nodemailer │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package │ nodemailer │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ <6.6.1 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions │ >=6.6.1 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths │ . > karma@2.0.5 > log4js@2.11.0 > nodemailer@2.7.2 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info │ https://github.com/advisories/GHSA-hwqf-gcqm-7353 │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ moderate │ Incorrect Default Permissions in log4js │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package │ log4js │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ <6.4.0 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions │ >=6.4.0 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths │ . > karma@2.0.5 > log4js@2.11.0 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info │ https://github.com/advisories/GHSA-82v2-mx6x-wq7q │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ moderate │ Regular Expression Denial of Service (ReDoS) in lodash │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package │ lodash │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ <4.17.21 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions │ >=4.17.21 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths │ . > karma@2.0.5 > combine-lists@1.0.1 > lodash@4.17.15 │
│ │ │
│ │ . > karma@2.0.5 > lodash@4.17.15 │
│ │ │
│ │ . > karma@2.0.5 > log4js@2.11.0 > │
│ │ hipchat-notifier@1.1.0 > lodash@4.17.15 │
│ │ │
│ │ ... Found 5 paths, run \`pnpm why lodash\` for more │
│ │ information │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info │ https://github.com/advisories/GHSA-29mw-wpgm-hmr9 │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ moderate │ Cross-site Scripting in karma │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package │ karma │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ <6.3.14 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions │ >=6.3.14 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths │ . > karma@2.0.5 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info │ https://github.com/advisories/GHSA-7x7c-qm48-pq9c │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ moderate │ Prototype Pollution in Ajv │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package │ ajv │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ <6.12.3 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions │ >=6.12.3 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths │ . > karma@2.0.5 > log4js@2.11.0 > │
│ │ hipchat-notifier@1.1.0 > request@2.88.0 > │
│ │ har-validator@5.1.3 > ajv@6.10.2 │
│ │ │
│ │ . > karma@2.0.5 > log4js@2.11.0 > slack-node@0.2.0 > │
│ │ requestretry@1.13.0 > request@2.88.0 > │
│ │ har-validator@5.1.3 > ajv@6.10.2 │
│ │ │
│ │ . > karma@2.0.5 > useragent@2.2.1 > request@2.88.0 > │
│ │ har-validator@5.1.3 > ajv@6.10.2 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info │ https://github.com/advisories/GHSA-v88g-cgmw-v5xw │
└─────────────────────┴────────────────────────────────────────────────────────┘
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ moderate │ Exposure of Sensitive Information to an Unauthorized │
│ │ Actor in follow-redirects │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Package │ follow-redirects │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Vulnerable versions │ <1.14.8 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Patched versions │ >=1.14.8 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ Paths │ . > karma@2.0.5 > log4js@2.11.0 > axios@0.15.3 > │
│ │ follow-redirects@1.0.0 │
│ │ │
│ │ . > axios@0.15.3 > follow-redirects@1.0.0 │
│ │ │
│ │ . > karma@2.0.5 > http-proxy@1.18.0 > │
│ │ follow-redirects@1.9.0 │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ More info │ https://github.com/advisories/GHSA-pw2r-vq6v-hr8c │
└─────────────────────┴────────────────────────────────────────────────────────┘
46 vulnerabilities found
Severity: 4 low | 17 moderate | 21 high | 4 critical"
`;

View File

@@ -273,6 +273,38 @@ describe('plugin-commands-audit', () => {
expect(stripAnsi(output)).toMatchSnapshot()
})
test('audit: CVEs in ignoreGhsas do not show up', async () => {
const tmp = f.prepare('has-vulnerabilities')
nock(registries.default)
.post('/-/npm/v1/security/audits')
.reply(200, responses.ALL_VULN_RESP)
const { exitCode, output } = await audit.handler({
auditLevel: 'moderate',
dir: tmp,
userConfig: {},
rawConfig,
registries,
rootProjectManifest: {
pnpm: {
auditConfig: {
ignoreGhsas: [
'GHSA-42xw-2xvc-qx8m',
'GHSA-4w2v-q235-vp99',
'GHSA-cph5-m8f7-6c5x',
'GHSA-vh95-rmgr-6w4m',
],
},
},
},
virtualStoreDirMaxLength: 120,
})
expect(exitCode).toBe(1)
expect(stripAnsi(output)).toMatchSnapshot()
})
test('audit: CVEs in ignoreCves do not show up when JSON output is used', async () => {
const tmp = f.prepare('has-vulnerabilities')

View File

@@ -145,6 +145,7 @@ export interface ProjectManifest extends BaseManifest {
}
auditConfig?: {
ignoreCves?: string[]
ignoreGhsas?: string[]
}
requiredScripts?: string[]
supportedArchitectures?: SupportedArchitectures

View File

@@ -74,9 +74,10 @@ export async function main (inputArgv: string[]): Promise<void> {
if (unknownOptionsArray.every((option) => DEPRECATED_OPTIONS.has(option))) {
let deprecationMsg = `${chalk.bgYellow.black('\u2009WARN\u2009')}`
if (unknownOptionsArray.length === 1) {
deprecationMsg += ` ${chalk.yellow(`Deprecated option: '${unknownOptionsArray[0]}'`)}`
const deprecatedOption = unknownOptionsArray[0] as string
deprecationMsg += ` ${chalk.yellow(`Deprecated option: '${deprecatedOption}'`)}`
} else {
deprecationMsg += ` ${chalk.yellow(`Deprecated options: ${unknownOptionsArray.map(unknownOption => `'${unknownOption}'`).join(', ')}`)}`
deprecationMsg += ` ${chalk.yellow(`Deprecated options: ${unknownOptionsArray.map((unknownOption: string) => `'${unknownOption}'`).join(', ')}`)}`
}
console.log(deprecationMsg)
} else {