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.
JS Help Desk <= 5.0.1 - Authenticated (Administrator+) Path Traversal to Arbitrary File Deletion via 'support_custom_img' Parameter
Problem type
Affected products
rabilal
<= 5.0.1 - AFFECTED
References
https://www.wordfence.com/threat-intel/vulnerabilities/id/9e5a3d9a-8114-450a-b101-3cd5a7b694e1?source=cve
https://plugins.trac.wordpress.org/browser/js-support-ticket/tags/4.0.0/modules/configuration/model.php#L306
https://plugins.trac.wordpress.org/browser/js-support-ticket/tags/4.0.0/modules/configuration/model.php#L207
https://plugins.trac.wordpress.org/browser/js-support-ticket/tags/4.0.0/modules/configuration/model.php#L278
https://plugins.trac.wordpress.org/changeset?reponame=&old=3755880%40js-support-ticket&new=3755880%40js-support-ticket
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-xc6qThe 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.
https://nvd.nist.gov/vuln/detail/CVE-2026-104739
https://plugins.trac.wordpress.org/browser/js-support-ticket/tags/4.0.0/modules/configuration/model.php#L207
https://plugins.trac.wordpress.org/browser/js-support-ticket/tags/4.0.0/modules/configuration/model.php#L278
https://plugins.trac.wordpress.org/browser/js-support-ticket/tags/4.0.0/modules/configuration/model.php#L306
https://plugins.trac.wordpress.org/changeset?reponame=&old=3755880%40js-support-ticket&new=3755880%40js-support-ticket
https://www.wordfence.com/threat-intel/vulnerabilities/id/9e5a3d9a-8114-450a-b101-3cd5a7b694e1?source=cve
https://github.com/advisories/GHSA-2c2g-q6hp-xc6q
JSON source
https://cveawg.mitre.org/api/cve/CVE-2026-104739Click 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": [
{}
]
}
]
}
}