pnpm audit
설치된 패키지의 알려진 보안 문제를 확인합니다.
보안 문제가 발견되면 pnpm update를 통해 의존성을 업데이트하십시오. 간단한 업데이트로 모든 문제가 해결되지 않으면 overrides를 사용하여 취약하지 않은 버전을 강제로 적용하세요. 예를 들어 lodash@<2.1.0 가 취약한 경우 이 override를 사용하여 lodash@^2.1.0를 강제 실행합니다.
overrides:
"lodash@<2.1.0": "^2.1.0"
또는 pnpm audit --fix을 실행합니다.
프로젝트에 영향을 주지 않아 일부 취약점을 허용하려면 audit.ignore 설정을 사용할 수 있습니다.
버전 v11부터 pnpm audit는 레지스트리의 /-/npm/v1/security/advisories/bulk 엔드포인트를 쿼리합니다. 응답에는 CVE 식별자가 포함되지 않으므로 대신 GitHub 권고 ID(GHSA)로 권고를 필터링합니다. 이전에 auditConfig.ignoreCves에 CVE를 나열했다면, 각 항목을 해당 GHSA-xxxx-xxxx-xxxx 값(More info 열에 표시되며 pnpm audit 출력에서 확인할 수 있음)으로 바꿔 audit.ignore 아래에 넣으세요.
Commands#
signatures#
추가된 버전: v11.1.0
pnpm audit signatures
설치된 패키지의 ECDSA 레지스트리 서명을 각 레지스트리가 /-/npm/v1/keys에 게시한 공개 키와 비교하여 검증합니다. registries로 구성된 스코프 레지스트리는 적용됩니다; 서명 키를 게시하지 않는 레지스트리는 건너뜁니다.
패키지의 서명이 유효하지 않거나, 레지스트리가 서명 키를 공개했지만 패키지가 서명 없이 게시된 경우 이 명령은 코드 1로 종료됩니다. --json과 함께 사용하면 기계가 읽을 수 있는 출력을 얻을 수 있습니다.
옵션#
--audit-level <심각도>#
- 유형: low, moderate, high, critical
- 기본값: 낮음
<severity>보다 크거나 같은 심각도의 권고 사항만 출력됩니다.
이 값은 audit.level을 통해서도 pnpm-workspace.yaml에서 설정할 수 있습니다.
--fix#
취약하지 않은 버전의 의존성을 강제하기 위해 pnpm-workspace.yaml 파일에 override를 추가하세요.
취약점을 수정할 때 overrides를 추가하는 대신 lockfile의 패키지를 업데이트하려면 --fix=update를 사용하세요(v11.0.0에서 추가됨).
minimumReleaseAge가 설정된 경우 --fix는 각 권고의 최소 패치 버전을 minimumReleaseAgeExclude 목록에도 추가하고 이를 pnpm-workspace.yaml에 기록하므로, 릴리스 대기 기간을 기다리지 않고 보안 수정을 설치할 수 있습니다.
--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는 audit 섹션에서 구성되며 이 섹션은 pnpm-workspace.yaml에 있습니다(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 섹션이 우선하며 경고가 출력됩니다.
버전 v11 이전에는, auditConfig.ignoreCves를 사용하여 CVE 식별자로 권고를 필터링했습니다. 해당 설정은 더 이상 인식되지 않습니다.