2026-10-30 17:15CVE-2026-104739Wordfence
PUBLISHED5.2CWE-22

JS Help Desk <= 5.0.1 - Authenticated (Administrator+) Path Traversal to Arbitrary File Deletion via 'support_custom_img' Parameter

The JS Help Desk – AI-Powered Support & Ticketing System plugin for WordPress is vulnerable to arbitrary file deletion due to insufficient file path validation in the setSupportCustomImage function in all versions up to, and including, 5.0.1. This makes it possible for authenticated attackers, with administrator-level access and above, to delete arbitrary files on the server, which can easily lead to remote code execution when the right file is deleted (such as wp-config.php). Exploitation requires a two-step sequence: an administrator first saves a traversal-crafted value in the support_custom_img configuration field, then triggers deletion by uploading a new support custom image, at which point setSupportCustomImage() resolves and deletes the attacker-controlled path.

Problem type

Affected products

rabilal

JS Help Desk – AI-Powered Support & Ticketing System

<= 5.0.1 - AFFECTED

References

GitHub Security Advisories

GHSA-2c2g-q6hp-xc6q

The JS Help Desk – AI-Powered Support & Ticketing System plugin for WordPress is vulnerable to...

https://github.com/advisories/GHSA-2c2g-q6hp-xc6q

The JS Help Desk – AI-Powered Support & Ticketing System plugin for WordPress is vulnerable to arbitrary file deletion due to insufficient file path validation in the setSupportCustomImage function in all versions up to, and including, 5.0.1. This makes it possible for authenticated attackers, with administrator-level access and above, to delete arbitrary files on the server, which can easily lead to remote code execution when the right file is deleted (such as wp-config.php). Exploitation requires a two-step sequence: an administrator first saves a traversal-crafted value in the support_custom_img configuration field, then triggers deletion by uploading a new support custom image, at which point setSupportCustomImage() resolves and deletes the attacker-controlled path.

JSON source

https://cveawg.mitre.org/api/cve/CVE-2026-104739
Click to expand
{
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "cveMetadata": {
    "cveId": "CVE-2026-104739",
    "assignerOrgId": "b15e7b5b-3da4-40ae-a43c-f7aa60e62599",
    "assignerShortName": "Wordfence",
    "dateUpdated": "2026-10-30T18:08:58.390Z",
    "dateReserved": "2026-10-02T11:54:00.670Z",
    "datePublished": "2026-10-30T17:15:28.645Z",
    "state": "PUBLISHED"
  },
  "containers": {
    "cna": {
      "providerMetadata": {
        "orgId": "b15e7b5b-3da4-40ae-a43c-f7aa60e62599",
        "shortName": "Wordfence",
        "dateUpdated": "2026-10-30T17:15:28.645Z"
      },
      "title": "JS Help Desk <= 5.0.1 - Authenticated (Administrator+) Path Traversal to Arbitrary File Deletion via 'support_custom_img' Parameter",
      "descriptions": [
        {
          "lang": "en",
          "value": "The JS Help Desk – AI-Powered Support & Ticketing System plugin for WordPress is vulnerable to arbitrary file deletion due to insufficient file path validation in the setSupportCustomImage function in all versions up to, and including, 5.0.1. This makes it possible for authenticated attackers, with administrator-level access and above, to delete arbitrary files on the server, which can easily lead to remote code execution when the right file is deleted (such as wp-config.php). Exploitation requires a two-step sequence: an administrator first saves a traversal-crafted value in the support_custom_img configuration field, then triggers deletion by uploading a new support custom image, at which point setSupportCustomImage() resolves and deletes the attacker-controlled path."
        }
      ],
      "affected": [
        {
          "vendor": "rabilal",
          "product": "JS Help Desk – AI-Powered Support & Ticketing System",
          "defaultStatus": "unaffected",
          "versions": [
            {
              "version": "0",
              "status": "affected",
              "versionType": "semver",
              "lessThanOrEqual": "5.0.1"
            }
          ]
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "lang": "en",
              "description": "CWE-22 Improper Limitation of a Pathname to a Restricted Directory",
              "cweId": "CWE-22",
              "type": "CWE"
            }
          ]
        }
      ],
      "references": [
        {
          "url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/9e5a3d9a-8114-450a-b101-3cd5a7b694e1?source=cve"
        },
        {
          "url": "https://plugins.trac.wordpress.org/browser/js-support-ticket/tags/4.0.0/modules/configuration/model.php#L306"
        },
        {
          "url": "https://plugins.trac.wordpress.org/browser/js-support-ticket/tags/4.0.0/modules/configuration/model.php#L207"
        },
        {
          "url": "https://plugins.trac.wordpress.org/browser/js-support-ticket/tags/4.0.0/modules/configuration/model.php#L278"
        },
        {
          "url": "https://plugins.trac.wordpress.org/changeset?reponame=&old=3755880%40js-support-ticket&new=3755880%40js-support-ticket"
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "version": "3.1",
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:N/A:N",
            "baseScore": 4.9,
            "baseSeverity": "MEDIUM"
          }
        }
      ],
      "timeline": [
        {
          "time": "2026-10-02T12:09:51.000Z",
          "lang": "en",
          "value": "Vendor Notified"
        },
        {
          "time": "2026-10-30T16:05:12.000Z",
          "lang": "en",
          "value": "Disclosed"
        }
      ],
      "credits": [
        {
          "lang": "en",
          "value": "Wordfence PRISM",
          "type": "finder"
        }
      ]
    },
    "adp": [
      {
        "providerMetadata": {
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP",
          "dateUpdated": "2026-10-30T18:08:58.390Z"
        },
        "title": "CISA ADP Vulnrichment",
        "metrics": [
          {}
        ]
      }
    ]
  }
}