Skip to content

GoCD before 22.1.0 has remote code execution possible via Mercurial command argument injection on materials

High
chadlwilson published GHSA-vf5r-r7j2-cf2h May 9, 2022

Package

gocd-server

Affected versions

< 22.1.0

Patched versions

22.1.0

Description

Impact

In GoCD versions prior to 22.1.0, it is possible for existing authenticated users who have permissions to edit or create pipeline materials or pipeline configuration repositories to get remote code execution capability on the GoCD server via configuring a malicious branch name which abuses Mercurial hooks/aliases to exploit a command injection weakness.

An attacker would require access to an account with existing GoCD administration permissions to either

  • create/edit (hg-based) configuration repositories
  • create/edit pipelines and their (hg-based) materials
  • where "pipelines-as-code" configuration repositories are used, to commit malicious configuration to such an external repository which will be automatically parsed into a pipeline configuration and (hg) material definition by the GoCD server

Patches

Fixed in GoCD 22.1.0.

Workarounds

Users who do not use/rely upon Mercurial materials can uninstall/remove the hg/Mercurial binary from the underlying GoCD Server operating system or Docker image.

References

For more information

If you have any questions or comments about this advisory:

Severity

High
8.8
/ 10

CVSS base metrics

Attack vector
Network
Attack complexity
Low
Privileges required
Low
User interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

CVE ID

CVE-2022-29184

Credits