CVE-2019-3845

Related Vulnerabilities: CVE-2019-3845  

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.

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.

CVSS v3 metrics

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

Affected Packages State

Platform Package State
Red Hat Satellite 6 qpid-dispatch-router Affected

Acknowledgements

This issue was discovered by Pavel Moravec (Red Hat).

Mitigation

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.