Agent-to-controller security bypass in Jenkins Semantic Versioning Plugin
Date: 2022-03
Affected: maven/org.jenkins-ci.plugins:semantic-versioning-plugin
Attack vector: ssrf
Category: vulnerability-disclosure
Severity: High
CVE: CVE-2022-27201
CVE-2022-27217
CVE-2022-27218
CWE: CWE-256
CWE-522
CWE-611
CWE-918
CVSS: 7.1 (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N)

Jenkins Semantic Versioning Plugin defines a controller/agent message that processes a given file as XML and returns version information. The XML parser is not configured to prevent XML external entity (XXE) attacks, which is only a problem if XML documents are parsed on the Jenkins controller. Jenkins Semantic Versioning Plugin 1.13 and earlier does not restrict execution of a controller/agent message to agents, and implements no limitations about the file path that can be parsed, allowing attackers able to control agent processes to have Jenkins parse a crafted file that uses external entities for extraction of secrets from the Jenkins controller or server-side request forgery. This vulnerability is only exploitable in Jenkins 2.318 and earlier, LTS 2.303.2 and earlier. See the [LTS upgrade guide](https://www.jenkins.io/doc/upgrade-guide/2.303/#upgrading-to-jenkins-lts-2-303-3).


Mitigations:

Architectural layers (MAESTRO):