CVE-2026-39756
Executive Summary
CVE-2026-39756 is an unauthenticated Insecure Direct Object Reference (IDOR) vulnerability in the Wappointment WordPress plugin affecting all versions up to and including 2.7.7. The flaw allows a remote, unauthenticated attacker to access or manipulate objects belonging to other users by supplying or modifying object identifiers, because authorization checks are absent or insufficient on a network-reachable endpoint. Successful exploitation yields unauthorized read and limited write access to data within the plugin's scope (CVSS 6.5, C:L/I:L), a meaningful confidentiality and integrity risk for sites using Wappointment for appointment booking and client records.
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.
No signup required
Technical Analysis
Wappointment is a WordPress booking/appointment scheduling plugin. The vulnerability is classified as CWE-639: Authorization Bypass Through User-Controlled Key — the IDOR class. Per the NVD description, the flaw is unauthenticated, meaning the vulnerable functionality is reachable without any WordPress login, REST nonce, or session cookie. The CVSS vector (AV:N/AC:L/PR:N/UI:N) confirms remote exploitability with no privileges or user interaction required.
In an IDOR of this class, the application exposes an object reference (for example, a numeric or predictable identifier such as an appointment, staff member, client, or order ID) to an incoming request and uses that identifier to retrieve or modify a record without verifying that the requester is authorized for that specific object. Because the check is missing at the object-authorization layer rather than the authentication layer, the endpoint is reachable anonymously, and any valid identifier returns or alters the referenced record regardless of ownership.
The confidentiality and integrity impact is rated Low (C:L/I:L) under CVSS, indicating the exposed objects are a scoped data set rather than full-site administrative control. Availability impact is None (A:N). No specific endpoint paths, parameter names, class names, or code locations are disclosed in the NVD description or CNA title provided, so the precise request format and object type cannot be stated with certainty. The attack surface is the plugin's publicly reachable HTTP handling on WordPress sites where Wappointment is active and exposed.
Exploitation Scenarios
No public proof-of-concept, exploit code, or Nuclei template exists for this CVE. The attack chain below is described at the vulnerability-class level, consistent with the information available.
Reconnaissance / target identification: An attacker enumerates internet-facing WordPress sites and fingerprints those running the Wappointment plugin at version 2.7.7 or below. Fingerprinting can be performed via HTML source references to the plugin, version-disclosing readme or asset paths, or search-engine/Shodan queries keyed on Wappointment artifacts.
Triggering the flaw: The attacker sends unauthenticated HTTP requests to the plugin's publicly reachable functionality and supplies or iterates predictable object identifiers (IDOR). Because no authentication and no per-object authorization check are enforced, the server processes the request and returns or acts upon the referenced object.
Payload / execution: At the vulnerability-class level, exploitation consists of manipulating the object-reference value in the request (e.g., incrementing or substituting an identifier) to access records that belong to other users. No specific parameter or endpoint name is available from the provided data, and none is asserted here. The attacker requires no credentials and no victim interaction.
Post-exploitation impact: The attacker obtains unauthorized read access to scoped records and, given the Low integrity impact, may be able to alter referenced objects. This can expose booking/client data and, in integrity terms, permit tampering with the affected objects. Escalation beyond this scoped data set is not indicated by the CVSS subscores.
Impact Assessment
Business impact centers on unauthorized disclosure and tampering of appointment/booking-related data. CVSS subscores: AV:N (remotely exploitable), AC:L (no special conditions), PR:N (no authentication required), UI:N (no victim interaction), S:U (impact confined to the vulnerable component's security scope), C:L / I:L (limited confidentiality and integrity impact), A:N (no availability impact). Base score 6.5 (Medium).
Blast radius: any WordPress installation with an active, exposed Wappointment plugin at <= 2.7.7. Because the endpoint is unauthenticated, the effective attacker population is any internet host that can reach the site — no valid account is a prerequisite. The scoped nature (C:L/I:L) bounds the direct impact to the plugin's data domain, but disclosed records (e.g., client contact details, appointment metadata) carry privacy and, potentially, regulatory implications depending on the data held. The plugin has not been added to the CISA KEV catalog, and no exploit-in-the-wild campaign is documented in the provided data. EPSS has not yet scored this CVE by FIRST.org; no EPSS value is asserted here.
Detection Guidance
Sigma Rule
title: Potential Wappointment IDOR Object Enumeration (CVE-2026-39756)
id: 6b1c4f2e-3975-4a1b-9c7e-0000wappointment
status: experimental
description: Detects high-volume unauthenticated requests to Wappointment plugin endpoints consistent with IDOR object enumeration (all versions <= 2.7.7).
references:
- https://nvd.nist.gov/vuln/detail/CVE-2026-39756
author: valtersit.com
logsource:
category: webserver
detection:
selection_path:
cs-uri-query|contains|all:
- 'wappointment'
selection_status:
sc-status: 200
filter_static:
cs-uri-query|endswith:
- '.css'
- '.js'
- '.png'
- '.jpg'
condition: selection_path and selection_status and not filter_static
level: medium
falsepositives:
- Legitimate booking flows and caching prefetch
- Plugin asset requests not caught by the static filter
YARA Rule
rule CVE_2026_39756_Wappointment_IDOR_Enumeration
{
meta:
author = "valtersit.com"
description = "Detects likely IDOR object enumeration against Wappointment <= 2.7.7 in HTTP access logs or PCAP-derived text (CVE-2026-39756)"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2026-39756"
date = "2026-01-01"
severity = "medium"
strings:
$plugin = "wappointment" nocase
$req1 = "GET /" nocase
$req2 = "POST /" nocase
condition:
$plugin and any of ($req*)
}
Suricata IDS Rule
alert http any any -> any any (msg:"CVE-2026-39756 Possible Wappointment Unauthenticated IDOR Enumeration"; flow:established,to_server; http.uri; content:"wappointment"; nocase; http.uri; pcre:"/(\?|&)[a-z0-9_]*id=\d+/i"; http.method; content:"GET"; threshold:type both, track by_src, count 20, seconds 60; classtype:attempted-recon; reference:url,nvd.nist.gov/vuln/detail/CVE-2026-39756; sid:90039756; rev:1;)
Elastic Detection
sequence by source.ip with maxspan=60s
[http where url.path contains "wappointment" and http.response.status_code == 200] with runs=20
Splunk SPL Query
index=web sourcetype=access_combined uri_path="*wappointment*" status=200
| rex field=uri_query "(?<objid>(id|item|record)=[0-9]+)"
| where isnotnull(objid)
| stats count by clientip, uri_path, objid
| where count >= 10
| sort - count
Wazuh OSSEC Rule
<group name="web,wordpress,wappointment,">
<rule id="10039756" level="8">
<decoded_as>web-accesslog</decoded_as>
<url>wappointment</url>
<regex status="200">id=\d+</regex>
<description>CVE-2026-39756: Possible unauthenticated Wappointment IDOR enumeration</description>
<mitre>
<id>T1190</id>
</mitre>
</rule>
</group>
Mitigation & Patch Guidance
Patch confidence: 0/4 (UNPATCHED — no patch evidence from any tracked source). No vendor fix, workaround, or affected-version advisory is available in the provided data, and Wappointment has not been registered in CISA KEV.
Immediate mitigations:
- Restrict internet exposure of the Wappointment plugin functionality where operationally feasible (network ACLs, WAF rules, or reverse-proxy allowlists limiting anonymous access to booking endpoints).
- Deploy virtual patching via a WAF (e.g., ModSecurity/CRS) to rate-limit and normalize requests to Wappointment endpoints and block anomalous object-identifier iteration patterns.
- Monitor web logs for high-volume, unauthenticated, IDOR-patterned requests to plugin endpoints.
- Consider temporarily disabling the plugin if it cannot be adequately protected and is not business-critical.
Patch/upgrade steps:
- No patched version is identified. Monitor the plugin vendor's release channel and official WordPress plugin repository for a version greater than 2.7.7 and upgrade immediately upon availability.
- Where a vendor patch is not yet released, treat the deployment as vulnerable and rely on the compensating controls above.
Long-term hardening:
- Enforce server-side per-object authorization checks on all endpoints that accept client-supplied identifiers; never rely on predictability alone for protection.
- Adopt centralized object-authorization patterns and code review focused on CWE-639.
- Maintain an inventory of WordPress plugins and their versions; track vulnerability advisories and apply updates rapidly.
- Log and alert on enumeration behavior; integrate web-log detections into the SIEM.
References
- NVD — CVE-2026-39756: https://nvd.nist.gov/vuln/detail/CVE-2026-39756
- CWE-639: Authorization Bypass Through User-Controlled Key: https://cwe.mitre.org/data/definitions/639.html
- MITRE ATT&CK T1190 — Exploit Public-Facing Application: https://attack.mitre.org/techniques/T1190/
- Wappointment official plugin page / WordPress plugin repository (monitor for patched release): https://wordpress.org/plugins/wappointment/
- FIRST EPSS (not yet scored as of this report; monitor for scoring): https://www.first.org/epss/
Note: No public PoC, exploit code, or Nuclei template is available; no exploit-in-the-wild campaign or threat-actor attribution is documented for this CVE in the provided data.
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.