CVE-2026-3360
Received Received - Intake
Insecure Direct Object Reference in Tutor LMS Plugin Allows Profile Overwrite

Publication date: 2026-04-10

Last updated on: 2026-04-10

Assigner: Wordfence

Description
The Tutor LMS – eLearning and online course solution plugin for WordPress is vulnerable to an Insecure Direct Object Reference in all versions up to, and including, 3.9.7. This is due to missing authentication and authorization checks in the `pay_incomplete_order()` function. The function accepts an attacker-controlled `order_id` parameter and uses it to look up order data, then writes billing fields to the order owner's profile (`$order_data->user_id`) without verifying the requester's identity or ownership. Because the Tutor nonce (`_tutor_nonce`) is exposed on public frontend pages, this makes it possible for unauthenticated attackers to overwrite the billing profile (name, email, phone, address) of any user who has an incomplete manual order, by sending a crafted POST request with a guessed or enumerated `order_id`.
CVSS Scores
EPSS Scores
Probability:
Percentile:
Meta Information
Published
2026-04-10
Last Modified
2026-04-10
Generated
2026-05-07
AI Q&A
2026-04-10
EPSS Evaluated
2026-05-05
NVD
EUVD
Affected Vendors & Products
Showing 1 associated CPE
Vendor Product Version / Range
tutor_lms tutor_lms to 3.9.7 (inc)
Helpful Resources
Exploitability
CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-862 The product does not perform an authorization check when an actor attempts to access a resource or perform an action.
Attack-Flow Graph
AI Powered Q&A
Can you explain this vulnerability to me?

The vulnerability in Tutor LMS, a WordPress plugin for eLearning, is an Insecure Direct Object Reference (IDOR) affecting all versions up to 3.9.7. It occurs because the function pay_incomplete_order() does not properly check authentication or authorization.

This function accepts an attacker-controlled order_id parameter to look up order data and then writes billing information to the order owner's profile without verifying the requester's identity or ownership.

Since the Tutor nonce (_tutor_nonce) is publicly exposed on frontend pages, an unauthenticated attacker can send a crafted POST request with a guessed or enumerated order_id to overwrite billing details (such as name, email, phone, and address) of any user who has an incomplete manual order.


How can this vulnerability impact me? :

This vulnerability allows an unauthenticated attacker to modify the billing profile information of any user with an incomplete manual order in Tutor LMS.

Specifically, attackers can overwrite sensitive billing fields such as name, email, phone number, and address without authorization.

This can lead to data integrity issues, user confusion, potential fraud, and unauthorized manipulation of user profiles.


How does this vulnerability affect compliance with common standards and regulations (like GDPR, HIPAA)?:

This vulnerability allows unauthenticated attackers to overwrite billing profile information (such as name, email, phone, and address) of any user with an incomplete manual order by exploiting missing authentication and authorization checks.

Because it involves unauthorized modification of personal and billing data, this could lead to violations of data protection regulations like GDPR and HIPAA, which require strict controls over personal data access and integrity.

Specifically, the exposure of personal data to unauthorized modification may compromise data integrity and user privacy, potentially resulting in non-compliance with these standards.


How can this vulnerability be detected on my network or system? Can you suggest some commands?

This vulnerability involves an insecure direct object reference in the Tutor LMS plugin, where an attacker can send a crafted POST request with a guessed or enumerated order_id to overwrite billing profiles without authentication.

To detect exploitation attempts on your network or system, you should monitor for unusual POST requests targeting the pay_incomplete_order() function endpoint, especially those containing order_id parameters that do not belong to the authenticated user.

Commands to help detect such activity could include inspecting web server logs for suspicious POST requests with order_id parameters or using network monitoring tools to filter HTTP POST traffic to the affected plugin endpoints.

  • Use grep or similar tools on web server logs to find POST requests with order_id parameters, e.g.: grep 'POST' /var/log/apache2/access.log | grep 'order_id='
  • Use network packet capture tools like tcpdump or Wireshark to filter HTTP POST requests to the plugin URL and analyze for unusual or repeated order_id values.

What immediate steps should I take to mitigate this vulnerability?

Immediate mitigation steps include updating the Tutor LMS plugin to a version later than 3.9.7 where this vulnerability is fixed.

If an update is not immediately possible, restrict access to the vulnerable function by implementing additional authentication or authorization checks at the web server or application level.

Additionally, monitor and block suspicious POST requests that attempt to manipulate order_id parameters, and consider temporarily disabling manual order processing features if feasible.


Ask Our AI Assistant
Need more information? Ask your question to get an AI reply (Powered by our expertise)
0/70
EPSS Chart