Skip to content

Commit

Permalink
fix(audit): ignore vulnerabilities listed in ignoreCves
Browse files Browse the repository at this point in the history
close #5734
  • Loading branch information
zkochan committed Dec 5, 2022
1 parent bcf2d54 commit d6a585b
Show file tree
Hide file tree
Showing 4 changed files with 1,785 additions and 5 deletions.
6 changes: 6 additions & 0 deletions .changeset/pink-socks-learn.md
@@ -0,0 +1,6 @@
---
"@pnpm/plugin-commands-audit": patch
"pnpm": patch
---

`pnpm audit --json` should ignore vulnerabilities listed in `auditConfig.ignoreCves` [#5734](https://github.com/pnpm/pnpm/issues/5734).
11 changes: 6 additions & 5 deletions lockfile/plugin-commands-audit/src/audit.ts
Expand Up @@ -8,8 +8,9 @@ import { readWantedLockfile } from '@pnpm/lockfile-file'
import { Registries } from '@pnpm/types'
import { table } from '@zkochan/table'
import chalk from 'chalk'
import difference from 'ramda/src/difference'
import pick from 'ramda/src/pick'
import { difference } from 'ramda'
import pickBy from 'ramda/src/pickBy'
import renderHelp from 'render-help'
import { fix } from './fix'

Expand Down Expand Up @@ -197,6 +198,10 @@ ${JSON.stringify(newOverrides, null, 2)}`,
const vulnerabilities = auditReport.metadata.vulnerabilities
const totalVulnerabilityCount = Object.values(vulnerabilities)
.reduce((sum: number, vulnerabilitiesCount: number) => sum + vulnerabilitiesCount, 0)
const ignoreCves = opts.rootProjectManifest?.pnpm?.auditConfig?.ignoreCves
if (ignoreCves) {
auditReport.advisories = pickBy(({ cves }) => difference(cves, ignoreCves).length > 0, auditReport.advisories)
}
if (opts.json) {
return {
exitCode: totalVulnerabilityCount > 0 ? 1 : 0,
Expand All @@ -207,10 +212,6 @@ ${JSON.stringify(newOverrides, null, 2)}`,
let output = ''
const auditLevel = AUDIT_LEVEL_NUMBER[opts.auditLevel ?? 'low']
let advisories = Object.values(auditReport.advisories)
const ignoreCves = opts.rootProjectManifest?.pnpm?.auditConfig?.ignoreCves
if (ignoreCves) {
advisories = advisories.filter(({ cves }) => difference(cves, ignoreCves).length > 0)
}
advisories = advisories
.filter(({ severity }) => AUDIT_LEVEL_NUMBER[severity] >= auditLevel)
.sort((a1, a2) => AUDIT_LEVEL_NUMBER[a2.severity] - AUDIT_LEVEL_NUMBER[a1.severity])
Expand Down

0 comments on commit d6a585b

Please sign in to comment.