{"api_version":"1","generated_at":"2026-07-23T14:53:38+00:00","cve":"CVE-2024-2953","urls":{"html":"https://cve.report/CVE-2024-2953","api":"https://cve.report/api/cve/CVE-2024-2953.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2024-2953","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2024-2953"},"summary":{"title":"LuckyWP Table of Contents <= 2.1.4 - Authenticated (Contributor+) Stored Cross-Site Scripting","description":"The LuckyWP Table of Contents plugin for WordPress is vulnerable to Stored Cross-Site Scripting via multiple parameters in versions up to, and including, 2.1.4 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers with Contributor permissions and above to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.","state":"PUBLISHED","assigner":"Wordfence","published_at":"2024-05-22 08:15:09","updated_at":"2026-04-08 19:21:14"},"problem_types":["CWE-79","CWE-79 CWE-79 Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')"],"metrics":[{"version":"3.1","source":"nvd@nist.gov","type":"Primary","score":"4.8","severity":"MEDIUM","vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:C/C:L/I:L/A:N","data":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:C/C:L/I:L/A:N","baseScore":4.8,"baseSeverity":"MEDIUM","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"HIGH","userInteraction":"REQUIRED","scope":"CHANGED","confidentialityImpact":"LOW","integrityImpact":"LOW","availabilityImpact":"NONE"}},{"version":"3.1","source":"security@wordfence.com","type":"Secondary","score":"5.5","severity":"MEDIUM","vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:L/I:L/A:N","data":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:L/I:L/A:N","baseScore":5.5,"baseSeverity":"MEDIUM","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"HIGH","userInteraction":"NONE","scope":"CHANGED","confidentialityImpact":"LOW","integrityImpact":"LOW","availabilityImpact":"NONE"}},{"version":"3.1","source":"CNA","type":"DECLARED","score":"5.5","severity":"MEDIUM","vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:L/I:L/A:N","data":{"baseScore":5.5,"baseSeverity":"MEDIUM","vectorString":"CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:L/I:L/A:N","version":"3.1"}}],"references":[{"url":"https://www.wordfence.com/threat-intel/vulnerabilities/id/b12c0524-d991-4f96-8646-f4203880558c?source=cve","name":"https://www.wordfence.com/threat-intel/vulnerabilities/id/b12c0524-d991-4f96-8646-f4203880558c?source=cve","refsource":"af854a3a-2127-422b-91ae-364da2661108","tags":["Third Party Advisory"],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://plugins.trac.wordpress.org/browser/luckywp-table-of-contents/tags/2.1.4/plugin/PostSettings.php#L210","name":"https://plugins.trac.wordpress.org/browser/luckywp-table-of-contents/tags/2.1.4/plugin/PostSettings.php#L210","refsource":"af854a3a-2127-422b-91ae-364da2661108","tags":["Product"],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://plugins.trac.wordpress.org/changeset?sfp_email=&sfph_mail=&reponame=&old=3147918%40luckywp-table-of-contents&new=3147918%40luckywp-table-of-contents&sfp_email=&sfph_mail=","name":"https://plugins.trac.wordpress.org/changeset?sfp_email=&sfph_mail=&reponame=&old=3147918%40luckywp-table-of-contents&new=3147918%40luckywp-table-of-contents&sfp_email=&sfph_mail=","refsource":"security@wordfence.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://plugins.trac.wordpress.org/browser/luckywp-table-of-contents/tags/2.1.4/plugin/PostSettings.php#L209","name":"https://plugins.trac.wordpress.org/browser/luckywp-table-of-contents/tags/2.1.4/plugin/PostSettings.php#L209","refsource":"af854a3a-2127-422b-91ae-364da2661108","tags":["Product"],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://plugins.trac.wordpress.org/browser/luckywp-table-of-contents/tags/2.1.4/plugin/PostSettings.php#L207","name":"https://plugins.trac.wordpress.org/browser/luckywp-table-of-contents/tags/2.1.4/plugin/PostSettings.php#L207","refsource":"af854a3a-2127-422b-91ae-364da2661108","tags":["Product"],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2024-2953","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2024-2953","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"theluckywp","product":"LuckyWP Table of Contents","version":"affected 2.1.4 semver","platforms":[]}],"timeline":[{"source":"CNA","time":"2023-03-17T00:00:00.000Z","lang":"en","value":"Discovered"},{"source":"CNA","time":"2024-05-21T00:00:00.000Z","lang":"en","value":"Disclosed"}],"solutions":[],"workarounds":[],"exploits":[],"credits":[{"source":"CNA","value":"Ivan Kuzymchak","lang":"en"}],"nvd_cpes":[{"cve_year":"2024","cve_id":"2953","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"theluckywp","cpe5":"luckywp_table_of_contents","cpe6":"*","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"wordpress","cpe12":"*","cpe13":"*"}],"vendor_comments":[],"enrichments":{"kev":null,"epss":{"cve_year":"2024","cve_id":"2953","cve":"CVE-2024-2953","epss":"0.003350000","percentile":"0.564110000","score_date":"2026-04-12","updated_at":"2026-04-13 00:12:16"},"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"adp":[{"metrics":[{"other":{"content":{"id":"CVE-2024-2953","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","timestamp":"2024-05-22T15:28:49.570676Z","version":"2.0.3"},"type":"ssvc"}}],"providerMetadata":{"dateUpdated":"2024-06-04T17:29:02.982Z","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","shortName":"CISA-ADP"},"title":"CISA ADP Vulnrichment"},{"providerMetadata":{"dateUpdated":"2024-08-01T19:32:42.458Z","orgId":"af854a3a-2127-422b-91ae-364da2661108","shortName":"CVE"},"references":[{"tags":["x_transferred"],"url":"https://www.wordfence.com/threat-intel/vulnerabilities/id/b12c0524-d991-4f96-8646-f4203880558c?source=cve"},{"tags":["x_transferred"],"url":"https://plugins.trac.wordpress.org/browser/luckywp-table-of-contents/tags/2.1.4/plugin/PostSettings.php#L207"},{"tags":["x_transferred"],"url":"https://plugins.trac.wordpress.org/browser/luckywp-table-of-contents/tags/2.1.4/plugin/PostSettings.php#L209"},{"tags":["x_transferred"],"url":"https://plugins.trac.wordpress.org/browser/luckywp-table-of-contents/tags/2.1.4/plugin/PostSettings.php#L210"}],"title":"CVE Program Container"}],"cna":{"affected":[{"defaultStatus":"unaffected","product":"LuckyWP Table of Contents","vendor":"theluckywp","versions":[{"lessThanOrEqual":"2.1.4","status":"affected","version":"0","versionType":"semver"}]}],"credits":[{"lang":"en","type":"finder","value":"Ivan Kuzymchak"}],"descriptions":[{"lang":"en","value":"The LuckyWP Table of Contents plugin for WordPress is vulnerable to Stored Cross-Site Scripting via multiple parameters in versions up to, and including, 2.1.4 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers with Contributor permissions and above to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page."}],"metrics":[{"cvssV3_1":{"baseScore":5.5,"baseSeverity":"MEDIUM","vectorString":"CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:L/I:L/A:N","version":"3.1"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-79","description":"CWE-79 Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')","lang":"en","type":"CWE"}]}],"providerMetadata":{"dateUpdated":"2026-04-08T17:16:09.810Z","orgId":"b15e7b5b-3da4-40ae-a43c-f7aa60e62599","shortName":"Wordfence"},"references":[{"url":"https://www.wordfence.com/threat-intel/vulnerabilities/id/b12c0524-d991-4f96-8646-f4203880558c?source=cve"},{"url":"https://plugins.trac.wordpress.org/browser/luckywp-table-of-contents/tags/2.1.4/plugin/PostSettings.php#L207"},{"url":"https://plugins.trac.wordpress.org/browser/luckywp-table-of-contents/tags/2.1.4/plugin/PostSettings.php#L209"},{"url":"https://plugins.trac.wordpress.org/browser/luckywp-table-of-contents/tags/2.1.4/plugin/PostSettings.php#L210"},{"url":"https://plugins.trac.wordpress.org/changeset?sfp_email=&sfph_mail=&reponame=&old=3147918%40luckywp-table-of-contents&new=3147918%40luckywp-table-of-contents&sfp_email=&sfph_mail="}],"timeline":[{"lang":"en","time":"2023-03-17T00:00:00.000Z","value":"Discovered"},{"lang":"en","time":"2024-05-21T00:00:00.000Z","value":"Disclosed"}],"title":"LuckyWP Table of Contents <= 2.1.4 - Authenticated (Contributor+) Stored Cross-Site Scripting"}},"cveMetadata":{"assignerOrgId":"b15e7b5b-3da4-40ae-a43c-f7aa60e62599","assignerShortName":"Wordfence","cveId":"CVE-2024-2953","datePublished":"2024-05-22T07:37:24.757Z","dateReserved":"2024-03-26T18:12:00.308Z","dateUpdated":"2026-04-08T17:16:09.810Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2024-05-22 08:15:09","lastModifiedDate":"2026-04-08 19:21:14","problem_types":["CWE-79","CWE-79 CWE-79 Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')"],"metrics":{"cvssMetricV31":[{"source":"security@wordfence.com","type":"Secondary","cvssData":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:L/I:L/A:N","baseScore":5.5,"baseSeverity":"MEDIUM","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"HIGH","userInteraction":"NONE","scope":"CHANGED","confidentialityImpact":"LOW","integrityImpact":"LOW","availabilityImpact":"NONE"},"exploitabilityScore":2.3,"impactScore":2.7},{"source":"nvd@nist.gov","type":"Primary","cvssData":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:C/C:L/I:L/A:N","baseScore":4.8,"baseSeverity":"MEDIUM","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"HIGH","userInteraction":"REQUIRED","scope":"CHANGED","confidentialityImpact":"LOW","integrityImpact":"LOW","availabilityImpact":"NONE"},"exploitabilityScore":1.7,"impactScore":2.7}]},"configurations":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:a:theluckywp:luckywp_table_of_contents:*:*:*:*:*:wordpress:*:*","versionEndExcluding":"2.1.5","matchCriteriaId":"7AA902AD-A72D-4DA4-B156-7B0FCCD1093C"}]}]}]},"legacy_mitre":{"record":{"CveYear":"2024","CveId":"2953","Ordinal":"1","Title":"LuckyWP Table of Contents <= 2.1.4 - Authenticated (Contributor+","CVE":"CVE-2024-2953","Year":"2024"},"notes":[{"CveYear":"2024","CveId":"2953","Ordinal":"1","NoteData":"The LuckyWP Table of Contents plugin for WordPress is vulnerable to Stored Cross-Site Scripting via multiple parameters in versions up to, and including, 2.1.4 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers with Contributor permissions and above to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.","Type":"Description","Title":"LuckyWP Table of Contents <= 2.1.4 - Authenticated (Contributor+"}]}}}