Impact: Important Public Date: 2019-04-09 CWE: CWE-284 Bugzilla: 1684275: CVE-2019-3845 qpid-dispatch-router: QMF methods exposed to goferd via qdrouterd A lack of access control was found in the message queues maintained by Satellite's QPID broker and used by katello-agent. A malicious user authenticated to a host registered to Satellite (or Capsule) can use this flaw to access QMF methods to any host also registered to Satellite (or Capsule) and execute privileged commands.
Find out more about CVE-2019-3845 from the MITRE CVE dictionary dictionary and NIST NVD.
NOTE: The following CVSS v3 metrics and score provided are preliminary and subject to review.
CVSS3 Base Score | 8 |
---|---|
CVSS3 Base Metrics | CVSS:3.0/AV:A/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
Attack Vector | Adjacent Network |
Attack Complexity | Low |
Privileges Required | Low |
User Interaction | None |
Scope | Unchanged |
Confidentiality | High |
Integrity Impact | High |
Availability Impact | High |
Platform | Package | State |
---|---|---|
Red Hat Satellite 6 | qpid-dispatch-router | Affected |
On Satellite Server follow the instructions below:
* Modify /etc/qpid/qpidd.conf to add this line:
acl-file=qpid_acls.acl
* Create a new file: /var/lib/qpidd/.qpidd/qpid_acls.acl with content:
acl allow katello_agent@QPID create queue
acl allow katello_agent@QPID consume queue
acl allow katello_agent@QPID access exchange
acl allow katello_agent@QPID access queue
acl allow katello_agent@QPID publish exchange routingkey=pulp.task
acl allow katello_agent@QPID publish exchange name=qmf.default.direct
acl allow katello_agent@QPID access method name=create
acl deny-log katello_agent@QPID access method name=*
acl deny-log katello_agent@QPID all all
# allow anything else
acl allow all all
* As root, execute the command:
# systemctl restart qpidd
* In /etc/qpid-dispatch/qdrouterd.conf modify the connector:
connector {
name: broker
host: localhost
port: 5671
sasl-mechanisms: PLAIN
sasl-username: katello_agent
sasl-password: katello_agent
role: route-container
ssl-profile: client
idle-timeout-seconds: 0
}
* As root, execute the command:
# systemctl restart qdrouterd
These ACLs will prevent clients to redirect or move messages to various queues which is the nature of the CVE.
All other behavior will be unchanged (acl allow all all) which is the current baseline.