| Plugin Name | Awesome Support |
|---|---|
| Type of Vulnerability | Broken Authentication |
| CVE Number | CVE-2026-4654 |
| Urgency | Medium |
| CVE Publish Date | 2026-04-08 |
| Source URL | CVE-2026-4654 |
Critical Notice for WordPress Sites: Awesome Support <= 6.3.7 — Authenticated Subscriber IDOR (CVE-2026-4654)
Summary: On 8 April 2026 a security researcher disclosed an authenticated broken authentication / insecure direct object reference (IDOR) in the Awesome Support WordPress plugin versions up to and including 6.3.7. Tracked as CVE-2026-4654 (Medium, CVSS 5.3), the flaw allows an authenticated Subscriber to access or post replies to tickets they do not own by manipulating the ticket_id parameter.
Important short summary
- Affected software: Awesome Support plugin for WordPress, versions ≤ 6.3.7
- Patched in: 6.3.8
- CVE: CVE-2026-4654
- Required privilege: Authenticated Subscriber (low privilege)
- Type: Broken Authentication / Insecure Direct Object Reference (IDOR)
- Risk level: Medium (CVSS 5.3) — widely exploitable if Subscriber accounts are permitted and support endpoints are not monitored
What is this vulnerability (high-level)?
The plugin’s ticket-reply functionality accepts a ticket_id parameter without sufficient server-side verification of ownership or authorization. As a result, any authenticated user with Subscriber privileges can specify an arbitrary ticket identifier and post replies or access ticket data that belongs to another user.
This is a classical IDOR: object identifiers are used in requests but the server does not confirm whether the requesting user is allowed to act on that object. Subscriber accounts are common on many WordPress sites (user registrations, customers, support portals), increasing the chance of practical exploitation.
Why this matters — real-world impact
Although this does not grant admin control, the practical consequences are significant:
- Low barrier to entry: Any Subscriber-level account can exploit it. Many sites permit such accounts.
- Data leakage and trust damage: Attackers can read or inject replies into tickets, exposing sensitive information or undermining customer trust.
- Phishing and social engineering: A malicious reply inside an existing ticket thread can trick staff or customers into disclosing credentials or taking harmful actions.
- Follow-on attacks: Injected replies may contain links or instructions that enable further compromise or privilege escalation.
- Automation risk: The simple
ticket_idparameter enables automated enumeration and mass-scanning across many sites.
Treat this as a high-priority remediation for any affected installation.
Who is affected?
- Any WordPress site running Awesome Support version 6.3.7 or older.
- Sites that permit at least Subscriber-level authenticated users.
- Organisations relying on support ticket content for sensitive workflows (orders, billing, customer data).
If you are unsure of your version, check the WordPress admin plugins page or examine wp-content/plugins/awesome-support (or your composer-managed plugin folder).
Disclosure and attribution
This issue was publicly disclosed in April 2026 and assigned CVE-2026-4654. Credit: Michael Iden (Mickhat), who responsibly reported the flaw. The plugin author released version 6.3.8 to address the issue.
Immediate action (for all site owners/operators)
If your site uses Awesome Support, act now:
- Update: Upgrade the plugin to 6.3.8 or later as soon as possible. This is the primary fix — the vendor patch adds proper authorization checks.
- If you cannot update immediately: Temporarily disable the plugin. If disabling is impossible, restrict access to the plugin endpoints at the server or WAF level (see mitigations below).
- Audit user roles: Review whether your site allows untrusted user registration as Subscriber. Tighten registration controls where feasible (manual approval, email verification).
- Monitor and review: Inspect recent ticket activity and logs for suspicious replies, unknown contributors, or abnormal POSTs containing
ticket_id. - Basic hardening: Enforce strong passwords and rotate credentials if suspicious activity is found; enable two‑factor authentication for admin accounts.
Updating to 6.3.8 resolves the direct flaw. If constraints prevent an immediate update, apply temporary mitigations below.
Temporary mitigations and WAF/server guidance
Because the vulnerability depends on a manipulable ticket_id parameter, targeted server or WAF controls can reduce exposure while you prepare to update. Note: such mitigations are defensive and do not replace the application fix.
- Block or challenge requests to ticket-reply endpoints originating from accounts that should not have access. If your edge controls support session-awareness, require that session user ID matches ticket owner.
- Rate-limit POSTs containing
ticket_idfrom the same IP or account (example: 5 attempts/minute) and respond with 429 or a CAPTCHA. - Detect anomalous
ticket_idvalues — flag IDs that are sequential or outside expected ranges. - Challenge or block POSTs containing
ticket_idfrom newly created Subscriber accounts or accounts with no prior interaction. - Enforce referrer/origin checks and require valid nonces on ticket reply forms; reject POSTs lacking a valid nonce.
- Blacklist abusive IPs or geolocations if abuse is concentrated, but tune conservatively to prevent false positives that break legitimate support flows.
Developer-level remediation (how the plugin should be fixed)
Developers should apply the following server-side controls:
- Verify object ownership: On any request referencing
ticket_id, fetch the ticket server-side and confirm the current user is the owner or has the required agent/staff role. - Use capability checks: Apply
current_user_can()or equivalent custom capability checks to separate customer and staff actions. - Require nonces and CSRF protection: Validate WordPress nonces for form submissions and reject invalid requests.
- Avoid enumeration leaks: Do not disclose whether a ticket ID exists to unauthorised users.
- Sanitise and validate inputs: Ensure
ticket_idmatches expected types and ranges; use prepared statements for DB queries. - Limit data returned: Return only fields authorised for the requesting user; mask sensitive values.
- Logging and auditing: Log sensitive actions with user ID and IP for admin review.
Detection and monitoring — what to look for
- Unexpected ticket replies authored by users who did not own the ticket, or by newly created accounts.
- Spikes in POST requests to ticket endpoints with
ticket_id, especially from the same IP range or new accounts. - Repeated submissions with sequential
ticket_idvalues, indicating enumeration attempts. - Reply content containing remote links, attachments, or requests for credentials.
- Web server logs showing many ticket endpoint requests shortly after a user registers or logs in.
- Customer complaints about unusual messages within existing tickets.
Retain logs for at least 30 days to support investigation and forensics.
If you suspect exploitation — incident response steps
- Isolate: Temporarily disable public ticket submission or set the ticket system to read-only. Disable the plugin if necessary.
- Preserve evidence: Collect application logs, web server logs, and database backups. Do not overwrite logs.
- Rotate credentials: Force password resets for users involved and for administrative accounts if intrusion is suspected.
- Verify scope: Identify which tickets were viewed or modified and search for follow-on activity (new admin users, modified themes/plugins).
- Scan for backdoors: Perform a malware scan of files and the database.
- Remove malicious replies: Sanitize or delete injected replies and attachments.
- Restore if needed: Consider restoring from a clean backup taken before the initial exploitation if compromise is confirmed.
- Notify affected parties: Inform impacted users if customer data was exposed and provide guidance to mitigate harm.
- Apply the patch: Update Awesome Support to 6.3.8 or later before returning to normal operations.
- Post-incident hardening: Implement stricter registration controls, logging, and detection to prevent repeat exploitation.
Document all steps and preserve a timeline for audits and any notification obligations.
Host and agency guidance
- Maintain an inventory to identify customer sites running vulnerable versions.
- Coordinate or force updates where feasible; notify customers urgently if you cannot update on their behalf.
- Apply host-level protections (edge rules, server restrictions) to block ticket-related abuse until sites are patched.
- Offer incident investigation assistance where customers are affected, and isolate compromised sites to prevent lateral movement.
- Educate customers to review ticket histories and rotate credentials as required.
Sample detection rule heuristics (conceptual)
Use these conceptual heuristics in your monitoring or WAF solution (non-executable guidance):
- Enumeration detection: Trigger when a single IP or small set of IPs POST sequential
ticket_idvalues rapidly (e.g., id=1001,1002,1003). - Non-owner reply: Trigger when a POST to the ticket-reply endpoint comes from a user who has no prior interactions with the ticket.
- Rapid volume: Trigger when ticket reply POSTs from a new account exceed a conservative threshold within an hour.
- Suspicious content: Flag replies from new accounts that include external URLs, credential requests, or binary attachments.
Tune thresholds to balance detection and false positives.
Long-term prevention and best practices
- Principle of least privilege: Grant only necessary capabilities to each role; limit Subscriber abilities where feasible.
- Harden registrations: Use email confirmation, manual approval, or other controls to reduce automatic Subscriber creation.
- Regular updates: Keep plugins, themes, and WordPress core current; prioritise security patches.
- Monitoring and alerts: Implement continuous monitoring at both application and server levels.
- Backup strategy: Maintain regular, tested backups with off-site retention.
- Plugin review: Prefer well-maintained plugins; periodically review plugin necessity and access scope.
- Security testing: Include negative authorization tests in QA and security reviews.
Why this class of flaw keeps returning
Authorization is commonly misunderstood or under-tested. Typical causes include:
- Reliance on client-supplied IDs without server-side ownership checks.
- Assuming authentication equals authorization.
- Insufficient negative authorization tests during development.
- Feature-driven releases that deprioritise access-control tests.
Developers should treat authorization as first-class and add unit/integration tests that assert unauthorised users cannot access or modify objects they should not.
For developers: quick checklist
- For every endpoint accepting an object ID, verify server-side authorization for the current user.
- Use WordPress nonces and validate them on POST requests.
- Avoid exposing object existence metadata to unauthorised users.
- Include negative authorization tests in integration suites.
- Limit role scopes for support interfaces.
- Log sensitive actions to a secure, tamper-resistant store with user, IP, and timestamp.
Final notes and recommended links
- Patch immediately to Awesome Support 6.3.8 or later — this is the primary remediation.
- Audit ticket history for suspicious replies and unknown participants.
- If you need assistance investigating or recovering, engage a trusted security professional or your hosting provider.
- Reference: CVE-2026-4654 (public advisory published April 2026; researcher: Michael Iden).
Authored with a Hong Kong security expert tone — concise, pragmatic, and prioritising rapid, measurable steps. Prioritise the vendor patch, monitor activity closely, and document any incident response actions.