メニュー

【npm】ユーザーで導入した覚えのないパッケージの脆弱性について

パッケージの脆弱性を確認すると、導入した覚えのないパッケージの脆弱性があった。
当時、脆弱性(ランクはModerate)があったのは、postcssというパッケージ。

検証と対策

auditの詳細を参考にnode_modules内を確認したところ、パッケージで使用するパッケージにpostcssがあった。

パッケージ作成者もすぐには対応できないことが多いが、npm-force-resolutionsを使えば依存関係のあるパッケージのバージョンを強制的に上げることが可能。
package.jsonにresolutionsを足して、依存関係にあるパッケージのバージョンを強制的に上げました。

package.jsonにresolutionsを追加

package.jsonにresolutionsを追加し、当時postcssの最新バージョンを指定する。

  "resolutions": {
    "postcss": "8.2.15"
  },

scripts内にはnpxで専用のコマンドを入れておく。

"preinstall": "npx npm-force-resolutions"

preinstallはinstallが実行されるよりも前に実行される。