Skip to main content

Boruta CVE-2026-65635

| EUVDEUVD-2026-51144 HIGH
Improper Isolation or Compartmentalization (CWE-653)
2026-07-30 EEF
8.3
CVSS 4.0 · Vendor: EEF
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Reach exposed dynamic registration endpoint
  2. Delivery
    Craft registration with admin attributes
  3. Exploit
    Boruta persists over-privileged client
  4. Execution
    Obtain tokens via chosen grant
  5. Impact
    Abuse scopes and disabled PKCE

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V15 - Secure Coding and Architecture Component isolation
Exploitation Conditions

Exploitation requires that the OpenID Connect dynamic client registration entry point (Boruta.Openid.register_client/3) is enabled and reachable without authentication - this is precisely the precondition encoded as AT:P in the CVSS vector. When that endpoint is exposed, no credentials or user interaction are needed (PR:N/UI:N): the attacker simply includes security-sensitive fields (supported grant types, authorized scopes, PKCE enforcement, public refresh/revoke, token TTLs, signing settings) in the registration payload and Boruta accepts them because there is no public/admin allowlist. What LIMITS exploitation: deployments that do not enable dynamic client registration, that gate it behind an initial access token or operator approval, or that restrict the endpoint to trusted networks are not exploitable; the flaw only affects Boruta 2.3.0 through 2.3.6.

Impact

The supplied CVSS 4.0 base score of 8.3 (High) is driven by AV:N/AC:L/PR:N/UI:N with AT:P - remote, unauthenticated, low-complexity access, but with a present attack requirement, which correctly captures that the dynamic client registration endpoint must be enabled and reachable; that requirement is the single most important limiting factor. Vulnerable-system integrity is High (VI:H) because the attacker controls security-relevant client policy, while confidentiality and availability are Low, with a minor subsequent-system impact (SC:L/SI:L). No EPSS score, KEV entry, or public POC was provided, so real-world exploitation probability cannot be quantified from the input and remains inferred rather than confirmed. Treat this as a genuine priority for any deployment that exposes unauthenticated dynamic client registration, but as low real-world risk where DCR is gated behind an initial access token or disabled - verify the registration configuration before assigning severity, since the score assumes the endpoint is open.

Exploit ScenarioDerived

An attacker reaches the exposed OIDC dynamic client registration endpoint of an application built on Boruta and submits a registration request that, alongside normal metadata, sets administrative attributes such as supported_grant_types: ["client_credentials"], broad authorized scopes, public_refresh_token/public_revoke, disabled PKCE, and long token lifetimes. Boruta persists these because no field-level allowlist separates public metadata from admin controls, yielding a self-provisioned, over-privileged client the attacker then uses to obtain and abuse tokens. No public POC is identified, but low complexity and unauthenticated access make exploitation straightforward wherever DCR is open.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jul 30, 2026

Privilege escalation via dynamic client registration in malach-it's Boruta OAuth 2.0/OpenID Connect provider library (Elixir) lets an unauthenticated registrant create OIDC clients that carry administrative security attributes. Because Boruta.Openid.register_client/3 forwards caller-supplied parameters straight into the administrative client-creation changeset with no public/admin allowlist, a self-registering client can dictate its own supported grant types, authorized scopes, PKCE enforcement, public refresh/revocation behavior, token lifetimes, and signing settings on versions 2.3.0 through 2.3.6. There is no public exploit identified at time of analysis and it is not in CISA KEV, but a vendor-released patch (2.3.7) is available.

RemediationAI

Vendor-released patch: upgrade Boruta to 2.3.7 or later, which replaces the shared create changeset with a dedicated registration_changeset that accepts only client name, redirect URIs, token endpoint auth metadata, JWKS metadata, and logo URI while forcing safe server-controlled defaults; the fix is in commits 82584c854a332482232fd25301ab12a835f9f643 and 95619a1beaff68fa766cca9b388e7c780d182525. If you cannot upgrade immediately, the most effective compensating control is to disable the OIDC dynamic client registration route or require an initial registration access token / operator approval before a client is persisted (trade-off: breaks legitimate self-service or automated client onboarding). As an interim step, restrict network access to the registration endpoint to trusted management networks and audit recently created clients for anomalous supported_grant_types, over-broad authorized scopes, disabled PKCE, extended token TTLs, or non-default signing settings, revoking any suspicious registrations (trade-off: manual review does not prevent new abuse and may miss subtle changes). See the advisory at https://github.com/malach-it/boruta_auth/security/advisories/GHSA-w869-fcf2-68vp.

Affected VersionsENISA

boruta 2.3.0 <2.3.7
boruta 85481b706636fe68a43d0b8d3275e2afc7f7fee1 <*

Affected Packages

euvd boruta fix: 2.3.7

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Boruta is an Elixir/Ecto-based OAuth 2.0 and OpenID Connect authorization server library used to build identity providers on the BEAM/Phoenix stack. The affected surface is the OIDC Dynamic Client Registration (RFC 7591) entry point exposed through Elixir.Boruta.Openid.register_client/3 and parse_registration_params/2 in lib/boruta/openid.ex. The root cause is CWE-653 (Improper Isolation or Compartmentalization): registration parameters were passed into the same Client.create_changeset/2 used for trusted administrative client creation via lib/boruta/adapters/ecto/clients.ex, making every persisted field mass-assignable. The vendor fix introduces a dedicated registration_changeset/2 in lib/boruta/adapters/ecto/schemas/client.ex that casts only a fixed @registration_attributes allowlist (name, redirect_uris, token_endpoint auth methods/alg, jwk, jwks_uri, logo_uri) and forces safe defaults for supported_grant_types (client_credentials, authorization_code), token TTLs, and the internal signatures adapter, restoring the separation between public metadata and operator-controlled security policy.

Know when Boruta gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (EEF) PRIMARY 8.3 HIGH
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:H/VA:L/SC:L/SI:L/SA:N
vuln.today AI 9.9 CRITICAL

Unauthenticated network attacker abuses an exposed DCR endpoint (AV:N/PR:N/UI:N); integrity of client security policy is High while confidentiality/availability are Low, and setting authz-server policy crosses a trust boundary (S:C).

3.1 AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:H/A:L
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:H/VA:L/SC:L/SI:L/SA:N

Primary rating from Vendor (EEF).

CVSS VectorVendor: EEF

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
High
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
Low
Subsequent system: Integrity
Low
Subsequent system: Availability
None

DescriptionCVE.org

Improper Isolation or Compartmentalization vulnerability in malach-it boruta (Elixir.Boruta.Openid module) allows attackers to register OpenID Connect clients with administrative privileges through the dynamic client registration entry point. Boruta.Openid.register_client/3 forwards caller-supplied registration parameters to the administrative client creation path without a public/admin field-level allowlist, so an unauthenticated registrant can set security-sensitive attributes including supported grant types, authorized scopes, PKCE enforcement, public refresh and revocation behavior, token lifetimes, and signing settings. The library does not distinguish between metadata a public registrant is allowed to set and administrative controls that should require operator approval.

This vulnerability is associated with program files lib/boruta/openid.ex and program routines 'Elixir.Boruta.Openid':register_client/3, 'Elixir.Boruta.Openid':parse_registration_params/2.

This issue affects boruta from 2.3.0 before 2.3.7.

Executive ViewAI

Why It Matters

Boruta OAuth 2.0/OpenID Connect provider library (versions 2.3.0-2.3.6) contains an unauthenticated privilege escalation vulnerability that allows attackers to register malicious OAuth clients with administrative capabilities, compromising identity and access control across dependent applications. Any organization using Boruta for identity management faces immediate risk to application authentication and authorization integrity. Vendor-released patch 2.3.7 is available.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.3%
Top 78% exploitable
Prevalence
Low
niche Elixir OAuth/OIDC library, limited enterprise footprint
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Partial

Priority Score

42
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +42
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy