{
 "id": "WPSEC-2026-1459",
 "url": "https://wpsec.com/vuln/WPSEC-2026-1459/",
 "json_url": "https://wpsec.com/vuln/WPSEC-2026-1459/advisory.json",
 "markdown_url": "https://wpsec.com/vuln/WPSEC-2026-1459/index.md",
 "title": "Easy Appointments <= 4.0.3 - Unauthenticated Authentication Bypass via Forgeable Legacy Appointment Action Token",
 "description": "The Easy Appointments plugin for WordPress is vulnerable to authentication bypass via the email action links (confirm/cancel) in version 4.0.3, due to a backward-compatible token fallback in validate_token() that accepts an MD5 hash of a salt hardcoded in the plugin, the appointment's creation timestamp and the action, with no limit on failed attempts. This makes it possible for unauthenticated attackers who know or guess an appointment ID and its creation time to forge valid tokens and confirm or cancel other customers' appointments.",
 "plugin": {
  "slug": "easy-appointments",
  "name": "Easy Appointments",
  "full_name": "Easy Appointments",
  "wordpress_org": "https://wordpress.org/plugins/easy-appointments/",
  "advisories_url": "https://wpsec.com/vuln/plugin/easy-appointments/",
  "attacksurface": "https://attacksurface.wpsec.com/plugin/easy-appointments"
 },
 "type": "AUTHBYPASS",
 "cwe": [
  "CWE-330"
 ],
 "cve": [],
 "cvss": {
  "version": "3.1",
  "score": 3.7,
  "vector": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N",
  "severity": "Low"
 },
 "affected": {
  "ranges": [
   {
    "from": "4.0.3",
    "from_inclusive": true,
    "to": "4.0.4",
    "to_inclusive": false
   }
  ],
  "text": [
   "from 4.0.3 before 4.0.4"
  ]
 },
 "introduced_in": "4.0.3",
 "fixed_in": "4.0.4",
 "remediation": "Update to 4.0.4 or later.",
 "fix_released": "2026-10-21T13:27:17+00:00",
 "published": "2026-10-22T13:52:08+00:00",
 "updated": "2026-10-22T10:09:29.696908+00:00",
 "also_published_as": null,
 "references": [
  "https://wpsec.com/vuln/WPSEC-2026-1459/",
  "https://plugins.svn.wordpress.org/easy-appointments/tags/4.0.4/",
  "https://wordpress.org/plugins/easy-appointments/"
 ],
 "attacksurface_url": "https://attacksurface.wpsec.com/plugin/easy-appointments",
 "source": "WPSec",
 "license": {
  "name": "CC BY 4.0",
  "url": "https://creativecommons.org/licenses/by/4.0/"
 },
 "usage": {
  "plugin": "Low",
  "affected_versions": "None seen",
  "as_of": "2026-10-22"
 }
}