[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"repo-stars":3,"vuln-CVE-2026-87115":6},{"stargazers_count":4,"fetched_at":5},8,"2026-10-03T17:29:33.426Z",{"id":7,"descriptions":8,"cisa":9,"weaknesses":10,"exploits":40,"aliases":41,"duplicate_of":9,"upstream":42,"downstream":43,"duplicates":44,"related":45,"reserved_at":9,"published_at":46,"modified_at":47,"state":48,"summary":49,"references_raw":58,"kevs":100,"epss":101,"epss_history":104,"metrics":106,"affected":114},"CVE-2026-87115","The VikAppointments Services Booking Calendar plugin for WordPress is vulnerable to arbitrary file deletion due to insufficient file path validation in the extract function in all versions up to, and including, 1.2.21. This makes it possible for unauthenticated attackers 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 at least one File-type custom field to be published on the confirmation page shortcode, as this field is not created by default during plugin installation.",null,[11],{"_key":12,"id":12,"name":13,"description":14,"type":15,"status":16,"abstraction":17,"likelihood_of_exploit":18,"capec":19},"CWE-22","Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')","The product uses external input to construct a pathname that is intended to identify a file or directory that is located underneath a restricted parent directory, but the product does not properly neutralize special elements within the pathname that can cause the pathname to resolve to a location that is outside of the restricted directory.","weakness","Stable","Base","High",[20,24,28,32,36],{"id":21,"name":22,"techniques":23},"CAPEC-126","Path Traversal",[],{"id":25,"name":26,"techniques":27},"CAPEC-64","Using Slashes and URL Encoding Combined to Bypass Validation Logic",[],{"id":29,"name":30,"techniques":31},"CAPEC-76","Manipulating Web Input to File System Calls",[],{"id":33,"name":34,"techniques":35},"CAPEC-78","Using Escaped Slashes in Alternate Encoding",[],{"id":37,"name":38,"techniques":39},"CAPEC-79","Using Slashes in Alternate Encoding",[],[],[],[],[],[],[],"2026-10-03T06:38:23.319Z","2026-10-03T15:42:42.039Z","Received",{"cisa_kev":50,"cisa_ransomware":50,"cisa_vendor":9,"epss_severity":51,"epss_score":52,"severity":53,"severity_score":54,"severity_version":55,"severity_source":56,"severity_vector":57,"severity_status":48},false,"low",0.00881,"critical",9.1,"v3.1","cve.org","CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H",[59,64,68,72,76,80,84,88,92,96],{"url":60,"sources":61,"tags":63},"https://www.wordfence.com/threat-intel/vulnerabilities/id/75fc5df5-a774-4fe1-8452-d35ba7b69081?source=cve",[56,62],"nvd",[],{"url":65,"sources":66,"tags":67},"https://plugins.trac.wordpress.org/browser/vikappointments/tags/1.2.19/site/helpers/libraries/customfields/types/file.php#L53",[56,62],[],{"url":69,"sources":70,"tags":71},"https://plugins.trac.wordpress.org/browser/vikappointments/tags/1.2.19/site/helpers/libraries/customfields/types/file.php#L131",[56,62],[],{"url":73,"sources":74,"tags":75},"https://plugins.trac.wordpress.org/browser/vikappointments/tags/1.2.19/site/controllers/confirmapp.php#L88",[56,62],[],{"url":77,"sources":78,"tags":79},"https://plugins.trac.wordpress.org/browser/vikappointments/tags/1.2.19/vikappointments.php#L237",[56,62],[],{"url":81,"sources":82,"tags":83},"https://plugins.trac.wordpress.org/browser/vikappointments/tags/1.2.21/site/helpers/libraries/customfields/types/file.php#L131",[56,62],[],{"url":85,"sources":86,"tags":87},"https://plugins.trac.wordpress.org/browser/vikappointments/tags/1.2.21/site/helpers/libraries/customfields/types/file.php#L53",[56,62],[],{"url":89,"sources":90,"tags":91},"https://plugins.trac.wordpress.org/browser/vikappointments/tags/1.2.21/site/controllers/confirmapp.php#L88",[56,62],[],{"url":93,"sources":94,"tags":95},"https://plugins.trac.wordpress.org/browser/vikappointments/tags/1.2.21/vikappointments.php#L237",[56,62],[],{"url":97,"sources":98,"tags":99},"https://plugins.trac.wordpress.org/changeset?reponame=&old=3721264%40vikappointments&new=3721264%40vikappointments",[56,62],[],[],{"date":102,"score":52,"percentile":103},"2026-10-03",0.57736,[105],{"date":102,"score":52,"percentile":103},[107,112],{"source":56,"cvss_v2_0":9,"cvss_v3_0":9,"cvss_v3_1":108,"cvss_v4_0":9},{"baseScore":54,"baseSeverity":109,"vectorString":57,"impactScore":110,"exploitabilityScore":111},"CRITICAL",8.7,10,{"source":62,"cvss_v2_0":9,"cvss_v3_0":9,"cvss_v3_1":113,"cvss_v4_0":9},{"baseScore":54,"baseSeverity":109,"vectorString":57,"impactScore":110,"exploitabilityScore":111},[115],{"ecosystem":9,"name":116,"vendor":117,"product":118,"cpe_part":119,"purl_type":9,"purl_namespace":9,"purl_name":9,"source":9,"versions":120},"VikAppointments Services Booking Calendar","e4jvikwp","vikappointments services booking calendar","a",[121],{"version":122,"is_range":123,"range_type":56,"version_start":9,"version_start_type":9,"version_end":124,"version_end_type":125,"fixed_in":9},"\u003C= 1.2.21",true,"1.2.21","including"]