GHSA-p279-2cqp-84jg

Suggest an improvement
Source
https://github.com/advisories/GHSA-p279-2cqp-84jg
Import Source
https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/07/GHSA-p279-2cqp-84jg/GHSA-p279-2cqp-84jg.json
JSON Data
https://api.osv.dev/v1/vulns/GHSA-p279-2cqp-84jg
Aliases
Published
2026-07-24T21:46:39Z
Modified
2026-08-13T18:10:56Z
Severity
  • 9.6 (Critical) CVSS_V3 - CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N CVSS Calculator
Summary
OpenDJ SASL PLAIN authzid bypassing the proxy ACI scope check
Details

Summary

When a SASL PLAIN bind supplies an authorization identity (authzid) that resolves to a different user, PlainSASLMechanismHandler verified only the PROXIED_AUTH privilege and never evaluated the "proxy" access-control right (the mayProxy ACI scope check). As a result, any account holding the proxied-auth privilege could assume any resolvable non-root identity without being granted a proxy ACI for that target.

This diverges from every other proxy path in OpenDJ — the proxied-authorization controls (RFC 4370) and the DIGEST-MD5 / GSSAPI authzid handlers all require both the privilege and the mayProxy scope grant.

Impact

Privilege escalation / authorization bypass: a holder of proxied-auth can act as arbitrary directory users beyond the scope intended by the deployment's proxy ACIs, defeating the ACI-based restriction on which identities may be impersonated. Root/Directory Manager is not assumable this way.

Fix

Enforce the mayProxy scope check on the SASL PLAIN authzid path (both dn: and u:/bare forms), sharing one hasProxyAccess helper with the DIGEST-MD5/GSSAPI path. Denial returns INVALID_CREDENTIALS (49) before password verification — matching DIGEST-MD5/GSSAPI — so an unauthenticated client cannot distinguish a missing privilege from a missing ACI grant.

Workaround

Restrict or revoke the proxied-auth privilege until upgraded.

Database specific
{
    "cwe_ids":  [
        "CWE-285",
        "CWE-639"
    ],
    "github_reviewed":  true,
    "github_reviewed_at":  "2026-07-24T21:46:39Z",
    "nvd_published_at":  null,
    "severity":  "CRITICAL"
}
References

Affected packages

Maven / org.openidentityplatform.opendj:opendj-server-legacy

Package

Name
org.openidentityplatform.opendj:opendj-server-legacy
View open source insights on deps.dev
Purl
pkg:maven/org.openidentityplatform.opendj/opendj-server-legacy

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0 Unknown introduced version / All previous versions are affected
Fixed
5.1.2

Affected versions

4.*
4.4.7
4.4.8
4.4.9
4.4.10
4.4.11
4.4.12
4.4.13
4.4.14
4.4.15
4.5.0
4.5.1
4.5.2
4.5.3
4.5.4
4.5.5
4.5.6
4.5.7
4.5.8
4.5.9
4.6.1
4.6.2
4.6.3
4.6.4
4.6.5
4.7.0
4.8.0
4.8.1
4.8.2
4.9.0
4.9.1
4.9.2
4.9.3
4.9.4
4.10.0
4.10.1
4.10.2
5.*
5.0.1
5.0.2
5.0.3
5.0.4
5.1.0
5.1.1

Database specific

last_known_affected_version_range
"<= 5.1.1"
source
"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/07/GHSA-p279-2cqp-84jg/GHSA-p279-2cqp-84jg.json"