Currently, if a user without configuration access to a job can read the job they have access to the link "Environment variables". This allows the non-privileged user to see the password hashes.

      If they have Config access to a different folder on the same master, they can use this password hash to expose the password and take control of the account by using the CLI to directly change the job config.xml

      I propose that this link or at least the password hashes be restricted to only users with job config access.

          [JENKINS-24287] EnvInject exposes password hashes

          Daniel Beck added a comment -

          they can use this password hash to expose the password and take control of the account

          Could you provide steps to reproduce this?

          Daniel Beck added a comment - they can use this password hash to expose the password and take control of the account Could you provide steps to reproduce this?

          I think that I forgot to mention that you need to configure a global password or use job level passwords from this plugin. Doing these options will show the environment variable as injected which cause this security problem.

          Walter Kacynski added a comment - I think that I forgot to mention that you need to configure a global password or use job level passwords from this plugin. Doing these options will show the environment variable as injected which cause this security problem.

          Daniel Beck added a comment -

          This still doesn't explain how other users that

          have Config access to a difference folder on the same master, ... can use this password hash to expose the password and take control of the account

          Daniel Beck added a comment - This still doesn't explain how other users that have Config access to a difference folder on the same master, ... can use this password hash to expose the password and take control of the account

          They can use the CLI to retrieve the config.xml and then paste this hash into the document and then update the job back to jenkins.

          Walter Kacynski added a comment - They can use the CLI to retrieve the config.xml and then paste this hash into the document and then update the job back to jenkins.

          Daniel Beck added a comment -

          Thanks for the explanation, makes sense. passwords should probably be hidden from this output completely, or just have the value (password hidden) or similar.

          Daniel Beck added a comment - Thanks for the explanation, makes sense. passwords should probably be hidden from this output completely, or just have the value (password hidden) or similar.

          Jesse Glick added a comment -

          Not sure what “password hash” means in this context but is this just a duplicate of JENKINS-23447?

          Jesse Glick added a comment - Not sure what “password hash” means in this context but is this just a duplicate of JENKINS-23447 ?

          Daniel Beck added a comment -

          jglick: No, this is about variables recognized by Env-Inject as passwords. They're only shown in encrypted form on the Injected Env Vars page, but that can be reused in another job in the same instance the malicious user has config access to: Just run env there and you "decrypted" the password.

          Daniel Beck added a comment - jglick : No, this is about variables recognized by Env-Inject as passwords. They're only shown in encrypted form on the Injected Env Vars page, but that can be reused in another job in the same instance the malicious user has config access to: Just run env there and you "decrypted" the password.

          Elliott Jones added a comment -

          Any thoughts on this being fixed? We have to use passwords managed by a separate IT team for our CI process thus this issue is of concern to them.

          Elliott Jones added a comment - Any thoughts on this being fixed? We have to use passwords managed by a separate IT team for our CI process thus this issue is of concern to them.

          Oleg Nenashev added a comment -

          JENKINS-29867 (https://github.com/jenkinsci/envinject-plugin/pull/57) should partially address this use-case in 1.92+

          Oleg Nenashev added a comment - JENKINS-29867 ( https://github.com/jenkinsci/envinject-plugin/pull/57 ) should partially address this use-case in 1.92+

          Oleg Nenashev added a comment -

          I think the JENKINS-29867 fix is enough. Please reopen the issue if you expect something else to be delivered

          Oleg Nenashev added a comment - I think the JENKINS-29867 fix is enough. Please reopen the issue if you expect something else to be delivered

            oleg_nenashev Oleg Nenashev
            walterk82 Walter Kacynski
            Votes:
            1 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: