/

CVE-2026-105855

Severity:

HIGH RISK

(7.1)

Broken Access Control (CWE-284) in Payload Password Field

CVE-2026-105855

Analyzed

Vulnerability type

Category:

Broken Access Control

CWE:

CWE-284

Impact:

Unauthorized Account Modification and Potential Account Takeover

Severity:

HIGH RISK

(7.1)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

Payload fails to enforce a field-level update restriction on the password field in authentication collections. An authenticated user or other actor who can reach the relevant update operation may be able to change account passwords, potentially enabling account takeover when authorization checks are incomplete.

Payload fails to enforce a field-level update restriction on the password field in authentication collections. An authenticated user or other actor who can reach the relevant update operation may be able to change account passwords, potentially enabling account takeover when authorization checks are incomplete.

Affected context

The issue occurs in Payload authentication collections where the password field is intended to be protected from unauthorized updates. It is most relevant when an update request can reach the authentication collection without a server-side field-level access check that independently enforces the password restriction.

The issue occurs in Payload authentication collections where the password field is intended to be protected from unauthorized updates. It is most relevant when an update request can reach the authentication collection without a server-side field-level access check that independently enforces the password restriction.

Exploit preconditions

  • Attack surface: Authentication collection update endpoints
  • Required access: An account or request context permitted to invoke a relevant update operation, depending on deployment configuration
  • Trigger point: Processing an update that includes the protected password field
  • Why exploitation is possible: The server does not consistently enforce the field-level access.update restriction before applying the password change
  • Attack surface: Authentication collection update endpoints
  • Required access: An account or request context permitted to invoke a relevant update operation, depending on deployment configuration
  • Trigger point: Processing an update that includes the protected password field
  • Why exploitation is possible: The server does not consistently enforce the field-level access.update restriction before applying the password change

Why this happens

The underlying defect is an authorization enforcement gap. A field-level restriction exists conceptually, but the update path does not reliably apply it to the password field before modifying stored authentication data. This maps to CWE-284: Improper Access Control, because a protected operation can proceed without the required authorization decision.

The underlying defect is an authorization enforcement gap. A field-level restriction exists conceptually, but the update path does not reliably apply it to the password field before modifying stored authentication data. This maps to CWE-284: Improper Access Control, because a protected operation can proceed without the required authorization decision.

Potential impact

  • An attacker may change another user's password
  • Accounts could be taken over if password changes affect privileged users
  • Unauthorized users may gain access to protected content or administrative functions
  • Existing sessions or recovery workflows could be disrupted
  • Organizations could experience data exposure, content tampering, or service abuse
  • An attacker may change another user's password
  • Accounts could be taken over if password changes affect privileged users
  • Unauthorized users may gain access to protected content or administrative functions
  • Existing sessions or recovery workflows could be disrupted
  • Organizations could experience data exposure, content tampering, or service abuse

General mitigation guidance

Mitigation centers on enforcing authorization at the server-side field and operation boundaries rather than relying on client behavior or collection-level assumptions.

Common defensive patterns include:

  • Apply explicit field-level authorization checks to password updates
  • Deny password modification by default unless the request context is authorized
  • Separate self-service password changes from administrative account management
  • Validate authorization before mutating authentication data
  • Avoid trusting client-supplied fields to determine which account attributes may change
  • Use least-privilege roles and narrowly scoped administrative permissions
  • Add regression tests covering unauthorized updates to protected authentication fields

Mitigation centers on enforcing authorization at the server-side field and operation boundaries rather than relying on client behavior or collection-level assumptions.

Common defensive patterns include:

  • Apply explicit field-level authorization checks to password updates
  • Deny password modification by default unless the request context is authorized
  • Separate self-service password changes from administrative account management
  • Validate authorization before mutating authentication data
  • Avoid trusting client-supplied fields to determine which account attributes may change
  • Use least-privilege roles and narrowly scoped administrative permissions
  • Add regression tests covering unauthorized updates to protected authentication fields

How teams detect issues like this

Organizations can look for this issue through:

  • Static analysis and code review of authentication collection update handlers
  • Review signals where password fields are accepted through generic update serializers
  • Tests that submit password changes under unauthorized user and role contexts
  • Authorization policy checks verifying that field restrictions are enforced server-side
  • Runtime audit monitoring for unexpected password changes, especially to privileged accounts
  • Automated security review tools configured to flag missing authorization checks around sensitive fields

Organizations can look for this issue through:

  • Static analysis and code review of authentication collection update handlers
  • Review signals where password fields are accepted through generic update serializers
  • Tests that submit password changes under unauthorized user and role contexts
  • Authorization policy checks verifying that field restrictions are enforced server-side
  • Runtime audit monitoring for unexpected password changes, especially to privileged accounts
  • Automated security review tools configured to flag missing authorization checks around sensitive fields

Sources

SourceLink
github.comgithub.com/payloadcms/payload/commit/9de9e7911e29d60870a1d5480412524c63d6411e
github.comgithub.com/payloadcms/payload/releases/tag/v3.90.0
github.comgithub.com/payloadcms/payload/security/advisories/GHSA-fx49-4h83-wjv9

Frequently asked

questions

It may be remotely exploitable when the affected update endpoint is exposed and a request can reach an authentication collection without adequate field-level authorization.

Typically, some valid access to an applicable update operation is required, but the exact requirement depends on the collection configuration, roles, and other access controls.

Enforce password-field authorization on the server before any update is applied, with denial as the default for unauthorized contexts.

Treat password and other authentication attributes as high-risk fields, use explicit allowlists for updateable fields, and maintain authorization regression tests for each supported role and request context.

It may be remotely exploitable when the affected update endpoint is exposed and a request can reach an authentication collection without adequate field-level authorization.

Typically, some valid access to an applicable update operation is required, but the exact requirement depends on the collection configuration, roles, and other access controls.

Enforce password-field authorization on the server before any update is applied, with denial as the default for unauthorized contexts.

Treat password and other authentication attributes as high-risk fields, use explicit allowlists for updateable fields, and maintain authorization regression tests for each supported role and request context.

Find out what's already
exploitable in your codebase.