CVE-2020-11980
Official description Straight from the sourceThe vendor's or NVD's own wording, published unedited. Authoritative, but often terse — it says what broke, rarely what to do.
NVD · uneditedIn Karaf, JMX authentication takes place using JAAS and authorization takes place using ACL files. By default, only an "admin" can actually invoke on an MBean. However there is a vulnerability there for someone who is not an admin, but has a "viewer" role. In the 'etc/jmx.acl.cfg', such as role can call get*. It's possible to authenticate as a viewer role + invokes on the MLet getMBeansFromURL method, which goes off to a remote server to fetch the desired MBean, which is then registered in Karaf. At this point the attack fails as "viewer" doesn't have the permission to invoke on the MBean. Still, it could act as a SSRF style attack and also it essentially allows a "viewer" role to pollute the MBean registry, which is a kind of privilege escalation. The vulnerability is low as it's possible to add a ACL to limit access. Users should update to Apache Karaf 4.2.9 or newer.
Technical summary Written by usOur analysis, written from the advisory, the CVSS vector and the affected-version data. It adds context the advisory leaves out, and never invents facts that are not in the source.
dbcve analysis · high confidenceIn Apache Karaf, JMX authentication uses JAAS while authorization uses ACL files. A vulnerability exists where a non-admin 'viewer' role can invoke get* methods in 'etc/jmx.acl.cfg', allowing them to authenticate as viewer and invoke the MLet.getMBeansFromURL method. This method fetches and registers MBeans from remote servers, enabling SSRF-style attacks and MBean registry pollution despite the attacker lacking permission to actually invoke on the fetched MBeans.
Verify against the referenced sources before acting — the references below are authoritative for this CVE, this summary is not.
Affected products & versions What the vendor confirmedThe version ranges the vendor confirmed as vulnerable. If your version sits inside a range here, treat yourself as exposed until you have upgraded.
NVD · CPE data< 4.2.9CVSS breakdown How the score is builtThe industry scoring standard. It rates how the flaw is reached, what it takes to exploit, and what an attacker gains — the score is derived from those, not the other way round.
From the vector- Attack vector
- Network
- Complexity
- Low
- Privileges
- Low
- User interaction
- None
- Scope
- Unchanged
- Confidentiality
- Low
- Integrity
- Low
- Availability
- Low
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L
Am I affected? How to checkSteps we derive from the advisory and the affected-version data, so you can decide whether this CVE reaches your setup. They are a guide, not a scan — your own configuration is the authority.
dbcve checksWork through these to decide whether this CVE applies to you.
-
Identify Apache Karaf versionRun 'karaf --version' or check the 'lib/core/karaf.jar' file version, or inspect the 'system/org/apache/karaf/org.apache.karaf.main/VERSION' file under the Karaf home directoryAffected if The installed version is lower than 4.2.9 (e.g., 4.2.8, 4.2.7, etc.)
-
Locate JMX ACL configuration fileNavigate to the Karaf etc directory and locate the file named 'jmx.acl.cfg' - typically found in <karaf_home>/etc/jmx.acl.cfgAffected if The file exists and contains ACL entries for the viewer role
-
Inspect viewer role permissions in jmx.acl.cfgOpen etc/jmx.acl.cfg and search for entries that grant the 'viewer' role permission to invoke 'get*' methods, particularly look for entries containing 'viewer' and wildcards like 'get*' or 'MLet'Affected if The viewer role is granted invoke permission on get* methods, or specifically on the MLet MBean
-
Check for MLet MBean accessWithin etc/jmx.acl.cfg, look for an ACL entry for 'javax.management.loading.MLet' or 'MLet' that grants viewer role invoke permissionAffected if An ACL entry exists that allows the viewer role to invoke methods on the MLet MBean, especially getMBeansFromURL
-
Verify JMX remote access is enabledCheck whether JMX remoting is enabled by inspecting 'etc/org.apache.karaf.management.cfg' or by reviewing network listeners - look for 'jmx.rmi.host', 'jmx.rmi.port', or similar JMX-related configuration entriesAffected if JMX is accessible remotely (not bound to localhost only) and the vulnerable ACL configuration is in place
A user is affected if their Apache Karaf version is below 4.2.9 AND the etc/jmx.acl.cfg file grants the viewer role permission to invoke get* methods on the MLet MBean, combined with JMX being network-accessible.
Generated from the published advisory. Verify against your own configuration.
Remediation Closing itWhat it takes to close this. Where a vendor fix exists we point at it; where none exists we say so plainly, and can build one. Effort estimates are scoped from the advisory, not from your codebase.
From vendor data4.2.9
Update to Apache Karaf 4.2.9 or newer, or add restrictive ACL entries in 'etc/jmx.acl.cfg' to limit viewer role access to get* methods.
- Consultation1.0 h
- Implementation1.0 h
- Testing2.0 h
- Review / QA1.0 h
An estimate, not a bill — we confirm scope with you before any work starts. Need it this week? Rush from $1,376.
Scan for this in your stack
Free · runs locallyCheck whether your project pulls in CVE-2020-11980 — or any other known-vulnerable package — straight from your lock files. Free and open source; it runs locally and uploads nothing.
References Go to the primary sourcePrimary sources — vendor advisories, patches and trackers. Where our summary and a reference disagree, the reference wins.
Primary sourcesPractitioner notes
ContributedPeer-ranked notes from engineers who’ve handled CVE-2020-11980 in production — separate from our analysis above.
The advisory tells you what broke. It rarely tells you what actually worked. If you’ve dealt with this one, that detail is what the next engineer is searching for.
- The version that genuinely resolved it — not the one the vendor claimed
- A config change or rule that shut the vector down
- A gotcha in the upgrade path that cost you an afternoon
No notes yet
Be the first to add a field note for this CVE — a mitigation you’ve verified, a version caveat, or a link to a working fix. Sign in above to contribute.
A place for practitioners to share what actually worked: a mitigation you’ve tested, a configuration change, a version- or environment-specific caveat, or a link to a verified patch. The most useful notes rise to the top as peers upvote them, so the signal stays high.
- Verified mitigations, workarounds, and config changes
- Version or environment caveats, and links to real fixes
- No weaponised exploit code, or anything meant to cause harm
- No spam, self-promotion, credentials, or personal data