EGI SVG Advisories

Advisory-SVG-CVE-2018-10931

Title:   EGI SVG 'ALERT' [TLP:WHITE]  'CRITICAL' risk cobbler vulnerability:
         CobblerXMLRPCInterface exports all its methods over XMLRPC
         [EGI-SVG-CVE-2018-10931]

Date:    2018-08-17
Updated:

Affected software and risk
==========================

CRITICAL risk vulnerability in Cobbler

Package : Cobbler
CVE ID  : CVE-2018-10931
Bug ID  :

An API-exposure flaw was found in cobbler, where it exported
CobblerXMLRPCInterface private functions over XMLRPC.
A remote, unauthenticated attacker could use this flaw to gain important
privileges within cobbler, as well as upload files to an arbitrary location in
the daemon context.

Actions required/recommended
============================

Any site using cobbler should carefully consider their provisioning workflow to
check if their cobbler server is accessible by unauthorised users. For the Grid
this includes, in particular, users on Worker Nodes (WN) and the User Interface
(UI). Sites should take steps accordingly to mitigate against this
vulnerability, for example by looking at the example below.

More information
================

This alert is specifically for sites that use cobbler as part of their
provisioning workflow.

This is not yet fixed in the standalone cobbler package available as of
16/8/2018 (2.8.3).
There is an update for RedHat Satellite that addresses this issue [R 4]

The exploit shown in [R 3] has been tested on a fresh CentOS 7 install of
cobbler of the latest version, 2.8.3, and has been found to work.

Note that there is a cobbler setting intended to deny access to the XMLRPC
interface for all users:

[authentication]
module = authn_denyall

in /etc/cobbler/modules.conf. However, this does *not* prevent the exploit from
working.

For more information see [R 1] to [R 4]

Mitigation
==========

One possible option for mitigation is the following:

1. Restrict the proxy of the XMLRPC interface by adding, for example

<Proxy "*">
 Require ip 127.0.0.1
</Proxy>

to /etc/httpd/conf.d/cobbler.conf after the line "ProxyPassReverse /cobbler_api
http://127.0.0.1:25151/"

*Note* for older versions of apache (v2.2, for example), the format of the
required change will be different; try instead:

<Proxy "*">
  Deny from all
  Allow from ip 127.0.0.1
</Proxy>


2. Set `client_use_localhost = 1` in `/etc/cobbler/settings`

This restricts the proxy to only serve to the cobbler localhost. Note that the
internal cobbler tools use the XMLRPC interface; "client_use_localhost = 1"
forces these tools to use localhost to access the API.
On initial investigation, the kickstart does not appear to use the /cobbler_api
endpoint, so this change is not believed to affect normal operations.

3. Restart both cobblerd and httpd

TLP and URL
===========

** WHITE information - Unlimited distribution
  - see https://go.egi.eu/tlp for distribution restrictions **

URL:   https://advisories.egi.eu/Advisory-SVG-CVE-2018-10931

Minor updates may be made without re-distribution to the sites


Comments
========

Comments or questions should be sent to svg-rat  at  mailman.egi.eu

If you find or become aware of another vulnerability which is relevant to EGI
you may report it by e-mail to report-vulnerability at egi.eu

the EGI Software Vulnerability Group will take a look according to the
procedure defined in [R 5]

Note that this has been updated and the latest version approved by the
Operations Management Board in November 2017


References
==========

[R 1] https://nvd.nist.gov/vuln/detail/CVE-2018-10931

[R 2] https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2018-10931

[R 3] https://github.com/cobbler/cobbler/issues/1916

[R 4] https://access.redhat.com/security/cve/cve-2018-10931

[R 5] https://documents.egi.eu/public/ShowDocument?docid=3145

Credit
======

SVG was alerted to this vulnerability by David Crooks.

Investigation and mitigation carried out by David Crooks, Gareth Roy and Gordon
Stewart.


Timeline
========

Yyyy-mm-dd  [EGI-SVG-2018-CVE-2018-10931]

2018-08-14 SVG alerted to this issue by David Crooks
2018-08-15 Acknowledgement from the EGI SVG to the reporter
2018-08-15 Investigation of vulnerability and relevance to EGI carried out
2018-08-15 EGI SVG Risk Assessment completed
2018-08-17 Alert sent to sites


Context
=======

This advisory has been prepared as part of the effort to fulfil EGI SVG's
purpose "To minimize the risk to the EGI infrastructure arising from software
vulnerabilities"

The risk is that assessed by the group, according to the EGI SVG issue handling
procedure [R 5] in the context of how the software is used in the EGI
infrastructure. It is the opinion of the group, we do not guarantee it to be
correct. The risk may also be higher or lower in other deployments depending on
how the software is used.

Others may re-use this information provided they:-

1) Respect the provided TLP classification

2) Credit the EGI https://www.egi.eu/ Software Vulnerability Group



On behalf of the EGI SVG,