REPORT / 01
Analysis Report · Folder Analysis cache/wp-meteor_3.4.16 → cache/wp-meteor_3.4.17 — CVE-2026-2902
Shared security patch analysis results
02 ·
Lifecycle actions
cancel · resume · skip · regenerate · redo
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-2026-2902
NVD
AI-Generated Analysis
05 ·
Findings
filter · search · paginate
Showing 0 to 0 of 0 results
blocker/FirstInteraction/UltimateReorder.php
AI: 1 vulnerabilities
CVE-2026-2902
--- cache/wp-meteor_3.4.16/blocker/FirstInteraction/UltimateReorder.php 2026-04-30 00:20:17.089240370 +0000+++ cache/wp-meteor_3.4.17/blocker/FirstInteraction/UltimateReorder.php 2026-04-30 00:20:47.999431372 +0000@@ -81,6 +81,7 @@ }*/ $EXTRA = defined('WPMETEOR_EXTRA_ATTRS') ? constant('WPMETEOR_EXTRA_ATTRS') : '';+ $DELIMITER = "WPMETEOR" . wp_generate_password(16, false); $REPLACEMENTS = []; $searchOffset = 0;@@ -103,7 +104,7 @@ if (!$noOptimize && apply_filters('wpmeteor_exclude', false, $content)) { $tag = preg_replace('/^<script\b/i', "<script {$EXTRA} data-wpmeteor-nooptimize=\"true\"", $tag); }- $replacement = $tag . "WPMETEOR[" . count($REPLACEMENTS) . "]WPMETEOR" . $closingTag;+ $replacement = $tag . $DELIMITER . "[" . count($REPLACEMENTS) . "]" . $DELIMITER . $closingTag; $REPLACEMENTS[] = $content; $buffer = substr_replace($buffer, $replacement, $offset, $len); continue;@@ -183,7 +184,7 @@ * effectively breaking JSON * covered by test/test.php */- $buffer = preg_replace_callback('/WPMETEOR\[(\d+)\]WPMETEOR/', function ($matches) use (&$REPLACEMENTS) {+ $buffer = preg_replace_callback('/' . preg_quote($DELIMITER, '/') . '\[(\d+)\]' . preg_quote($DELIMITER, '/') . '/', function ($matches) use (&$REPLACEMENTS) { return $REPLACEMENTS[(int)$matches[1]]; }, $buffer);
AI Analysis
Vulnerability Existed: yes
Delimiter collision / placeholder injection blocker/FirstInteraction/UltimateReorder.php 81-184
Old Code
$REPLACEMENTS = [];
...
$replacement = $tag . "WPMETEOR[" . count($REPLACEMENTS) . "]WPMETEOR" . $closingTag;
...
$buffer = preg_replace_callback('/WPMETEOR\[(\d+)\]WPMETEOR/', function ($matches) use (&$REPLACEMENTS) {
return $REPLACEMENTS[(int)$matches[1]];
}, $buffer);
Fixed Code
$DELIMITER = "WPMETEOR" . wp_generate_password(16, false);
...
$replacement = $tag . $DELIMITER . "[" . count($REPLACEMENTS) . "]" . $DELIMITER . $closingTag;
...
$buffer = preg_replace_callback('/' . preg_quote($DELIMITER, '/') . '\[(\d+)\]' . preg_quote($DELIMITER, '/') . '/', function ($matches) use (&$REPLACEMENTS) {
return $REPLACEMENTS[(int)$matches[1]];
}, $buffer);
CVE Analysis Results:
CVE-2026-2902: Yes
View CVE Description
The WP Meteor Website Speed Optimization Addon plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'frontend_rewrite' function's 'WPMETEOR[N]WPMETEOR' placeholder content in all versions up to, and including, 3.4.16 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.
Showing 1 to 1 of 1 results