It is possible to bypass the masking of environment variables when they are printed in the job logs, therefore sensitive data such as passwords, tokens, users, among others are exposed. This is possible because production secrets are saved in unprotected variables of git, therefore a developer could leak these credentials when running pipelines.
- Get admin credentials.
- Read, write and modify Gitlab resources.
- Get customer information.
- Download information and evidences of customers.
- Delete fluid and registries of customer.
Verify that the user who is trying to access the functionalities effectively has the necessary permissions to do so. Encrypt all sensitive information that is transported or stored within the application according to the policies of the organization.
External attacker allowed to run pipelines.
⌚ 30 minutes.
Default score using CVSS 3.1. It may change depending on the context of the src.
Default score using CVSS 4.0. It may change depending on the context of the src.
All sensitive information is hashed before sending it in a response
const accessRecoveryPasswd = (req, res) => {
if (isValidUser(req.body.user)) {
if (validateToken == req.body.token){
//Implement a function to mask sensitive information
const recoveryPasswd = getRecoveryPasswd(req.body.userId);
const maskedPasswd = MaskData.maskJSONFields(recoveryPasswd, maskJSONOptions);
res.end(maskedPasswd);
}
}
}
The application contains functionality that displays sensitive information without hashing
const accessRecoveryPasswd = (req, res) => {
if (isValidUser(req.body.user)) {
if (validateToken == req.body.token){
//Implement a function to mask sensitive information
const recoveryPasswd = getRecoveryPasswd(req.body.userId);
const maskedPasswd = MaskData.maskJSONFields(recoveryPasswd, maskJSONOptions);
//A log job in the code could be used to access the unmasked variable with sensitive information
console.log(maskedPasswd)
res.end(maskedPasswd);
}
}
}