Jenkins Credentials Binding plugin allows specifying passwords and other secrets as environment variables, and will hide them from console output in builds.
However, since Jenkins will try to resolve references to other environment variables in environment variables passed to a build, this can result in values other than the one specified being provided to a build. For example, the value p4$$w0rd
would result in Jenkins passing on p4$w0rd
, as $$
is the escape sequence for a single $
.
Credentials Binding plugin does not prevent such a transformed value (e.g. p4$w0rd
) from being shown on the build log, allowing users to reconstruct the actual password value from the transformed one.
Credentials Binding plugin will now escape any $
characters in password values so they are correctly passed to the build.
This issue did apply to freestyle and other classic job types, but does not apply to Pipelines.
{ "nvd_published_at": "2018-02-09T23:29:00Z", "cwe_ids": [ "CWE-522" ], "severity": "MODERATE", "github_reviewed": true, "github_reviewed_at": "2023-12-28T18:43:13Z" }