pnpm audit

설치된 패키지의 알려진 보안 문제를 확인합니다.

보안 문제가 발견되면 pnpm update를 통해 종속성을 업데이트해 보세요. 단순 업데이트로 모든 문제가 해결되지 않으면 overrides를 사용하여 취약하지 않은 버전을 강제로 지정하세요. 예를 들어, lodash@<2.1.0이 취약한 경우 다음 overrides를 사용하여 lodash@^2.1.0을 강제로 지정하세요:

pnpm-workspace.yaml
overrides:
  "lodash@<2.1.0": "^2.1.0"

또는 pnpm audit --fix를 실행하세요.

프로젝트에 영향을 주지 않는 일부 취약점을 허용하려면 audit.ignore 설정을 사용할 수 있습니다.

pnpm audit는 v11부터 레지스트리의 /-/npm/v1/security/advisories/bulk 엔드포인트를 조회합니다. 응답에는 CVE 식별자가 포함되지 않으므로 대신 GitHub 권고 ID(GHSA)로 권고를 필터링합니다. 이전에 auditConfig.ignoreCves 아래에 CVE를 나열했다면, 각 항목을 audit.ignore 아래의 해당 GHSA-xxxx-xxxx-xxxx 값(pnpm audit 출력의 More info 열에 표시됨)으로 바꾸세요.

Commands#

signatures#

추가된 버전: v11.1.0

pnpm audit signatures

설치된 패키지의 ECDSA 레지스트리 서명을 각 레지스트리가 /-/npm/v1/keys에 게시한 공개 키와 대조하여 검증합니다. registries를 통해 구성된 스코프 레지스트리도 적용되며, 서명 키를 게시하지 않는 레지스트리는 건너뜁니다.

이 명령은 유효하지 않은 서명을 가진 패키지가 있거나, 레지스트리가 서명 키를 제공하지만 패키지가 서명 없이 게시된 경우 코드 1로 종료됩니다. 기계가 읽을 수 있는 출력을 얻으려면 --json과 함께 사용하세요.

옵션#

--audit-level <severity>#

  • 유형: low, moderate, high, critical
  • 기본값: low

심각도가 <severity> 이상인 권고만 출력합니다.

pnpm-workspace.yaml의 audit.level로도 설정할 수 있습니다.

--fix#

종속성의 취약하지 않은 버전을 강제로 지정하기 위해 pnpm-workspace.yaml 파일에 overrides를 추가합니다.

취약점을 수정할 때 overrides를 추가하는 대신 lockfile의 패키지를 업데이트하려면 --fix=update(v11.0.0에서 추가됨)를 사용하세요.

minimumReleaseAge가 설정된 경우, --fix는 각 권고의 최소 패치 버전을 pnpm-workspace.yaml의 minimumReleaseAgeExclude에도 추가하여, 릴리스 기간을 기다리지 않고 보안 수정 사항을 설치할 수 있게 합니다.

--interactive, -i#

추가된 버전: v11.0.0

--fix로 선택된 권고를 검토하고 적용할 항목을 고릅니다. --fix와 함께 사용할 때만 사용할 수 있습니다.

--json#

JSON 형식으로 검사 보고서를 출력합니다.

--dev, -D#

개발 의존성만 검사합니다.

--prod, -P#

프로덕션 종속성만 검사합니다.

--no-optional#

optionalDependencies는 감사하지 않습니다.

--ignore-registry-errors#

레지스트리가 200이 아닌 상태 코드로 응답하면 프로세스가 0으로 종료되어야 합니다. 따라서 레지스트리가 실제로 발견된 취약점에 성공적으로 응답하는 경우에만 프로세스가 실패합니다.

--ignore-unfixable#

버전 10.11.0에서 추가됨

해결책이 없는 모든 권고를 무시합니다.

버전 v11부터 수정할 수 없는 권고는 CVE가 아닌 GHSA로 추적됩니다.

--ignore <vulnerability>#

버전 10.11.0에서 추가됨

GitHub 권고 ID(GHSA)로 취약점을 무시합니다. 버전 v11 이전에는 이 플래그가 CVE 식별자를 받았습니다.

환경설정#

pnpm audit는 pnpm-workspace.yaml의 audit 섹션에서 구성됩니다(v11.16.0에서 추가됨):

audit:
  level: high
  ignore:
    - GHSA-42xw-2xvc-qx8m

audit.level#

  • 기본값: low
  • 유형: low, moderate, high, critical

이 수준 이상의 심각도를 가진 권고만 출력합니다. --audit-level 플래그와 동일합니다.

audit.ignore#

pnpm audit 명령에서 무시할 GHSA 코드 목록입니다.

audit:
  ignore:
    - GHSA-42xw-2xvc-qx8m
    - GHSA-4w2v-q235-vp99
    - GHSA-cph5-m8f7-6c5x
    - GHSA-vh95-rmgr-6w4m

정보

이 설정들은 v11.16.0 이전에 auditLevel 및 auditConfig.ignoreGhsas라는 이름이었습니다. 사용 중단된 이름은 다음 메이저 버전까지 계속 작동합니다. 둘 다 설정된 경우 audit 섹션이 우선하며 경고가 출력됩니다.

auditConfig.ignoreCves는 v11 이전에 CVE 식별자로 권고를 필터링하는 데 사용되었습니다. 해당 설정은 더 이상 인식되지 않습니다.