Skip to main content

Canonical Juju CVE-2026-93336

| EUVDEUVD-2026-108266 HIGH
Missing Authorization (CWE-862)
2026-10-22 canonical GHSA-43hf-rrv4-hhf5
7.1
CVSS 4.0 · Vendor: canonical
View

Attack ChainAIDerived

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

  1. Access
    Authenticate to controller with login-only permission or agent token
  2. Exploit
    Craft download request naming arbitrary unit
  3. Execution
    Missing authorization check is bypassed
  4. Impact
    Read charm resource and container-registry credentials

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

The attacker must be a principal already authenticated to the Juju controller, but the required privilege is minimal: either a unit agent, or a human user holding only 'login' permission with no access to the target model (confirmed by the PR's TestUserWithoutModelAccessRefused test, which the fix now blocks). No special or non-default configuration is needed - this affects default deployments of Juju 4.0 through 4.0.15, and the attacker simply issues a request to the unit resources download route naming an arbitrary unit in any model. There is no user interaction requirement. The sole limiting factor is possession of a valid controller login-level credential or agent identity; a completely unauthenticated outsider cannot trigger it.

Impact

The CVSS 4.0 base score of 7.1 (High) is driven by a network-reachable (AV:N), low-complexity (AC:L) flaw needing no user interaction (UI:N) and only low privilege (PR:L), with high confidentiality impact (VC:H) and no scope change (SC/SI/SA:N). The decisive mitigating signal is PR:L: exploitation is NOT unauthenticated - the attacker must already be a controller-authenticated principal, but that bar is very low because even a user holding only 'login' permission (no model access) or any unit agent qualifies, as confirmed by the vendor advisory and the PR's authorization tests. No EPSS score was supplied, so statistical exploitation likelihood cannot be quantified; the CVE is not in CISA KEV, so there is no confirmed active exploitation. No weaponized public exploit is referenced - only the vendor advisory (GHSA-fp7x-6hq5-3c3w) and the fix PR (#23360), though that PR's diff and new tests effectively disclose the exact request mechanism (GET on the unit resources download route naming another unit). The high confidentiality impact is material because leaked artifacts include container-registry credentials, which can be reused to pull or push images outside Juju, so the practical blast radius exceeds pure read-only disclosure. There is no signal conflict here: all signals (High CVSS, vendor-reported, patch available, vuln.today 'this_week' priority) point to a genuine, prioritize-promptly issue rather than a high-score/low-real-risk finding, tempered only by the authentication prerequisite and absence of confirmed in-the-wild use.

Exploit ScenarioDerived

An attacker who holds any controller credential - a compromised unit agent token, or a low-privilege user account with only login permission - sends a crafted GET request to the unit resources download route naming a unit belonging to another application or model. Because the route performs no cross-check tying the request to the authenticated entity, it returns that application's charm resource, including embedded container-registry credentials. No public weaponized exploit is referenced, but the fix PR (#23360) and its new authorization tests disclose the exact request path and parameters.

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

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

Alert me

AnalysisAIv1 – Oct 22, 2026

Canonical Juju 4.0 through 4.0.15 leaves the model unit-resources download route without an authorization check, so any principal already authenticated to the controller - a unit agent, or a human user holding only 'login' permission with no access to the target model - can request an arbitrary unit in an arbitrary model and read that application's charm resources, including container-registry credentials. The fix in Juju 4.0.16 binds the unit named in the request URL to the authenticated identity, refusing cross-unit and cross-model access. No public exploit code was identified at time of analysis, and the flaw requires a valid controller credential, though one at the lowest privilege tier and against default deployments.

RemediationAI

Upgrade the Juju controller to 4.0.16, which is the first release containing the authorization check; the vendor-released patch is delivered through PR https://github.com/juju/juju/pull/23360 and is described in advisory https://github.com/juju/juju/security/advisories/GHSA-fp7x-6hq5-3c3w. The fix restricts the unit resources download route to unit and application tag kinds and verifies that the unit named in the URL belongs to the authenticated agent, so requests for peer units or for units in other models are rejected with a permission error. The available sources do not describe a configuration workaround - the missing authorization is in the API server route table, not in a toggleable feature - so applying the patched version is the complete remedy; until the controller is upgraded, exposure is bounded only by how many controller login-level accounts and unit agent credentials exist.

Affected VersionsENISA

Juju 4.0 <4.0.16

Affected Packages

euvd juju fix: 4.0.16

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

Juju is Canonical's Go-based model-driven orchestration system, and its controller exposes an HTTP API server whose routes are declared in an endpoint table (apiserver/apiserver.go). Each endpoint carries an authorizer drawn from the httpcontext package; the unit resources download route was registered with httpcontext.TODOAuthorizer, an explicit no-op placeholder, meaning authentication succeeded but no authorization decision was made before the resource opener resolved whatever unit tag appeared in the request URL. Because unit charm resources include OCI/registry credentials distributed with the charm, the missing check turns a low-privilege credential into a cross-model read of sensitive deployment secrets. This is CWE-862 (Missing Authorization): the route performed authentication via authenticatedTagFromRequest but never compared the resulting tag against the unit being requested. The upstream fix (PR #23360) replaces the TODO authorizer with a tagKindAuthorizer restricted to unit and application tag kinds and adds checkUnitResourceAccess, which permits a unit agent only for its own unit and an application agent only for units of its own application, returning ErrPerm otherwise. Accompanying tests cover the unit agent downloading its own resource, refusal for a peer unit, and refusal for a login-only user without model access.

Know when Juju 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 (canonical) PRIMARY 7.1 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N
vuln.today AI 6.5 MEDIUM

Network route reachable by any low-privilege controller principal gives AV:N/AC:L/PR:L/UI:N; direct impact is disclosure of resources and credentials, so C:H with I:N/A:N (any integrity effect is downstream credential misuse).

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

Primary rating from Vendor (canonical).

CVSS VectorVendor: canonical

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

DescriptionCVE.org

Missing authorization in the unit resources download route in Canonical Juju 4.0 through 4.0.15 allows a controller-authenticated principal (a unit agent, or a user with only login permission) to read any application's charm resource in any model,  including container-registry credentials, via a crafted request naming an arbitrary unit.

Technical POC Analysis

CWE-862 Missing Authorization.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

CVE-2026-93336 is a high-severity authorization bypass in Canonical Juju 4.0-4.0.15 affecting organizations using Juju for cloud orchestration. Any authenticated user-even with minimal permissions-can exploit the flaw to access sensitive credentials across models, potentially compromising container registries and downstream infrastructure. Leadership should prioritize remediation due to the risk of credential theft and supply chain impact.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 89% exploitable
Prevalence
Medium
Canonical's orchestration tool, common in OpenStack/Ubuntu clouds but not everywhere
Social Media
1
Sightings
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.2%
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· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

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

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

More in Juju

View all
CVE-2017-9232 CRITICAL POC
9.8 May 28

Juju before 1.25.12, 2.0.x before 2.0.4, and 2.1.x before 2.1.3 uses a UNIX domain socket without setting appropriate pe

CVE-2025-0928 HIGH POC
8.8 Jul 08

In Juju versions prior to 3.6.8 and 2.9.52, any authenticated controller user was allowed to upload arbitrary agent bina

CVE-2025-53513 HIGH POC
8.8 Jul 08

The /charms endpoint on a Juju controller lacked sufficient authorization checks, allowing any user with an account on t

CVE-2024-7558 HIGH POC
8.0 Oct 02

JUJU_CONTEXT_ID is a predictable authentication secret. Rated high severity (CVSS 8.0), this vulnerability is low attack

CVE-2025-53512 MEDIUM POC
6.5 Jul 08

The /log endpoint on a Juju controller lacked sufficient authorization checks, allowing unauthorized users to access deb

CVE-2026-4370 CRITICAL
10.0 Apr 01

Unauthenticated remote database cluster compromise in Canonical Juju (versions 3.2.0-3.6.19 and 4.0-4.0.4) allows comple

CVE-2026-32693 HIGH
8.8 Mar 18

An authorization bypass vulnerability in Canonical's Juju versions 3.0.0 through 3.6.18 allows authenticated users with

CVE-2024-6984 LOW POC
3.8 Jul 29

An issue was discovered in Juju that resulted in the leak of the sensitive context ID, which allows a local unprivileged

CVE-2026-32692 HIGH
7.6 Mar 18

An authorization bypass vulnerability exists in the Vault secrets back-end implementation of Canonical's Juju orchestrat

CVE-2025-68153 HIGH
7.1 Apr 03

Unauthorized resource modification in Juju application orchestration engine allows any authenticated controller user to

CVE-2025-68152 MEDIUM
6.9 Apr 03

Juju application orchestration engine versions 2.9 to 2.9.55 and 3.6 to 3.6.18 allow a compromised workload machine to r

CVE-2026-32694 MEDIUM
6.6 Mar 18

A predictable secret identifier (XID) vulnerability in Juju versions 3.0.0 through 3.6.18 allows a malicious grantee to

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