REPORT / 01

Analysis Report · Folder Analysis cache/mediapress_1.6.1 → cache/mediapress_1.6.2 — CVE-2025-14552

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-14552 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
templates/mediapress/default/shortcodes/create-gallery.php AI: 2 vulnerabilities 2 true positives CVE-2025-14552
--- cache/mediapress_1.6.1/templates/mediapress/default/shortcodes/create-gallery.php	2026-01-08 00:34:42.980558104 +0000+++ cache/mediapress_1.6.2/templates/mediapress/default/shortcodes/create-gallery.php	2026-01-08 00:34:53.845213096 +0000@@ -17,23 +17,23 @@ 			$title = $description = $status = $type = $component = '';  			if ( ! empty( $_POST['mpp-gallery-title'] ) ) {-				$title = $_POST['mpp-gallery-title'];+				$title = wp_unslash( $_POST['mpp-gallery-title'] ); 			}  			if ( ! empty( $_POST['mpp-gallery-description'] ) ) {-				$description = $_POST['mpp-gallery-description'];+				$description = wp_unslash( $_POST['mpp-gallery-description'] ); 			}  			if ( ! empty( $_POST['mpp-gallery-status'] ) ) {-				$status = $_POST['mpp-gallery-status'];+				$status = wp_unslash( $_POST['mpp-gallery-status'] ); 			}  			if ( ! empty( $_POST['mpp-gallery-type'] ) ) {-				$type = $_POST['mpp-gallery-type'];+				$type = wp_unslash( $_POST['mpp-gallery-type'] ); 			}  			if ( ! empty( $_POST['mpp-gallery-component'] ) ) {-				$component = $_POST['mpp-gallery-component'];+				$component = wp_unslash( $_POST['mpp-gallery-component'] ); 			}  			$current_component = 'sitewide';// mpp_get_current_component();@@ -82,7 +82,7 @@ 				?>  				<input type='hidden' name="mpp-action" value='create-gallery'/>-				<input type='hidden' name="mpp-gallery-component" value="<?php echo $current_component; ?>"/>+				<input type='hidden' name="mpp-gallery-component" value="<?php echo esc_attr( $current_component ); ?>"/>  				<div class="mpp-u-1 mpp-clearfix mpp-submit-button"> 					<button type="submit" class='mpp-align-right mpp-button-primary mpp-create-gallery-button '> <?php _e( 'Create', 'mediapress' ); ?></button>
AI Analysis
Vulnerability Existed: yes
TRUE POSITIVE
Stored Cross-Site Scripting (XSS) - CWE-79 - templates/mediapress/default/shortcodes/create-gallery.php [85]
Old Code:
```
<input type='hidden' name="mpp-gallery-component" value="<?php echo $current_component; ?>"/>
```
Fixed Code:
```
<input type='hidden' name="mpp-gallery-component" value="<?php echo esc_attr( $current_component ); ?>"/>
```
Explanation:
The variable `$current_component` is output directly into an HTML attribute without escaping. If this variable contains user-controlled data or untrusted content, an attacker could inject malicious JavaScript through the attribute value. The fix applies `esc_attr()`, the WordPress function for properly escaping attribute values, preventing XSS attacks.

---

Vulnerability Existed: yes
TRUE POSITIVE
Improper Input Validation - CWE-20 - templates/mediapress/default/shortcodes/create-gallery.php [20, 24, 28, 32, 36]
Old Code:
```
$title = $_POST['mpp-gallery-title'];
$description = $_POST['mpp-gallery-description'];
$status = $_POST['mpp-gallery-status'];
$type = $_POST['mpp-gallery-type'];
$component = $_POST['mpp-gallery-component'];
```
Fixed Code:
```
$title = wp_unslash( $_POST['mpp-gallery-title'] );
$description = wp_unslash( $_POST['mpp-gallery-description'] );
$status = wp_unslash( $_POST['mpp-gallery-status'] );
$type = wp_unslash( $_POST['mpp-gallery-type'] );
$component = wp_unslash( $_POST['mpp-gallery-component'] );
```
Explanation:
By default, WordPress applies `wp_magic_quotes()` to $_POST data, adding slashes to handle quotes. The code was directly using these escaped values without removing the slashes. The fix applies `wp_unslash()` to properly handle the data before storage or processing, preventing double-escaping issues and ensuring data integrity. This is important when the data will be stored in the database or used in other contexts.
CVE Analysis Results:
CVE-2025-14552: Yes
View CVE Description
The MediaPress plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the plugin's mpp-uploader shortcode in all versions up to, and including, 1.6.1 due to insufficient input sanitization and output escaping on user supplied attributes. This makes it possible for authenticated attackers, with contributor-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.
templates/mediapress/default/shortcodes/uploader.php AI: 1 vulnerabilities 1 true positive CVE-2025-14552
--- cache/mediapress_1.6.1/templates/mediapress/default/shortcodes/uploader.php	2026-01-08 00:34:42.988558586 +0000+++ cache/mediapress_1.6.2/templates/mediapress/default/shortcodes/uploader.php	2026-01-08 00:34:53.857213820 +0000@@ -1,5 +1,5 @@ <?php-// Exit if the file is accessed directly over web+// Exit if the file is accessed directly over web. if ( ! defined( 'ABSPATH' ) ) { 	exit; }@@ -45,7 +45,7 @@     <input type='hidden' name='mpp-context' class="mpp-context" id='mpp-context' value="<?php echo $context; ?>"/>  	<?php if ( $type ) : ?>-		<input type='hidden' name='mpp-uploading-media-type' class='mpp-uploading-media-type' value="<?php echo $type; ?>"/>+		<input type='hidden' name='mpp-uploading-media-type' class='mpp-uploading-media-type' value="<?php echo esc_attr( $type ); ?>"/> 	<?php endif; ?>  	<?php if ( $skip_gallery_check ) : ?>@@ -53,7 +53,7 @@ 	<?php endif; ?>  	<?php if ( $gallery_id || $skip_gallery_check ) : ?>-		<input type='hidden' name='mpp-shortcode-upload-gallery-id' id='mpp-shortcode-upload-gallery-id' value="<?php echo $gallery_id; ?>"/>+		<input type='hidden' name='mpp-shortcode-upload-gallery-id' id='mpp-shortcode-upload-gallery-id' value="<?php echo esc_attr( $gallery_id ); ?>"/>  	<?php else : ?> 		<?php
AI Analysis
Vulnerability Existed: yes
TRUE POSITIVE
[CWE Name] CWE-79 - Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') - CWE-79 - templates/mediapress/default/shortcodes/uploader.php - Lines 48, 56
[Old Code]
Line 48: `<input type='hidden' name='mpp-uploading-media-type' class='mpp-uploading-media-type' value="<?php echo $type; ?>"/>`
Line 56: `<input type='hidden' name='mpp-shortcode-upload-gallery-id' id='mpp-shortcode-upload-gallery-id' value="<?php echo $gallery_id; ?>"/>`
[Fixed Code]
Line 48: `<input type='hidden' name='mpp-uploading-media-type' class='mpp-uploading-media-type' value="<?php echo esc_attr( $type ); ?>"/>`
Line 56: `<input type='hidden' name='mpp-shortcode-upload-gallery-id' id='mpp-shortcode-upload-gallery-id' value="<?php echo esc_attr( $gallery_id ); ?>"/>`
Explanation:
The original code directly echoed the `$type` and `$gallery_id` variables into HTML attribute values without proper escaping. This creates a Stored/Reflected Cross-Site Scripting (XSS) vulnerability. An attacker could inject malicious JavaScript by providing specially crafted input containing quotes and script tags (e.g., `" onload="alert('XSS')"`), which would be executed in the browser. The fix applies `esc_attr()`, a WordPress escaping function specifically designed to safely escape data for use in HTML attributes, preventing the injection of malicious code. This is a standard XSS prevention technique in WordPress development.
CVE Analysis Results:
CVE-2025-14552: Yes
View CVE Description
The MediaPress plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the plugin's mpp-uploader shortcode in all versions up to, and including, 1.6.1 due to insufficient input sanitization and output escaping on user supplied attributes. This makes it possible for authenticated attackers, with contributor-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.
Showing 1 to 2 of 2 results