/

CVE-2026-97818

Severity:

HIGH RISK

(8.6)

Incorrect Authorization (CWE-863) in phpIPAM User API

CVE-2026-97818

Deferred

Vulnerability type

Category:

Incorrect Authorization

CWE:

CWE-863

Impact:

Unauthorized access or modification of user resources

Severity:

HIGH RISK

(8.6)

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

phpIPAM contains an incorrect authorization check in the user API when requests use the identifiers id=="admins" or id=="all".

Depending on the endpoint and account permissions, an attacker may access or modify user-related resources that should be restricted.

Affected context

The vulnerability occurs in phpIPAM deployments using the user API controller, specifically where requests handle the admins or all identifiers. Risk depends on which API operations are exposed, how authentication and authorization are configured, and whether an attacker can submit requests to the affected endpoints.

Exploit preconditions

  • Attack surface: phpIPAM user API endpoints handled by api/controllers/User.php
  • Required access: The ability to reach the relevant API endpoint; authentication requirements depend on deployment configuration
  • Trigger point: A request referencing id=="admins" or id=="all"
  • Why exploitation is possible: Authorization logic does not correctly restrict access to these identifier values before the requested user operation is performed

Why this happens

The underlying bug is an authorization decision that does not correctly enforce permissions for special identifier values representing administrator or aggregate user selections.

When authorization checks are incomplete, incorrectly scoped, or evaluated differently for these values, a caller may reach operations outside their permitted scope. This behavior maps to CWE-863: Incorrect Authorization, where access-control logic fails to enforce the intended policy.

Potential impact

  • Unauthorized disclosure of user or administrator account information may occur
  • Unauthorized user-management actions could be performed
  • Administrative account metadata may be exposed
  • Account integrity or application access controls could be affected
  • The issue could support follow-on attacks against phpIPAM or connected systems

General mitigation guidance

Mitigation generally focuses on enforcing authorization consistently for every identifier form, including special values such as aggregate or role-based selectors.

Common defensive patterns include:

  • Applying server-side, deny-by-default authorization checks before each user operation
  • Treating special identifiers as privileged resources rather than bypassing normal access checks
  • Deriving authorization decisions from the authenticated principal and explicit resource ownership
  • Avoiding reliance on client-supplied identifiers or UI-level restrictions
  • Limiting API accounts and service identities to the minimum required privileges
  • Recording and reviewing sensitive user-management operations

How teams detect issues like this

Organizations can look for this issue through:

  • Static analysis and code review of authorization branches handling special identifiers
  • Tests that compare permissions for individual, aggregate, and role-based resource selectors
  • API security testing using accounts with distinct privilege levels
  • Monitoring requests involving id=admins or id=all, especially when issued by non-administrative identities
  • Policy checks requiring authorization to occur before database access or state-changing operations

Automated application-security testing and authorization-focused regression suites can help identify inconsistent access-control behavior.

Sources

SourceLink
github.comgithub.com/phpipam/phpipam/blob/e8010751d491e485acefa5787fb0e518eb948771/api/controllers/User.php#L143-L146
github.comgithub.com/phpipam/phpipam/releases/tag/v1.8.3

Frequently asked

questions

It may be exploitable through the phpIPAM API when the affected endpoint is network-accessible and the requester can satisfy any required authentication or session controls.

Not necessarily. The concern is that authorization may be incorrectly enforced for the admins and all identifiers, so the required privilege depends on the endpoint and deployment configuration.

Enforce explicit, deny-by-default authorization for every user API operation and apply the same checks to special identifiers and aggregate selections.

Use centralized authorization policy checks, test requests across multiple privilege levels, avoid trusting client-supplied resource identifiers, and monitor sensitive account-management actions.

Find out what's already
exploitable in your codebase.