GHSA-j477-6vpg-6c8x CVE-2026-1237 GO-2026-4388
Juju has broken CMR authorization
- Severity
- 0.0 / 10
- Low · CVSS 4.0
- Exploit chance (EPSS)
- 0.14%
- Chance of exploitation in the next 30 days. Higher than 3.50% of scored vulnerabilities.
- Known exploited
- No
- Not in CISA's catalog
- Weakness
- CWE-347 Improper Verification of Cryptographic Signature
- Fix
- None yet
- No fixed version published
Description
Impact
Cross-model Relation authorization is broken and has a potential security vulnerability. If the controller does not have the root key to verify the macaroon (or if the macaroon has expired), an unvalidated and therefore untrusted macaroon is used to extract declared caveats. Facts from these caveats are then blindly used to mint a new macaroon that becomes valid.
Scenario
A user knows that user X has access to offer Y. The user mints a macaroon stating that user X has access to offer Y and sends it to the controller in a request. The controller fails to verify the macaroon because it lacks the root key and mints a new macaroon requiring proof that user X has access to offer Y. Since user X does have access and the discharge endpoint does not require authentication, the controller returns the new macaroon. The user can then use the returned macaroon to consume the offer as user X.
Patches
N/A
Workarounds
A previous proposal via this PR addresses the issue but would break model migrations since macaroon root keys are not included in model descriptions. Additionally, root keys are not model-scoped, making it unclear which keys to transfer during migration.
Affected versions
Go
| Package | Vulnerable | Fixed in |
|---|---|---|
| github.com/juju/juju | <= 0.0.0-20260127110037-9b1a0e53a4a4 |
No fix yet |
| github.com/juju/juju | all versions |
No fix yet |
How to fix
No fixed version has been published yet. Until one is, remove or replace the package, or turn off or isolate the affected feature. This page updates when a fix ships.
Severity breakdown
CVSS 4.0 0.0
CVSS:4.0/AV:A/AC:H/AT:P/PR:L/UI:N/VC:L/VI:L/VA:L/SC:L/SI:L/SA:L
- Attack vector
- Adjacent
- Attack complexity
- High
- Attack requirements
- Present
- Privileges required
- Low
- User interaction
- None
- Confidentiality (vulnerable system)
- Low
- Integrity (vulnerable system)
- Low
- Availability (vulnerable system)
- Low
- Confidentiality (subsequent systems)
- Low
- Integrity (subsequent systems)
- Low
- Availability (subsequent systems)
- Low
Weakness
CWE-347: Improper Verification of Cryptographic Signature
The product does not verify, or incorrectly verifies, the cryptographic signature for data.
References
Advisories
Packages
Other links
Timeline
- Published
- Last updated by the source
- Latest EPSS score
Related advisories
| Advisory | Severity | Why it's related |
|---|---|---|
| GHSA-7m55-2hr4-pw78 Juju: In-Memory Token Store for Discharge Tokens Lacks Concurrency Safety and Persistence | Medium | Also affects github.com/juju/juju |
| GHSA-w5fq-8965-c969 Juju: CloudSpec method leaking cloud credentials | Medium | Also affects github.com/juju/juju |
| GHSA-245v-p8fj-vwm2 Juju has a resource poisoning vulnerability | Medium | Also affects github.com/juju/juju |
| GHSA-j6f6-jp3p-53mw Juju: Read All Controller Logs From Compromised Workload | Medium | Also affects github.com/juju/juju |
| GHSA-gvrj-cjch-728p Juju has Improper TLS Client/Server authentication and certificate verification on Database Cluster | Critical | Also affects github.com/juju/juju |
| GHSA-5cj2-rqqf-hx9p Juju affected by Confused Deputy IDOR attack via Predictable user specified ID in Juju Secrets | Medium | Also affects github.com/juju/juju |
| GHSA-439w-v2p7-pggc Juju has unauthorized access to out-of-scope Kubernetes secrets | High | Also affects github.com/juju/juju |
| GHSA-89x7-5m5m-mcmm Juju has unauthorized update of out-of-scope Vault secrets | Medium | Also affects github.com/juju/juju |
MergeHarbor checks every repository's dependencies against this database, ranks what matters by exploitability and reachability, routes it to the owning team and opens the fix pull request.
Check your repos with MergeHarbor