CVE-2024-3946: WP To Do · Cross-site Scripting
Affects WP To DoSource CVE Database V5
Not known to be exploited · CVSS 4.4 Medium.
Data as of 26 Oct 2026, 08:30 UTC
- EPSS
- 0.3% chance of exploitation in 30 days – higher than 24% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:C/C:L/I:L/A:NExploitation evidence
Disclosed: evidence found.
CVE published 30 May 2024
Detectable: no evidence on record.
No public nuclei template indexed
Weaponised: no evidence on record.
No public exploit code indexed in Metasploit or Exploit-DB
Exploited in the wildExploited: no evidence on record.
Not in CISA KEV and no source reports exploitation
Observed by OffSeq MirageSeen by Mirage: no evidence on record.
No attack traffic recorded by OffSeq Mirage sensors
A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 26 Oct 2026.
What to do
Affected software
| Product | Affected | Fixed in |
|---|---|---|
| delower186 WP To Do | Affected
| Fixed in– |
AI-suggested
Until an official fix is available, restrict administrator access to trusted users only and consider disabling or limiting use of the WP To Do plugin in multi-site environments or where unfiltered_html is disabled. Monitor for updates from the vendor delower186 regarding patches or official mitigations.
Description
The WP To Do plugin for WordPress is vulnerable to Stored Cross-Site Scripting via admin settings in all versions up to, and including, 1.3.0 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers, with administrator-level permissions and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. This only affects multi-site installations and installations where unfiltered_html has been disabled.
References
- wordfence.com/threat-intel/vulnerabilities/id/de648bea-35c5-4611-aa2f-79e37a0299bb?source=cve (opens in a new tab)
- plugins.trac.wordpress.org/browser/wp-todo/trunk/inc/Base/Model.php (opens in a new tab)
- plugins.trac.wordpress.org/changeset?sfp_email=&sfph_mail=&reponame=&old=3345087%40wp-todo&new=3345087%40wp-todo&sfp_email=&sfph_mail= (opens in a new tab)