REPORT / 01

Analysis Report · Folder Analysis cache/simple-tags_3.41.0 → cache/simple-tags_3.42.0 — CVE-2025-14371

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-14371 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
modules/taxopress-ai/classes/TaxoPressAiAjax.php AI: 1 vulnerabilities 1 true positive CVE-2025-14371
--- cache/simple-tags_3.41.0/modules/taxopress-ai/classes/TaxoPressAiAjax.php	2026-01-08 00:32:55.545935471 +0000+++ cache/simple-tags_3.42.0/modules/taxopress-ai/classes/TaxoPressAiAjax.php	2026-01-08 00:33:14.003079562 +0000@@ -776,6 +776,13 @@                     $post_type_label = $post_type_details->labels->singular_name;
                 }
 
+                if (!current_user_can('edit_post', $post_id)){
+                    $response['status'] = 'error';
+                    $response['content'] = esc_html__('You do not have permission to edit this post.', 'simple-tags');
+                    wp_send_json($response);
+                    exit;
+                }
+
                 if (empty($added_tags) && empty($removed_tags)) {
                     $response['status'] = 'error';
                     $response['content'] = sprintf(esc_html__('Click Term to select or deselect from this %1s', 'simple-tags'), esc_html($post_type_label));
AI Analysis
# Security Analysis: TaxoPressAiAjax.php

Vulnerability Existed: yes
TRUE POSITIVE

**CWE-639 - Authorization Bypass Through User-Controlled Key** - modules/taxopress-ai/classes/TaxoPressAiAjax.php - Lines 776-784

**Old Code:**
```php
$post_type_label = $post_type_details->labels->singular_name;
}

if (empty($added_tags) && empty($removed_tags)) {
```

**Fixed Code:**
```php
$post_type_label = $post_type_details->labels->singular_name;
}

if (!current_user_can('edit_post', $post_id)){
    $response['status'] = 'error';
    $response['content'] = esc_html__('You do not have permission to edit this post.', 'simple-tags');
    wp_send_json($response);
    exit;
}

if (empty($added_tags) && empty($removed_tags)) {
```

**Explanation:**

The original code was missing authorization checks before allowing users to modify tags on a post. An attacker could potentially manipulate the `$post_id` parameter in the AJAX request to add or remove tags from posts they don't have permission to edit, as there was no verification using WordPress's `current_user_can()` function.

The fix adds a proper authorization check using `current_user_can('edit_post', $post_id)` to verify the user has the `edit_post` capability for the specific post before proceeding with tag modifications. The check includes proper error response handling with sanitized output using `esc_html__()` and exits execution if authorization fails. This follows WordPress security best practices and prevents unauthorized post modification.
CVE Analysis Results:
CVE-2025-14371: Yes
View CVE Description
The Tag, Category, and Taxonomy Manager – AI Autotagger with OpenAI plugin for WordPress is vulnerable to unauthorized modification of data due to a missing capability check on the taxopress_ai_add_post_term function in all versions up to, and including, 3.41.0. This makes it possible for authenticated attackers, with Contributor-level access and above, to add or remove taxonomy terms (tags, categories) on any post, including ones they do not own.
Showing 1 to 1 of 1 results