REPORT / 01
Analysis Report · Folder Analysis cache/tutor_3.9.3 → cache/tutor_3.9.4 — CVE-2025-13628
Shared security patch analysis results
02 ·
Lifecycle actions
cancel · resume · skip · regenerate
03 ·
Share this analysis
copy link · embed report
03 ·
CVE Security Analysis & Writeups
ai-generated · per cve
Comprehensive security analysis generated by AI for each confirmed CVE match. Click on a CVE to view the detailed writeup including vulnerability background, technical details, patch analysis, and PoC guide.
CVE-2025-13628
NVD
AI-Generated Analysis
05 ·
Findings
filter · search · paginate
Showing 0 to 0 of 0 results
ecommerce/CouponController.php
AI: 1 vulnerabilities
1 true positive
CVE-2025-13628
--- cache/tutor_3.9.3/ecommerce/CouponController.php 2026-01-09 00:38:03.500150409 +0000+++ cache/tutor_3.9.4/ecommerce/CouponController.php 2026-01-09 00:39:33.457629644 +0000@@ -577,10 +577,7 @@ */ public function bulk_action_handler() { tutor_utils()->checking_nonce();-- if ( ! current_user_can( 'manage_options' ) ) {- tutor_utils()->error_message();- }+ tutor_utils()->check_current_user_capability(); // Get and sanitize input data. $request = Input::sanitize_array( $_POST ); //phpcs:ignore --sanitized already@@ -630,9 +627,7 @@ public function coupon_permanent_delete() { tutor_utils()->checking_nonce(); - if ( ! current_user_can( 'manage_options' ) ) {- tutor_utils()->error_message();- }+ tutor_utils()->check_current_user_capability(); // Get and sanitize input data. $id = Input::post( 'id', 0, Input::TYPE_INT );
AI Analysis
I'll analyze this code diff for security fixes.
Vulnerability Existed: yes
TRUE POSITIVE
[Improper Authorization Check] - [CWE-862] - [ecommerce/CouponController.php] [Lines 580-583, 630-633]
Old Code:
```php
if ( ! current_user_can( 'manage_options' ) ) {
tutor_utils()->error_message();
}
```
Fixed Code:
```php
tutor_utils()->check_current_user_capability();
```
Explanation:
The old code had a critical authorization bypass vulnerability. When the authorization check failed (user did not have 'manage_options' capability), the code only called `error_message()` but then **continued execution** of the subsequent function logic. This is a classic authorization bypass - the function would proceed to process the bulk action or permanent delete operation even though the user was not authorized.
The fix replaces this with a call to `tutor_utils()->check_current_user_capability()`, which appears to be a centralized authorization check that likely terminates execution with an error response when the capability check fails, preventing unauthorized operations from proceeding.
This vulnerability affected two methods:
1. `bulk_action_handler()` - could allow unauthorized bulk coupon operations
2. `coupon_permanent_delete()` - could allow unauthorized coupon deletion
The impact is **high severity** as it allows privilege escalation and unauthorized data modification/deletion operations.
CVE Analysis Results:
CVE-2025-13628: Yes
View CVE Description
The Tutor LMS – eLearning and online course solution plugin for WordPress is vulnerable to unauthorized modification and deletion of data due to a missing capability check on the 'bulk_action_handler' and 'coupon_permanent_delete' functions in all versions up to, and including, 3.9.3. This makes it possible for authenticated attackers, with subscriber level access and above, to delete, activate, deactivate, or trash arbitrary coupons.
Showing 1 to 1 of 1 results