CVE-2021-39899
Status: ModifiedMedium (4.2)—
In all versions of GitLab CE/EE, an attacker with physical access to a user’s machine may brute force the user’s password via the change password function. There is a rate limit in place, but the attack may still be conducted by stealing the session id from the physical compromise of the account and splitting the attack over several IP addresses and passing in the compromised session value from these various locations.
CVSS
- Version: 3.1
- Vector: CVSS:3.1/AV:P/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N
- Base score: 4.2
Exploitation probability (EPSS)
- Probability of exploitation in the next 30 days: 0.26%
- Percentile among all scored CVEs: 16
- Score date: 10/8/2026
EPSS (Exploit Prediction Scoring System, FIRST) estimates how likely a vulnerability is to be exploited in the wild within 30 days. It complements CVSS (impact) and CISA KEV (confirmed exploitation).
Affected technologies (1)
CWEs
- CWE-640
References
Raw JSON (NVD)
Show
{
"id": "CVE-2021-39899",
"cveTags": [],
"metrics": {
"cvssMetricV2": [
{
"type": "Primary",
"source": "nvd@nist.gov",
"cvssData": {
"version": "2.0",
"baseScore": 1.9,
"accessVector": "LOCAL",
"vectorString": "AV:L/AC:M/Au:N/C:P/I:N/A:N",
"authentication": "NONE",
"integrityImpact": "NONE",
"accessComplexity": "MEDIUM",
"availabilityImpact": "NONE",
"confidentialityImpact": "PARTIAL"
},
"acInsufInfo": false,
"impactScore": 2.9,
"baseSeverity": "LOW",
"obtainAllPrivilege": false,
"exploitabilityScore": 3.4,
"obtainUserPrivilege": false,
"obtainOtherPrivilege": false,
"userInteractionRequired": false
}
],
"cvssMetricV31": [
{
"type": "Secondary",
"source": "cve@gitlab.com",
"cvssData": {
"scope": "UNCHANGED",
"version": "3.1",
"baseScore": 2.9,
"attackVector": "PHYSICAL",
"baseSeverity": "LOW",
"vectorString": "CVSS:3.1/AV:P/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:N",
"integrityImpact": "LOW",
"userInteraction": "REQUIRED",
"attackComplexity": "HIGH",
"availabilityImpact": "NONE",
"privilegesRequired": "NONE",
"confidentialityImpact": "LOW"
},
"impactScore": 2.5,
"exploitabilityScore": 0.4
},
{
"type": "Primary",
"source": "nvd@nist.gov",
"cvssData": {
"scope": "UNCHANGED",
"version": "3.1",
"baseScore": 4.2,
"attackVector": "PHYSICAL",
"baseSeverity": "MEDIUM",
"vectorString": "CVSS:3.1/AV:P/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N",
"integrityImpact": "NONE",
"userInteraction": "NONE",
"attackComplexity": "HIGH",
"availabilityImpact": "NONE",
"privilegesRequired": "NONE",
"confidentialityImpact": "HIGH"
},
"impactScore": 3.6,
"exploitabilityScore": 0.5
}
]
},
"affected": [
{
"source": "cve@gitlab.com",
"affectedData": [
{
"vendor": "GitLab",
"product": "GitLab",
"versions": [
{
"status": "affected",
"version": ">=1.0, <14.1.7"
},
{
"status": "affected",
"version": ">=14.2, <14.2.5"
},
{
"status": "affected",
"version": ">=14.3, <14.3.1"
}
]
}
]
}
],
"published": "2021-10-04T17:15:08.357",
"references": [
{
"url": "https://gitlab.com/gitlab-org/cves/-/blob/master/2021/CVE-2021-39899.json",
"tags": [
"Vendor Advisory"
],
"source": "cve@gitlab.com"
},
{
"url": "https://gitlab.com/gitlab-org/gitlab/-/issues/339154",
"tags": [
"Broken Link"
],
"source": "cve@gitlab.com"
},
{
"url": "https://gitlab.com/gitlab-org/cves/-/blob/master/2021/CVE-2021-39899.json",
"tags": [
"Vendor Advisory"
],
"source": "af854a3a-2127-422b-91ae-364da2661108"
},
{
"url": "https://gitlab.com/gitlab-org/gitlab/-/issues/339154",
"tags": [
"Broken Link"
],
"source": "af854a3a-2127-422b-91ae-364da2661108"
}
],
"vulnStatus": "Modified",
"weaknesses": [
{
"type": "Primary",
"source": "nvd@nist.gov",
"description": [
{
"lang": "en",
"value": "CWE-640"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In all versions of GitLab CE/EE, an attacker with physical access to a user’s machine may brute force the user’s password via the change password function. There is a rate limit in place, but the attack may still be conducted by stealing the session id from the physical compromise of the account and splitting the attack over several IP addresses and passing in the compromised session value from these various locations."
},
{
"lang": "es",
"value": "En todas las versiones de GitLab CE/EE, un atacante con acceso físico a la máquina de un usuario puede forzar la contraseña del usuario por medio de la función change password. Se presenta un límite de velocidad, pero el ataque puede llevarse a cabo al robar el identificador de sesión desde el compromiso físico de la cuenta y dividiendo el ataque en varias direcciones IP y pasando el valor de la sesión comprometida desde estas diversas ubicaciones"
}
],
"lastModified": "2026-06-17T04:04:23.230",
"configurations": [
{
"nodes": [
{
"negate": false,
"cpeMatch": [
{
"criteria": "cpe:2.3:a:gitlab:gitlab:*:*:*:*:community:*:*:*",
"vulnerable": true,
"matchCriteriaId": "15511E8F-E088-49D8-BF62-7C0D3A5252BF",
"versionEndExcluding": "14.1.7",
"versionStartIncluding": "1.0.0"
},
{
"criteria": "cpe:2.3:a:gitlab:gitlab:*:*:*:*:enterprise:*:*:*",
"vulnerable": true,
"matchCriteriaId": "C2FC870F-C488-49EF-92B2-A46CE6116A94",
"versionEndExcluding": "14.1.7",
"versionStartIncluding": "1.0.0"
},
{
"criteria": "cpe:2.3:a:gitlab:gitlab:*:*:*:*:community:*:*:*",
"vulnerable": true,
"matchCriteriaId": "A3352A07-9A5A-4CA9-B6F6-71BA3A1D4F9C",
"versionEndExcluding": "14.2.5",
"versionStartIncluding": "14.2"
},
{
"criteria": "cpe:2.3:a:gitlab:gitlab:*:*:*:*:enterprise:*:*:*",
"vulnerable": true,
"matchCriteriaId": "CAAC78F3-28E1-4A0D-BA8A-78AE9393B988",
"versionEndExcluding": "14.2.5",
"versionStartIncluding": "14.2"
},
{
"criteria": "cpe:2.3:a:gitlab:gitlab:*:*:*:*:community:*:*:*",
"vulnerable": true,
"matchCriteriaId": "A573FB75-1C20-4E3A-982C-2B422C95BED8",
"versionEndExcluding": "14.3.1",
"versionStartIncluding": "14.3"
},
{
"criteria": "cpe:2.3:a:gitlab:gitlab:*:*:*:*:enterprise:*:*:*",
"vulnerable": true,
"matchCriteriaId": "D0EFF286-2716-472C-AB8E-47595940C0B3",
"versionEndExcluding": "14.3.1",
"versionStartIncluding": "14.3"
}
],
"operator": "OR"
}
]
}
],
"sourceIdentifier": "cve@gitlab.com"
}