/

CVE-2026-111606

Severity:

HIGH RISK

(8.1)

Missing Authorization (CWE-862) in Huly Person Merge

CVE-2026-111606

Deferred

Vulnerability type

Category:

Missing Authorization

CWE:

CWE-862

Impact:

Account Takeover

Severity:

HIGH RISK

(8.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

Huly Platform contains a missing authorization check in the account RPC used to merge person records. Any authenticated user who knows two person UUIDs may merge records in a way that attaches attacker-controlled, unverified social identifiers to another person, potentially enabling account takeover through login or password recovery.

Huly Platform contains a missing authorization check in the account RPC used to merge person records. Any authenticated user who knows two person UUIDs may merge records in a way that attaches attacker-controlled, unverified social identifiers to another person, potentially enabling account takeover through login or password recovery.

Affected context

The vulnerability occurs in Huly Platform deployments through version 0.7.432 where the mergeSpecifiedPersons account RPC is accessible to authenticated users without sufficient ownership or administrative authorization checks. Risk is greatest when person UUIDs are discoverable or obtainable and the merged identity data is later trusted by authentication or account-recovery workflows.

The vulnerability occurs in Huly Platform deployments through version 0.7.432 where the mergeSpecifiedPersons account RPC is accessible to authenticated users without sufficient ownership or administrative authorization checks. Risk is greatest when person UUIDs are discoverable or obtainable and the merged identity data is later trusted by authentication or account-recovery workflows.

Exploit preconditions

  • Attack surface: The authenticated account-management RPC interface
  • Required access: A valid Huly user account and knowledge of two person UUIDs
  • Trigger point: Invocation of the person-merging operation
  • Why exploitation is possible: The server does not adequately verify that the caller is authorized to merge the specified person records, allowing identity data to be associated with a victim account
  • Attack surface: The authenticated account-management RPC interface
  • Required access: A valid Huly user account and knowledge of two person UUIDs
  • Trigger point: Invocation of the person-merging operation
  • Why exploitation is possible: The server does not adequately verify that the caller is authorized to merge the specified person records, allowing identity data to be associated with a victim account

Why this happens

The underlying bug is an authorization failure in a state-changing account operation. The application permits an authenticated caller to merge person records without enforcing object-level ownership, role-based permissions, or equivalent administrative authorization for both records. This maps to CWE-862: Missing Authorization, where access control is absent or insufficient for a protected action.

The underlying bug is an authorization failure in a state-changing account operation. The application permits an authenticated caller to merge person records without enforcing object-level ownership, role-based permissions, or equivalent administrative authorization for both records. This maps to CWE-862: Missing Authorization, where access control is absent or insufficient for a protected action.

Potential impact

  • An attacker may attach unverified social identifiers to another user's person record
  • Victim accounts could be taken over through supported login flows
  • Password-recovery processes could be redirected or abused
  • Account identity and profile data could be corrupted
  • Organizations may experience unauthorized access to user-associated resources
  • An attacker may attach unverified social identifiers to another user's person record
  • Victim accounts could be taken over through supported login flows
  • Password-recovery processes could be redirected or abused
  • Account identity and profile data could be corrupted
  • Organizations may experience unauthorized access to user-associated resources

General mitigation guidance

Mitigation generally focuses on enforcing authorization at the server-side operation boundary and reducing trust in identity-linking data.

Common defensive patterns include:

  • Require explicit administrative or ownership authorization before merging either person record
  • Verify authorization independently for the source and destination identities
  • Do not treat unverified social identifiers as sufficient authentication factors
  • Require strong reauthentication or user confirmation for identity changes and account merges
  • Apply object-level access-control policies consistently across RPC and API paths
  • Limit account-recovery actions to verified, independently bound recovery factors
  • Record and alert on unusual person merges and identity-provider changes

Mitigation generally focuses on enforcing authorization at the server-side operation boundary and reducing trust in identity-linking data.

Common defensive patterns include:

  • Require explicit administrative or ownership authorization before merging either person record
  • Verify authorization independently for the source and destination identities
  • Do not treat unverified social identifiers as sufficient authentication factors
  • Require strong reauthentication or user confirmation for identity changes and account merges
  • Apply object-level access-control policies consistently across RPC and API paths
  • Limit account-recovery actions to verified, independently bound recovery factors
  • Record and alert on unusual person merges and identity-provider changes

How teams detect issues like this

Organizations can look for this class of issue through:

  • Static analysis and code review checks for state-changing RPCs lacking authorization guards
  • Tests that attempt cross-user object operations with authenticated, non-privileged accounts
  • Review of identity-linking and account-recovery flows for reliance on unverified attributes
  • Audit-log monitoring for unexpected person merges, social-identity attachments, or recovery events
  • Policy enforcement requiring centralized object-level authorization for sensitive account operations
  • Automated security review tools that identify missing permission checks on mutation endpoints

Organizations can look for this class of issue through:

  • Static analysis and code review checks for state-changing RPCs lacking authorization guards
  • Tests that attempt cross-user object operations with authenticated, non-privileged accounts
  • Review of identity-linking and account-recovery flows for reliance on unverified attributes
  • Audit-log monitoring for unexpected person merges, social-identity attachments, or recovery events
  • Policy enforcement requiring centralized object-level authorization for sensitive account operations
  • Automated security review tools that identify missing permission checks on mutation endpoints

Sources

SourceLink
github.comgithub.com/hcengineering/platform/blob/v0.7.432/server/account/src/operations.ts#L2921-L2939
github.comgithub.com/hcengineering/platform/commit/afe11faec1b56f278c0882355a69b08cff1eebd9
github.comgithub.com/hcengineering/platform/issues/10914
hackmd.iohackmd.io/@hieuPenguinnn/huly-platform-merge-specified-persons-missing-authorization
vulncheck.comvulncheck.com/advisories/huly-platform-through-0.7.432-account-takeover-via-mergespecifiedpersons-rpc

Frequently asked

questions

It may be exploitable through the application's authenticated RPC interface when the service is reachable and the attacker can obtain the required person UUIDs.

The attacker generally needs a valid authenticated Huly account and identifiers for the relevant person records. Administrative privileges should not be necessary when authorization checks are missing.

Enforce server-side object-level authorization before allowing a merge, independently validate permissions for every affected record, and require strong verification for identity or recovery-factor changes.

Maintain centralized authorization policies, test cross-tenant and cross-user mutation attempts, treat unverified identity attributes as untrusted, and monitor sensitive account-management events.

It may be exploitable through the application's authenticated RPC interface when the service is reachable and the attacker can obtain the required person UUIDs.

The attacker generally needs a valid authenticated Huly account and identifiers for the relevant person records. Administrative privileges should not be necessary when authorization checks are missing.

Enforce server-side object-level authorization before allowing a merge, independently validate permissions for every affected record, and require strong verification for identity or recovery-factor changes.

Maintain centralized authorization policies, test cross-tenant and cross-user mutation attempts, treat unverified identity attributes as untrusted, and monitor sensitive account-management events.

Find out what's already
exploitable in your codebase.