fix(deps): update dependency payload to v3 [security]#76
Open
renovate[bot] wants to merge 1 commit intomainfrom
Open
fix(deps): update dependency payload to v3 [security]#76renovate[bot] wants to merge 1 commit intomainfrom
renovate[bot] wants to merge 1 commit intomainfrom
Conversation
0a442d0 to
65be071
Compare
65be071 to
ab6c995
Compare
ab6c995 to
8e9e8d4
Compare
8e9e8d4 to
6fd373e
Compare
6fd373e to
394dc4f
Compare
394dc4f to
e56f754
Compare
e56f754 to
adfb9ed
Compare
adfb9ed to
b60d36a
Compare
b60d36a to
6dd145d
Compare
6dd145d to
4b5231f
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
^2.0.0→^3.0.0GitHub Vulnerability Alerts
CVE-2025-4643
Payload uses JSON Web Tokens (JWT) for authentication. After log out JWT is not invalidated, which allows an attacker who has stolen or intercepted token to freely reuse it until expiration date (which is by default set to 2 hours, but can be changed).
This issue has been fixed in version 3.44.0 of Payload.
CVE-2025-4644
A Session Fixation vulnerability existed in Payload's SQLite adapter due to identifier reuse during account creation. A malicious attacker could create a new account, save its JSON Web Token (JWT), and then delete the account, which did not invalidate the JWT. As a result, the next newly created user would receive the same identifier, allowing the attacker to reuse the JWT to authenticate and perform actions as that user.
This issue has been fixed in version 3.44.0 of Payload.
CVE-2026-25574
Impact
A cross-collection Insecure Direct Object Reference (IDOR) vulnerability exists in the
payload-preferencesinternal collection. In multi-auth collection environments using Postgres or SQLite with default serial/auto-increment IDs, authenticated users from one auth collection can read and delete preferences belonging to users in different auth collections when their numeric IDs collide.Users are affected if ALL of these are true:
admins+customers)Not affected:
@payloadcms/db-mongodbadapteridType: 'uuid'Patches
This vulnerability has been patched in v3.74.0. Users should upgrade to v3.74.0 or later.
Workarounds
There is no workaround other than upgrading. Users with multiple auth collections using Postgres or SQLite with serial IDs should upgrade immediately.
Release Notes
payloadcms/payload (payload)
v3.74.0Compare Source
🚀 Features
Override Access in Document-Level Hooks - Access the
overrideAccessvalue inside collection and global hooks. Useful when hook logic needs to know whether access control was bypassed, such as when querying related documents up a hierarchy. #15421Extended strictDraftTypes to All Operations - When
strictDraftTypes: trueis enabled, TypeScript now enforces draft type safety across all Local API operations (not just queries). Thedraftoption is forbidden for collections/globals without drafts enabled, preventing silent runtime behavior where draft flags are ignored. #15292Custom UnpublishButton Component - Customize the
UnpublishButtonin collection and global configs, following the same pattern asPublishButtonandSaveButton. Previously hardcoded. #15400R2 Multipart Client Uploads (storage-r2) - Upload large files directly from the client using R2's multipart API. Files are split into smaller parts and uploaded separately, avoiding Cloudflare Worker memory limits. #14733
Popup Prevent Close Attribute (ui) - Add interactive elements inside popups without triggering close behavior by adding the
data-popup-prevent-closeattribute. #15407Popup Portal className (ui) - Customize the Popup component's portal container with the new
portalClassNameprop. #15406🐛 Bug Fixes
📚 Documentation
🧪 Tests
fieldsandselectsuites faster (#15434) (26ba779)📝 Templates
🔨 Build
⚙️ CI
🏡 Chores
🤝 Contributors
v3.73.0Compare Source
🚀 Features
busyTimeoutoption (#15317) (0c235c3)blocksAsJSON: true(#15257) (1b7b13d)Feature Details
🔥 Next.js 16 Support - Full compatibility with Next.js 16, including Turbopack HMR and build support. Requires Next.js >16.1.1-canary.35 or 16.2.0+. Templates will be updated after Next.js 16.2.0 is released. Support for cache components will follow in a future release #14456
WAL Mode Support (db-sqlite) - Enable SQLite Write-Ahead Logging for improved concurrent read/write performance. Configurable synchronous mode and journal size limit. #15278
Busy Timeout Option (db-sqlite) - Set maximum wait time in milliseconds when the database is locked, preventing
SQLITE_BUSYerrors in high-concurrency scenarios. #15317Predefined Migration for blocksAsJSON (drizzle) - Migrate existing projects to use
blocksAsJSON: truewith a single command. Automatically updates your Payload config and generates the required migration. #15257Request Handler in Live Preview Hooks (live-preview) - The
useLivePreviewhook (React and Vue) now accepts arequestHandlerargument, allowing customization of data fetching. Useful when your frontend proxies requests or uses external middleware. #15302Select API for MCP Tools (plugin-mcp) - Find, Create, and Update tools for Globals and Collections now support the
selectAPI, reducing token usage and aligning with Payload's existing query capabilities. #15301Native useEffectEvent (ui) - Uses React's native
useEffectEventwhen available (React 19.2.0+), falling back to the existing polyfill for older versions. #15304🐛 Bug Fixes
idwhen any other join is present in the query (#15290) (4f5a9c2)select(#15289) (db40d7b)📚 Documentation
📝 Templates
⚙️ CI
🏡 Chores
🤝 Contributors
v3.72.0Compare Source
🚀 Features
Localized Status (Experimental) - Each locale can now track and manage its own publication status independently. Publish or unpublish individual locales without affecting others, with locale-aware UI and version history. Requires enabling at both config and collection level. #14667
Depth Parameter Support (plugin-mcp) - MCP resource tools now support a
depthparameter (0-10) to control relationship population depth. Usedepth: 0for lightweight ID-only responses or higher values for fully populated relationship data. Significantly reduces token count when reading documents. #14931🐛 Bug Fixes
(
4f452ac))selectinfindByIDwithdraft: truemay return a wrong version (#14742) (49c9fa9)📚 Documentation
🧪 Tests
@payloadcms/storage-s3 clientUploadsintegration test suite (#15194) (4dce061)⚙️ CI
🏡 Chores
@payloadcms/ui(#15195) (54db43d)🤝 Contributors
v3.71.1Compare Source
🐛 Bug Fixes
🤝 Contributors
v3.71.0Compare Source
🚀 Features
Feature Details
Job Queue Concurrency Supersedes - Newer jobs can automatically delete older pending jobs with the same concurrency key. Enables "last queued wins" behavior for scenarios where only the latest state matters. #15179
Exclusive Concurrency Controls - Prevents race conditions when multiple jobs operate on the same resource. Jobs with the same concurrency key will not run in parallel. Requires
enableConcurrencyControl: true(will default totruein v4.0). #15177Job Cancellation from Handlers - Throw
JobCancelledErrorfrom within a task or workflow handler to stop the job without retrying. #15119Custom Status Component - Replace the Status section in document or global edit views without replacing the entire Edit view. Useful for custom locale publishing logic or additional status indicators. #11154
Bulk Operations Single Transaction (db-mongodb) - Handle database transaction limitations when processing large numbers of documents in bulk operations. Useful for DocumentDB and Cosmos DB which have cursor limitations within transactions. #14387
Additional IANA Timezones & Custom UTC Offsets - Support for additional IANA timezone names via
DateTimeFormatAPI validation, custom UTC offsets in±HH:mmformat, and the ability to override the timezone field configuration. #15120Override the timezone field:
Strict Draft Types (typescript) - Opt-in
strictDraftTypesflag for correct type safety when querying drafts. When enabled,findoperations withdraft: truewill correctly type required fields as optional. Will become default in v4.0. #14388Validation Error Context (drizzle) - Unique constraint
ValidationErrors now includedata.collectionordata.globalfor better error context when debugging. #15147Server-Side Cart Logic (plugin-ecommerce) - Cart logic moved to the server with new REST API endpoints. New hooks:
onLogin(merge guest cart with user cart),onLogout(clear session),clearSession,mergeCart, andrefreshCart. Support for custom cart item matchers and MongoDB-style$incoperator for quantity changes. #15142refreshCart Method (plugin-ecommerce) - Manually refresh cart state after direct modifications, allowing the UI to stay in sync without being blocked by
addItem's uniqueness validation. #14767Import Functionality (plugin-import-export) - Complete plugin refactor with new import functionality. Config is now per-collection with required⚠️ BREAKING CHANGE
collectionsarray. Supports disabling import/export per collection and custom collection overrides. #14782Draft Parameter for MCP Find (plugin-mcp) - Query draft/unpublished documents via the MCP plugin's find tool using the new
draftboolean parameter. #14924Globals Support (plugin-mcp) - New MCP tools to
findandupdateglobals. #15091Request Parameter in Nested Docs (plugin-nested-docs) -
reqparameter added togenerateURLandgenerateLabelfunctions for more flexibility (e.g., reading current locale). #14617Skip Sync (plugin-search) - Conditionally skip syncing documents to the search index based on locale, document properties, or other criteria. #14928
Automatic Type Inference (sdk) - The SDK automatically uses your generated types via module augmentation—no need to manually pass
GeneratedTypes. #15167Proper Error Handling (sdk) - The SDK now throws
PayloadSDKErroron failed API requests withstatus,errors,response, andmessageproperties. #15148Japanese Translations (plugin-redirects) - Localized admin UI strings for Japanese users. #15080
🐛 Bug Fixes
$lookupwhen a join field is not selected (#15149) (e39b1b5)existsoperator on fields that have an array value in the db (#15152) (0afe200)altuser-defined values. (#15097) (3290b04)⚡ Performance
🛠 Refactors
📚 Documentation
Configuration
📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.