Laravelでプロジェクトを起動しようとしたら「npm audit fix」が出た話

## はじめに
以前[Laravel環境お引越し記事](https://qiita.com/motuneko253/items/12ef476031c2fa389384)にて色々まとめていましたが、自宅内のサーバのメンテでプロジェクトのお引越しをしていた所、今まで見たことないLaravel起動時のエラーが出たのでそのまとめです。

## 環境
環境は依然に引き続きLaravel10を使用していきます。
### バージョン情報
```shell:コマンド
$ sail php artisan --version
Laravel Framework 10.48.16
```

## エラー内容
以前投稿した記事の中で、「sail npm install」を実行していましたが、今回そのコマンドを実行した所、以下のエラーが発生しました。

```shell:コマンド
test01@vm-omsrv01:/work/gitlab/test-cis-v10$ sail npm install

up to date, audited 147 packages in 1s

36 packages are looking for funding
  run `npm fund` for details

4 vulnerabilities (3 moderate, 1 high)

To address all issues, run:
  npm audit fix

Run `npm audit` for details.
```

なんとなく文面から察していましたが、調べてみるとどうやら脆弱性があるからアップデートしろ的な内容のようです。
「npm audit」コマンドを使用すると詳細が見れるようですので実行してみます。
```shell:コマンド
test01@vm-omsrv01:/work/gitlab/test-cis-v10$ sail npm audit
# npm audit report

axios  1.3.2 - 1.7.3
Severity: high
Server-Side Request Forgery in axios - https://github.com/advisories/GHSA-8hc4-vh64-cxmj
fix available via `npm audit fix`
node_modules/axios

micromatch  *
Severity: moderate
Regular Expression Denial of Service (ReDoS) in micromatch - https://github.com/advisories/GHSA-952p-6rrq-rcjv
fix available via `npm audit fix`
node_modules/tailwindcss/node_modules/micromatch
  fast-glob  *
  Depends on vulnerable versions of micromatch
  node_modules/tailwindcss/node_modules/fast-glob
    tailwindcss  <=0.0.0-oxide-insiders.ff2c25f || 2.1.0-canary.1 - 3.4.10
    Depends on vulnerable versions of fast-glob
    Depends on vulnerable versions of micromatch
    node_modules/tailwindcss

4 vulnerabilities (3 moderate, 1 high)

To address all issues, run:
  npm audit fix
```
<br>
DeepLで翻訳したりChatGPTに聞きながら要約すると以下のような感じでしょうか。

### 1. axios (重大性：高)
- **脆弱性の種類**：サーバーサイドリクエストフォージェリ (SSRF)
- **影響を受けるバージョン**：1.3.2 - 1.7.3
- **修正方法**：`npm audit fix` コマンドで修正可能です。
- **詳細**：[GHSA-8hc4-vh64-cxmj](https://github.com/advisories/GHSA-8hc4-vh64-cxmj)

### 2. micromatch (重大性：低)
- **脆弱性の種類**：正規表現のサービス拒否攻撃 (ReDoS)
- **影響を受けるバージョン**：micromatch の全バージョンが影響を受けます。
- **依存関係**：`tailwindcss` パッケージが `fast-glob` に依存しており、さらに `fast-glob` が `micromatch` に依存しています。
- **修正方法**：`npm audit fix` コマンドで修正可能です。
- **詳細**：[GHSA-952p-6rrq-rcjv](https://github.com/advisories/GHSA-952p-6rrq-rcjv)
<br>

## 脆弱性対応
どうやらいずれも「npm audit fix」コマンドにて修正が可能なようです。
初めての実行ですが早速やってみます。
```shell:コマンド
test01@vm-omsrv01:/work/gitlab/test-cis-v10$ sail npm audit fix

added 18 packages, removed 19 packages, changed 2 packages, and audited 146 packages in 4s

36 packages are looking for funding
  run `npm fund` for details

# npm audit report

micromatch  *
Severity: moderate
Regular Expression Denial of Service (ReDoS) in micromatch - https://github.com/advisories/GHSA-952p-6rrq-rcjv
fix available via `npm audit fix`
node_modules/micromatch
  fast-glob  *
  Depends on vulnerable versions of micromatch
  node_modules/fast-glob
    tailwindcss  <=0.0.0-oxide-insiders.ff2c25f || 2.1.0-canary.1 - 3.4.10
    Depends on vulnerable versions of fast-glob
    Depends on vulnerable versions of micromatch
    node_modules/tailwindcss

3 moderate severity vulnerabilities

To address all issues, run:
  npm audit fix
```
<br>
「axios」についてはパッチ適用されたようですが、「micromatch」に関してはバージョンの依存関係もあり、ややこしそうです。
元々このシステムは外部公開せずに自宅のネットワークのみで完結しているので、重要度が低の脆弱性は一旦無視しようかと思います。

## 脆弱性を無視してインストール

調べてみた感じ以下の無視可能なオプションがあるようです。
- **no-audit**：脆弱性を一律無視する

```shell:コマンド
sail npm install --no-audit
```
<br>

```shell:コマンド
test01@vm-omsrv01:/work/gitlab/test-cis-v10$ sail npm install --no-audit

added 146 packages in 3s

36 packages are looking for funding
  run `npm fund` for details
test01@vm-omsrv01:/work/gitlab/test-cis-v10$ sail npm run build

> build
> vite build

vite v5.3.3 building for production...
✓ 54 modules transformed.
public/build/manifest.json             0.27 kB x gzip:  0.15 kB
public/build/assets/app-DrEXVF1d.css  35.79 kB x gzip:  6.69 kB
public/build/assets/app-Cs0QkU1O.js   78.50 kB x gzip: 29.14 kB
✓ built in 1.46s
```
<br>
buildも無事完了し、Webシステムにアクセスできました！

## 最後に
久しぶりの記事になりましたが、Esxiやk8sを自宅で構築したりしたのでそちらも追々記事にします！
読んでいただきありがとうございました！