GHSA-pj7x-6wpf-pgvp: SQL Injection
Impact
An attacker who has read plus create or update access to a collection can submit a request that includes a SQL injection targeting a specific field path shape and operators in Payload's SQLite and Postgres.
You are affected if:
- You use @payloadcms/db-sqlite or @payloadcms/db-d1-sqlite. - You use @payloadcms/db-postgres or @payloadcms/db-vercel-postgres < 3.73.0. - A readable collection has a json field, or a blocks field with blocksAsJSON: true. - The attacker has read plus create or update access on it.
You are not affected if: - You have no json or blocksAsJSON fields. richText is not affected. - You run a patched version.
Patches
The patched version sanitizes the query input to prevent injection.
Users should upgrade Payload packages to >= 3.90.0 or >= 4.0.0-canary.34.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
npm/@payloadcms/db-d1-sqliteto a version that resolves this vulnerability.Fixed in 4.0.0-canary.34 - Upgrade
Upgrade
npm/@payloadcms/db-sqliteto a version that resolves this vulnerability.Fixed in 4.0.0-canary.34 - Upgrade
Upgrade
npm/@payloadcms/db-vercel-postgresto a version that resolves this vulnerability.Fixed in 3.73.0 - Upgrade
Upgrade
npm/@payloadcms/db-postgresto a version that resolves this vulnerability.Fixed in 3.73.0 - Upgrade
Upgrade
npm/@payloadcms/db-d1-sqliteto a version that resolves this vulnerability.Fixed in 3.90.0 - Upgrade
Upgrade
npm/@payloadcms/db-sqliteto a version that resolves this vulnerability.Fixed in 3.90.0 - Upgrade
Upgrade
Payload packagesto a version that resolves this vulnerability.Fixed in 3.90.0