REPORT / 01

Analysis Report · Folder Analysis cache/awesome-support_6.3.6 → cache/awesome-support_6.3.7 — CVE-2025-12641

Shared security patch analysis results

mode patchdiff ai claude_cli haiku
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-12641 NVD
AI-Generated Analysis
05 · Findings filter · search · paginate
Use quotes for exact: "SQL injection" · Operators: hello AND bye, admin OR root, -error, NOT warning
Showing 0 to 0 of 0 results
includes/functions-user.php AI: 1 vulnerabilities 1 true positive CVE-2025-12641
--- cache/awesome-support_6.3.6/includes/functions-user.php	2026-01-16 00:21:05.935767548 +0000+++ cache/awesome-support_6.3.7/includes/functions-user.php	2026-01-16 00:22:35.369368495 +0000@@ -1683,6 +1683,16 @@  	if( $user_id ) { +		// FIX: Add capability check+        if ( ! current_user_can( 'edit_users' ) ) {+            wp_die( __( 'You do not have permission to activate users.', 'awesome-support' ), 403 );+        }+        +        // FIX: Verify current user can edit the target user+        if ( ! current_user_can( 'edit_user', $user_id ) ) {+            wp_die( __( 'You do not have permission to edit this user.', 'awesome-support' ), 403 );+        }+ 		$role = wpas_get_option( 'moderated_activated_user_role' );  		$updated = wp_update_user( array( 'ID' => $user_id, 'role' => $role ) );
AI Analysis
Vulnerability Existed: yes
TRUE POSITIVE
Privilege Escalation / Broken Access Control - CWE-284 - includes/functions-user.php Lines 1686-1695

Old Code:
```php
if( $user_id ) {
    $role = wpas_get_option( 'moderated_activated_user_role' );
    $updated = wp_update_user( array( 'ID' => $user_id, 'role' => $role ) );
```

Fixed Code:
```php
if( $user_id ) {
    // FIX: Add capability check
    if ( ! current_user_can( 'edit_users' ) ) {
        wp_die( __( 'You do not have permission to activate users.', 'awesome-support' ), 403 );
    }
    
    // FIX: Verify current user can edit the target user
    if ( ! current_user_can( 'edit_user', $user_id ) ) {
        wp_die( __( 'You do not have permission to edit this user.', 'awesome-support' ), 403 );
    }
    
    $role = wpas_get_option( 'moderated_activated_user_role' );
    $updated = wp_update_user( array( 'ID' => $user_id, 'role' => $role ) );
```

Explanation:
The original code lacked proper authorization checks before updating a user's role. Any authenticated user could potentially activate other users and assign them roles without verifying they had permission to do so. The fix adds two critical capability checks:
1. `current_user_can( 'edit_users' )` - Ensures the current user has the general capability to edit users
2. `current_user_can( 'edit_user', $user_id )` - Verifies the current user has permission to edit the specific target user

This prevents unauthorized privilege escalation and role manipulation attacks by enforcing WordPress's built-in permission system before executing the user update operation.
CVE Analysis Results:
CVE-2025-12641: Yes
View CVE Description
The Awesome Support - WordPress HelpDesk & Support Plugin for WordPress is vulnerable to authorization bypass due to missing capability checks in all versions up to, and including, 6.3.6. This is due to the 'wpas_do_mr_activate_user' function not verifying that a user has permission to modify other users' roles, combined with a nonce reuse vulnerability where public registration nonces are valid for privileged actions because all actions share the same nonce namespace. This makes it possible for unauthenticated attackers to demote administrators to low-privilege roles via the 'wpas-do=mr_activate_user' action with a user-controlled 'user_id' parameter, granted they can access the publicly available registration/submit ticket page to extract a valid nonce.
Showing 1 to 1 of 1 results