ペイロードにおけるSQLインジェクションの脆弱性(SQLite/Postgres)
### 影響
攻撃者が、読み取り、作成、または更新権限を持つコレクションに対して、PayloadのSQLiteおよびPostgresで特定のフィールドパス、形状、および演算子を対象としたSQLインジェクションを含むリクエストを送信できる可能性があります。
#### 影響を受ける場合:
- `@payloadcms/db-sqlite` または `@payloadcms/db-d1-sqlite` を使用している。
- `@payloadcms/db-postgres` または `@payloadcms/db-vercel-postgres` のバージョンが 3.73.0 未満である。
- 読み取り可能なコレクションに、`json` フィールド、または `blocksAsJSON: true` の `blocks` フィールドがある。
- 攻撃者が、そのコレクションに対して読み取り、作成、または更新権限を持っている。
#### 影響を受けない場合:
- `json` または `blocksAsJSON` フィールドが存在しない。 `richText` は影響を受けません。
- パッチが適用されたバージョンを使用している。
### 修正
パッチが適用されたバージョンでは、クエリの入力をサニタイズすることで、インジェクションを防止します。
Payloadのパッケージを `3.90.0` 以上、または `4.0.0-canary.34` 以上にアップグレードしてください。
影響を受けるパッケージ:
- npm (JavaScript) @payloadcms/db-sqlite: 影響を受けるバージョンは 3.0.0 以上、3.90.0 未満。 3.90.0 で修正済み。
- npm (JavaScript) @payloadcms/db-d1-sqlite: 影響を受けるバージョンは 3.0.0 以上、3.90.0 未満。 3.90.0 で修正済み。
- npm (JavaScript) @payloadcms/db-postgres: 影響を受けるバージョンは 3.0.0 以上、3.73.0 未満。 3.73.0 で修正済み。
- npm (JavaScript) @payloadcms/db-vercel-postgres: 影響を受けるバージョンは 3.0.0 以上、3.73.0 未満。 3.73.0 で修正済み。
- npm (JavaScript) @payloadcms/db-sqlite: 影響を受けるバージョンは 4.0.0-canary.0 以上、4.0.0-canary.34 未満。 4.0.0-canary.34 で修正済み。
- npm (JavaScript) @payloadcms/db-d1-sqlite: 影響を受けるバージョンは 4.0.0-canary.0 以上、4.0.0-canary.34 未満。 4.0.0-canary.34 で修正済み。