pnpm audit

Перевіряє наявність відомих проблем безпеки у встановлених пакунках.

Якщо виявлено проблеми з безпекою, спробуйте оновити залежності за допомогою pnpm update. Якщо звичайне оновлення не може виправити всі проблеми, використайте перевизначення overrides, для примусового встановлення версій, які не є вразливими. Наприклад, якщо бібліотека lodash@<2.1.0 є вразливою, скористайтеся цим перевизначенням для встановлення lodash@^2.1.0:

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

Або, запустіть pnpm audit --fix.

Якщо ви хочете проігнорувати деякі вразливості, оскільки вони не впливають на ваш проєкт, ви можете використати параметр audit.ignore.

Починаючи з версії v11, pnpm audit запитує точку доступу реєстру /-/npm/v1/security/advisories/bulk. Відповідь не містить ідентифікаторів CVE, тому повідомлення фільтруються за ідентифікатором повідомлення GitHub (GHSA). If you previously listed CVEs under auditConfig.ignoreCves, replace each entry with the corresponding GHSA-xxxx-xxxx-xxxx value (shown in the More info column of pnpm audit output) under audit.ignore.

The command exits with code 1 when an advisory at or above the audit level remains after ignored advisories are removed. This also applies to --ignore and --ignore-unfixable, which save the IDs first.

Команди#

signatures#

Додано у: v11.1.0

pnpm audit signatures

Перевіряє підписи реєстру ECDSA для встановлених пакунків відповідно до публічних ключів, опублікованих кожним реєстром за адресою /-/npm/v1/keys. Реєстри з обмеженою видимістю, налаштовані через registries, враховуються; реєстри, які не публікують ключі підпису, пропускаються.

Signatures are verified against the package integrity recorded in the lockfile. A package without recorded integrity cannot pass verification.

Команда завершує роботу з кодом помилки 1, якщо будь-який пакунок має недійсний підпис, або якщо реєстр оголошує наявність ключів підпису, але пакунок був опублікований без підпису. Використовуйте разом з опцією --json, щоб отримати вихідні дані у форматі, придатному для машинного зчитування.

Параметри#

--audit-level <severity>#

  • Type: info, low, moderate, high, critical
  • Стандартно: low

Виводить лише ті попередження, серйозність яких більша або дорівнює <severity>.

This can also be set via audit.level in pnpm-workspace.yaml.

--fix#

Add overrides to the pnpm-workspace.yaml file to force non-vulnerable versions of the dependencies.

Використовуйте --fix=update (додано у v11.0.0) для виправлення вразливостей шляхом оновлення пакунків у файлі блокування замість додавання перевизначень.

Якщо встановлено значення minimumReleaseAge, опція --fix також додає мінімальну виправлену версію кожного повідомлення про вразливість до minimumReleaseAgeExclude у файлі pnpm-workspace.yaml, завдяки чому виправлення безпеки можна встановити, не чекаючи закінчення вікна випуску.

--interactive, -i#

Додано у: v11.0.0

Перегляньте повідомлення, відібрані з --fix, і виберіть ті, які потрібно застосувати. Implies --fix=override when --fix is not given.

--json#

Виводить на екран результат перевірки у форматі JSON.

patched_versions is null for an advisory with no published fix, so tooling can tell "no fix available" from "fix available at version X".

--dev, -D#

Перевіряє лише dev залежності.

--prod, -P#

Перевіряє лише production залежності.

--no-optional#

Не перевіряти optional Dependencies.

--ignore-registry-errors#

Якщо реєстр повертає код статусу, відмінний від 200, процес повинен завершитися з 0. Таким чином, процес завершиться невдачею лише у випадку, якщо реєстр успішно відповість і знайде вразливості.

--ignore-unfixable#

Додано у: v10.11.0

Ігноруйте всі повідомлення, для яких не знайдено вирішення.

Починаючи з версії v11, повідомлення про невиправні помилки відстежуються GHSA, а не CVE.

Their IDs are saved in pnpm-workspace.yaml the same way as with --ignore.

--ignore <vulnerability>#

Додано у: v10.11.0

Ігнорувати вразливість за її ідентифікатором повідомлення на GitHub (GHSA). До версії v11 цей прапорець приймав ідентифікатори CVE.

The ID is saved in pnpm-workspace.yaml, which is created if missing, and no audit report is printed. It is added to audit.ignore if that list is already set, otherwise to auditConfig.ignoreGhsas.

Налаштування#

pnpm audit is configured in the audit section of pnpm-workspace.yaml (added in v11.16.0):

pnpm-workspace.yaml
audit:
  level: high
  ignore:
    - GHSA-42xw-2xvc-qx8m

audit.level#

  • Стандартно: low
  • Type: info, low, moderate, high, critical

Виводити на екран лише попередження, рівень серйозності яких дорівнює або перевищує цей рівень. Same as the --audit-level flag.

audit.ignore#

A list of GHSA codes that will be ignored by the pnpm audit command.

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

Since v11.26.0, ignored advisories are left out of the vulnerability total and the per-severity counts, and reported separately. When every advisory found is ignored, the summary says so rather than reporting a clean audit.

audit.ignorePrune#

Added in: v11.25.0

  • Стандартно: false
  • Тип: Boolean

When true, pnpm audit --fix removes the audit.ignore entries whose GHSA no longer appears in the audit report, so a list of tolerated advisories doesn't accumulate entries for dependencies that are long gone.

pnpm-workspace.yaml
audit:
  ignorePrune: true

інформація

Before v11.16.0, these settings were named auditLevel and auditConfig.ignoreGhsas. The deprecated names keep working until the next major version; when both are set, the audit section takes precedence and a warning is printed.

До версії v11 параметр auditConfig.ignoreCves використовувався для фільтрації повідомлень за ідентифікатором CVE. Цей параметр більше не використовується.