Skip to content

XSS vulnerabilities in the interface

High
amousset published GHSA-j28g-r977-74hj Jul 11, 2023

Package

rudder-webapp (rudder)

Affected versions

< 6.2.16
>= 7.0.0, < 7.0.5
>= 7.1.0, < 7.1.3

Patched versions

6.2.16
7.0.5
7.1.3

Description

Impact

It is possible to inject scripts from accepted or pending nodes, through remote run output, and some inventory data (namely the OS name and installed software list).

Other script injections are also possible with content written by Rudder users (rules tags), potentially allowing privilege escalation.

Patches

All Rudder versions are affected. The fixes are published on 2022/07/26 in:

  • 6.2.16
  • 7.0.5
  • 7.1.3

Workarounds

Warning: This will prevent receiving any inventories from the accepted and pending nodes, so it disables inventories updates, and nodes acceptations. It will also prevent remote run of the agents triggered from the Rudder server

Add:

# To disable inventory reception
<Location /inventory-updates>
  Require all denied
</Location>
<Location /inventories>
  Require all denied
</Location>
# To disable remote-run, and prevent users from trigerring it
<Location /rudder/relay-api/remote-run>
  Require all denied
</Location>

At the end of /opt/rudder/etc/rudder-apache-relay-ssl.conf on your Rudder server, then reload the apache2 or httpd service. This will be automatically overwritten at the next server update (which will contain the fix), there will be nothing to do.

To check the change is in place, you can try to trigger an agent run in the Compliance details tab of a node. You should get a message like:

Error occured when contacting internal remote-run API to apply classes on Node 'NODEID': (HTTP code 403)

References

Severity

High

CVSS overall score

This score calculates overall vulnerability severity from 0 to 10 and is based on the Common Vulnerability Scoring System (CVSS).
/ 10

CVSS v3 base metrics

Attack vector
Adjacent
Attack complexity
High
Privileges required
None
User interaction
Required
Scope
Changed
Confidentiality
High
Integrity
High
Availability
High

CVSS v3 base metrics

Attack vector: More severe the more the remote (logically and physically) an attacker can be in order to exploit the vulnerability.
Attack complexity: More severe for the least complex attacks.
Privileges required: More severe if no privileges are required.
User interaction: More severe when no user interaction is required.
Scope: More severe when a scope change occurs, e.g. one vulnerable component impacts resources in components beyond its security scope.
Confidentiality: More severe when loss of data confidentiality is highest, measuring the level of data access available to an unauthorized user.
Integrity: More severe when loss of data integrity is the highest, measuring the consequence of data modification possible by an unauthorized user.
Availability: More severe when the loss of impacted component availability is highest.
CVSS:3.1/AV:A/AC:H/PR:N/UI:R/S:C/C:H/I:H/A:H

CVE ID

No known CVE

Weaknesses

No CWEs