☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ VENDOR STATS ]
CVSS: 7.1 CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:L 🐛 CWE-79
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2026-81798

CVE-2026-81798 Cross-Site Scripting in Easy
📅 PUBLISHED: 2026-09-08 00:00 UTC 🔄 UPDATED: 2026-09-09 00:00 UTC
[ ZERO-DAY / UNPATCHED ] [ DEFENSE PATCH ↓ ]
💣 PoC: Public
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.15%
👁️
0.15% probability
3.6× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1059.007
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
VULNERABLE: UNKNOWN / CHECK VENDOR
CVSS VECTOR BREAKDOWN 7.1
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: N Privileges Required None
UI: R User Interaction Required
S: C Scope Changed
C: L Confidentiality Low
I: L Integrity Low
A: L Availability Low
7.1
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-81798 is a DOM-Based Cross-Site Scripting (XSS) vulnerability affecting the Easy Appointments web application through version 4.0.2.1. DOM-Based XSS occurs when client-side JavaScript processes attacker-controllable data (typically from location.hash, document.referrer, window.name, or URL query parameters) and writes it into an unsafe DOM sink such as innerHTML, document.write, or eval. The vulnerability requires user interaction — a victim must visit a crafted URL — and carries a CVSS score of 7.1 (High) with a network attack vector and no privileges required. Because the vendor has issued no patch and no workarounds are documented, all deployments running version 4.0.2.1 or earlier remain exposed. Enterprise environments using Easy Appointments for consumer-facing scheduling should treat this as a high-priority risk until remediation is available.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Technical Analysis

The NVD description classifies this vulnerability under CWE-79 (Improper Neutralization of Input During Web Page Generation), specifically identifying the flaw as a DOM-Based XSS. This is a client-side injection class distinct from reflected or stored XSS: the flaw resides not in server-side rendering but in the application's JavaScript that reads data from the browser's DOM and re-inserts it without sanitization.

Vulnerability mechanism (class-level): In a DOM-Based XSS scenario, the application's JavaScript commonly performs the following pattern:

unsafe_sink(location.hash / location.search / document.referrer / window.name)

An attacker crafts a URL containing JavaScript in a fragment or query value. When the victim loads the URL, the application's client-side code extracts that value and passes it to a dangerous sink — e.g., element.innerHTML = attacker_data, document.write(attacker_data), eval(some_attr), or jQuery.html(). The injected code executes within the origin of the Easy Appointments application, enabling the attacker to operate with the session's privileges.

Attack surface: The attack surface is the frontend JavaScript of the Easy Appointments booking interface and administrative console, reachable by unauthenticated users (CVSS:PR:N). The UI:R component in the CVSS vector confirms that successful exploitation requires the victim to click or otherwise interact with a maliciously crafted link. The vector's S:C component (Scope: Changed) indicates the injected script can affect resources beyond the vulnerable component's security context — a consequence of DOM manipulation extending to the full application origin.

Affected component boundaries: Easy Appointments is an open-source appointment scheduling platform commonly self-hosted on Apache/Nginx with PHP. The application's frontend heavily relies on client-side rendering for the booking wizard, calendar widgets, and customer-facing forms. These JavaScript-heavy flows are the most probable locus of the DOM XSS, though the NVD description provides insufficient specific technical detail (no function names, file paths, or parameter names) to confirm exact sink locations.

Data available is insufficient to map the exact vulnerable function or code path. No patch evidence (0/4 confidence), no vendor advisory, and no public exploit or PoC are available from any tracked source at the time of writing. The description does not disclose whether the flaw exists in the customer booking flow, the WordPress plugin integration, the standalone PHP application, or the admin panel.

Exploitation Scenarios

No public PoC or exploit code exists for CVE-2026-81798. The following attack chain is inferred from the vulnerability class (DOM-Based XSS) and the disclosed CVSS vector.

Step 1 — Reconnaissance and target identification: The attacker scans the internet for self-hosted Easy Appointments instances. Common detection approaches include HTTP fingerprinting of the application's login page, booking wizard structure, or JavaScript bundle filenames — any exposed asset signature that distinguishes Easy Appointments. The attacker then confirms the version is 4.0.2.1 or earlier (the affected range) via meta tags, release notes in the admin panel, changelog endpoints, or observable feature differences. Version confirmation is important because the vulnerability remains unpatched, meaning version checking only narrows the pool of reachable vulnerable assets.

Step 2 — Triggering the DOM-based flaw: The attacker crafts a malicious URL pointing to the Easy Appointments instance. The URL contains a payload within a DOM source that the application's JavaScript processes unsafely — examples of such sources include the URL fragment (#), the search (?) portion of the URL, or a document.referrer value. Because DOM-Based XSS does not require server-side reflection of the payload, the server may never 'see' the malicious content; the payload only exists in the client's browser context.

Step 3 — Payload delivery and execution (class level): The attacker must deliver the crafted URL to a victim — typically via phishing email, social engineering, a link embedded in a message, or by injecting the URL as a link on a third-party site the victim trusts. When the victim (an employee using the booking admin panel or a customer using the booking wizard) clicks the link, the application's client-side JavaScript reads the malicious data from the DOM source and writes it to a DOM sink without neutralization. The payload — typically a small JavaScript snippet — executes in the context of the Easy Appointments origin, inheriting the victim's session and security context. Since the CVSS scope is changed (S:C), the script may also interact with the broader origin, including co-hosted assets if the application is deployed on a shared domain.

Step 4 — Post-exploitation impact: Once script execution is achieved, real-world impact vectors include: session hijacking via document.cookie exfiltration (if cookies are not HttpOnly), CSRF-protected admin actions performed on behalf of the victim, defacement of the booking interface, credential phishing via injected login overlays, and data theft from the DOM (e.g., appointment records, customer PII, or API tokens stored client-side). Given the CVSS impact subscores (Confidentiality: Low, Integrity: Low, Availability: Low), the likely impact is limited but real — a victim-hijacked session can expose appointment data and enable further lateral action within the application.

Accuracy note: No public PoC exists; the specific code path, payload syntax, and affected sink are not disclosed. The above is the canonical DOM-Based XSS kill chain, not a step-by-step reproduction of a verified exploit.

Impact Assessment

Business impact: Easy Appointments is used by small-to-medium businesses, clinics, salons, consultancies, and other service organizations to manage bookings and customer data. A DOM XSS in this context impacts both the business operator (who accesses admin scheduling panels) and the end customer (who books appointments). The CVSS 7.1 rating reflects a high-severity, network-exploitable, no-authentication-required vulnerability balanced by the requirement for user interaction.

Affected systems: All Easy Appointments deployments running version 4.0.2.1 and earlier. The affected-version range is given as "n/a through 4.0.2.1," meaning every release up to and including 4.0.2.1 is vulnerable. Without a patch, no version is currently immune.

Blast radius: The CVSS vector (AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:L) maps as follows:

  • Confidentiality impact (Low): The attacker can read data visible to the victim's DOM — appointments, customer names, contact details, possibly API keys or tokens stored in the page.
  • Integrity impact (Low): The attacker can modify page content and perform in-session actions such as creating, altering, or cancelling appointments.
  • Availability impact (Low): The attacker can disrupt the booking interface, redirect users, or degrade the service experience.
  • Scope change (S:C): The script can affect resources beyond the immediate vulnerable component, complicating isolation for security tooling.

The overarching risk is data-privacy exposure in an application that by its very function processes PII (customer names, contact info, appointment details). For businesses operating under GDPR, HIPAA, or similar regimes, a successful exploit that exfiltrates customer booking data constitutes a reportable breach scenario.

Detection Guidance

Detection for DOM-Based XSS is substantially harder than for reflected XSS because the malicious payload never traverses the network in a predictable server-response pattern — the payload exists only in the client's browser. Network-level detection must focus on two choke points: (1) delivery of the crafted URL to end users, and (2) post-execution callback traffic from the compromised browser. Endpoint/EDR detection should monitor the browser process for anomalous DOM mutations and outbound requests.

Sigma Rule

The following Sigma rule detects HTTP requests to Easy Appointments pages that carry XSS indicators in the query string or hash. Because the browser never sends the fragment to the server, this rule focuses on query-string payloads and on the callback (exfiltration) side, where the victim's browser issues requests to attacker-controlled domains.

title: Easy Appointments DOM XSS Payload in URL Query
id: c2f3a1e9-8c7b-4a1f-9d3e-2b6c8e1f5a7d
status: experimental
description: Detects crafted URLs targeting Easy Appointments endpoints carrying DOM XSS payload indicators in the query string.
references:
    - https://nvd.nist.gov/vuln/detail/CVE-2026-81798
author: Valtersit Threat Intelligence
date: 2026/06/25
logsource:
    category: proxy
    product: generic
detection:
    selection_paths:
        - url.path|contains:
            - 'easyappointments'
            - 'easy-appointments'
    selection_payload:
        - url.query|contains:
            - '<script'
            - 'javascript:'
            - 'onerror='
            - 'onload='
            - 'alert('
            - 'innerHTML'
            - 'document.cookie'
            - 'fetch('
    condition: selection_paths and selection_payload
level: high
falsepositives:
    - Internal researches using XSS payloads in a sandboxed environment.
    - Very low likelihood of legitimate traffic containing these strings.

YARA Rule

YARA is best applied to (a) web server access logs or WAF logs that have captured malicious request strings, or (b) PDF/HTML artifacts used in phishing campaigns to deliver the malicious link. This rule targets the latter — detecting HTML email attachments or downloaded HTML files containing links to Easy Appointments endpoints fused with XSS payloads.

rule CVE_2026_81798_EasyAppointments_DOM_XSS_Delivery {
    meta:
        author = "Valtersit Threat Intelligence"
        description = "Detects HTML artifacts containing crafted URLs to Easy Appointments with DOM XSS payload patterns"
        cve = "CVE-2026-81798"
        date = "2026-06-25"
        severity = "high"
    strings:
        // Easy Appointments path indicators
        $path1 = "easyappointments" ascii wide nocase
        $path2 = "easy-appointments" ascii wide nocase
        $path3 = "/booking" ascii wide nocase
        // DOM XSS source/sink indicators
        $xss1 = "location.hash" ascii wide
        $xss2 = "location.search" ascii wide
        $xss3 = "document.referrer" ascii wide
        $xss4 = "window.name" ascii wide
        $xss5 = "innerHTML" ascii wide
        $xss6 = "eval(" ascii wide
        $xss7 = "javascript:" ascii wide nocase
        // Exfiltration indicators embedded in payloads
        $exfil1 = "fetch(" ascii wide
        $exfil2 = "XMLHttpRequest" ascii wide
        $exfil3 = "document.cookie" as wide
    condition:
        uint16(0) == 0x3C3C or  // << (unlikely)
        uint16(0) == 0x4D5A or  // MZ (PE file)
        1 of ($path*) and any of ($xss*) and any of ($exfil*)
}

Suricata IDS Rule

Network detection of DOM-Based XSS is limited. This Suricata rule targets the delivery side — HTTP responses from Easy Appointments servers that include JavaScript referencing DOM sources frequently abused in this vulnerability class — and the subsequent callback traffic carrying session cookies or PII to external hosts.

alert http any any -> any any (msg:"CVE-2026-81798 - Easy Appointments DOM XSS delivery page with suspicious JS sink pattern"; flow:established,to_client; http.response_body; content:"easyappointments"; nocase; content:"location.hash"; nocase; content:"innerHTML"; nocase; within:5000; reference:cve,2026-81798; classtype:web-application-attack; sid:202681798001; rev:1;)

Note: False positives are expected because location.hash and similar patterns are common in SPA (single-page application) frameworks. Tune by pairing with server-side version fingerprinting and by inspecting the sink usage context.

Elastic Detection

The following EQL rule (Elastic Query Language) detects browser-process activity indicative of DOM XSS exploitation — specifically anomalous outbound network connections from a browser that immediately follow the loading of an Easy Appointments booking page. It is designed to run in the Elastic Endpoint (formerly Endgame) or Auditbeat + Winlogbeat environment.

sequence by process.entity_id with maxspan=30s
  [network where process.name == "chrome.exe" or process.name == "firefox.exe" or
     process.name == "msedge.exe" and
     network.direction == "outbound" and
     url.path in ("/booking", "/login", "/admin") or
     url.domain in ("<SIEM-domain-pattern>")] // Tune per org perimeter
  [network where process.name == "chrome.exe" or process.name == "firefox.exe" or
     process.name == "msedge.exe" and
     network.direction == "outbound" and
     (network.protocol == "http" or network.protocol == "https") and
     not destination.domain in ("<internal-domains>") and
     url.path != "" and
     // match known C2 or exfil patterns if known, otherwise generic external POST
     network.direction == "outbound" and
     process.executable != ""]

Splunk SPL Query

This query searches web access logs and endpoint process telemetry. It targets requests to Easy Appointments paths that contain dangerous characters or XSS payload signatures. This is best deployed on an HTTP proxy index.

index=web OR index=proxy
  (uri_path="*/easyappointments*" OR uri_path="*/easy-appointments*" OR uri_path="*/booking*")
  AND (
    uri_query="*<script*" OR
    uri_query="*javascript:*" OR
    uri_query="*onerror=*" OR
    uri_query="*onload=*" OR
    uri_query="*alert(*" OR
    uri_query="*innerHTML*" OR
    uri_query="*document.cookie*" OR
    uri_query="*fetch(*"
  )
  | stats count by src_ip, dest_ip, uri_path, uri_query, user, _time
  | sort - _time

For DOM XSS post-exploitation detection, index browser telemetry if available (via Sysmon/EDR) and search for browser-originated connections to domains not on the internal allowlist:

index=endpoint sourcetype=sysmon
  EventCode=3
  Image="*chrome.exe" OR Image="*firefox.exe" OR Image="*msedge.exe"
  NOT DestinationHostname IN ("*.internal", "*.local", "<internal-domain>")
  | table _time, host, user, Image, DestinationHostname, DestinationPort, SourceIp
  | sort - _time

Wazuh OSSEC Rule

This Wazuh XML rule detects HTTP access-log entries that match XSS payload patterns targeting Easy Appointments endpoints. Place in custom ruleset and map as a web-application-attack.

<group name="web, attack, xss,">
  <rule id="100817" level="10">
    <decoded_as>web</decoded_as>
    <match>easyappointments|easy-appointments|appointments</match>
    <regex>(\&lt;script|javascript:|onerror=|onload=|alert\(|innerHTML|document\.cookie|fetch\()</regex>
    <description>CVE-2026-81798 - Easy Appointments DOM XSS payload detected in web request</description>
    <mitre>
      <id>T1059.007</id>
    </mitre>
    <group>web_application_attack</group>
  </rule>
</group>

Mitigation & Patch Guidance

Patch confidence is 0/4 — this vulnerability is UNPATCHED. No vendor advisory, no fixed release, and no patch commit have been identified from any tracked source. The affected range is all Easy Appointments versions through 4.0.2.1, and no patched version exists at the time of writing.

1. Immediate mitigations (no patch available):

  • Restrict access to the Easy Appointments admin panel and booking interface to trusted networks or VPN — if the application is used only by known staff, block public internet access via firewall rules or authenticated reverse proxy.
  • Deny/alert on outbound connections from browsers to non-approved external domains on the clients that access the application (via EDR or proxy egress controls), limiting the exfiltration potential of a successful DOM XSS.
  • Harden browser configurations on endpoints that access the app: enable X-XSS-Protection: 0 (modern guidance favors CSP over legacy XSS auditor; see below), enforce Content-Security-Policy headers at the reverse proxy in front of the application if possible to restrict inline script execution.
  • Educate users about the risk of clicking links with unusual parameters pointing to the scheduling application; implement URL-scanning on inbound email.
  • Monitor logs and endpoint telemetry per the detection rules above.

2. Patch/upgrade steps:

  • Monitor the vendor's official release channel for a version newer than 4.0.2.1. As of this report, none exists. Do not assume that future 4.0.x releases contain the fix; verify release notes for CVE-2026-81798 or DOM XSS remediations.
  • If using a third-party distribution of Easy Appointments (e.g., a WordPress plugin wrapper), track the distribution's patching cadence; a fix may be delivered via a plugin update even if the underlying project has not yet released.

3. Long-term hardening:

  • Adopt a Content Security Policy (CSP) — served from the reverse proxy or the application — that disables inline script execution where feasible. While DOM-Based XSS can be difficult to fully mitigate with CSP alone (because the flaw is in the sink, not the source), a strong CSP with object-src 'none', script-src 'self', and restrictive script-src-elem can block many DOM XSS payloads.
  • Require HttpOnly and Secure flags on all session cookies; this blocks cookie theft even if script execution is achieved. Since the affected sink is DOM-based and the injected script runs in the page origin, HttpOnly cookies protect against the session-hijacking variant but not against in-page actions using existing session context.
  • Input validation and output encoding are the permanent fix on the application side — the vendor must sanitize data before it writes to DOM sinks. As a consumer, this means tracking the vendor's release notes and applying updates promptly once issued.
  • Consider standard audit of the application's JavaScript for DOM-sink usage (innerHTML, document.write, eval, setTimeout/setInterval with string arguments, jQuery.html, etc.) if you have license and source-access flexibility.

References

  1. NVD Entry for CVE-2026-81798 — https://nvd.nist.gov/vuln/detail/CVE-2026-81798 — National Vulnerability Database primary source; current state: published with CVSS 7.1, no vendor advisory linked.
  2. Easy Appointments official project page — monitor https://easyappointments.org (or the open-source repository landing page) for future release notes addressing this CVE. As of this report, no advisory is published.
  3. MITRE CWE-79 — Improper Neutralization of Input During Web Page Generation — https://cwe.mitre.org/data/definitions/79.html — Taxonomy reference for the XSS vulnerability class.
  4. OWASP DOM Based XSS Prevention Cheat Sheet — https://cheatsheetseries.owasp.org/cheatsheets/DOM_based_XSS_Prevention_Cheat_Sheet.html — Mitigation guidance for application developers and hardening reference for security teams assessing residual risk.
  5. CISA Known Exploited Vulnerabilities Catalog — https://www.cisa.gov/known-exploited-vulnerabilities-catalog — CVE-2026-81798 is NOT listed; no evidence of exploitation in the wild has been reported to CISA or any tracked source at the time of writing.

Threat-actor campaign activity: None identified. No exploit code, no Nuclei template, and no public research write-ups exist for this CVE at the time of this report. The vulnerability is unpatched but not confirmed exploited; risk is mitigated by the UI:R (user interaction) requirement but elevated by the high prevalence of self-hosted booking platforms as phishing-adjacent targets.

👁️ SHODAN DORKS (THREAT HUNTING)

What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.

product:"Easy"
title:"Easy"

💣 PoC CODE AVAILABLE

Exploit code for this CVE is tracked in our database. Access poc_code via API Pro.

[ API_PRO ] →
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-81798/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.