CVE-2026-7049: Blind SSRF in PixelYourSite Pro scan_video Endpoint
Unauthenticated SSRF in PixelYourSite Pro ≤12.5.0.1 via scan_video allows arbitrary internal network requests. Response bodies are never returned, making this a blind oracle against internal services.
# WordPress Plugin Flaw Lets Hackers Probe Your Website's Secret Systems
A popular WordPress plugin called PixelYourSite Pro has a serious security flaw that could let hackers use your website as a stepping stone to attack your internal systems.
Here's what's happening. The plugin manages tracking pixels—tiny pieces of code that monitor user behavior for advertisers. One of its features scans videos, and this scanning tool has a vulnerability. Think of it like having a mail carrier who's supposed to deliver letters, but instead hackers can trick them into visiting any address you want—including secret back doors to your company's private network.
Because the website owner's server is doing the requesting, it can reach places that a hacker sitting at home cannot. This means attackers could potentially probe internal databases, contact private services, or even modify data on systems that should be completely hidden from the public internet.
The good news is that no one's actively exploiting this yet. The bad news is that the vulnerability affects versions of the plugin up to 12.5.0.1, and it doesn't require hackers to log in—they can attack completely anonymously.
Who's at risk? Anyone running a WordPress site with this plugin installed, especially businesses that store sensitive information on internal servers connected to the same network.
What you should do right now: First, update PixelYourSite Pro immediately if you have it installed—make sure you're running the latest version. Second, if you're not actively using the plugin, disable or delete it entirely. Third, check your website's security logs to see if there's been any suspicious activity scanning your video functionality. Your hosting provider can usually help with this.
Want the full technical analysis? Click "Technical" above.
CVE-2026-7049 is an unauthenticated Server-Side Request Forgery (SSRF) in the PixelYourSite Pro WordPress plugin, affecting all versions up to and including 12.5.0.1. The vulnerable surface is the scan_video AJAX handler, which accepts an attacker-supplied URL, performs a server-side HTTP fetch with no allowlist enforcement, and parses the response body internally for YouTube/Vimeo metadata patterns. The parsed response is never echoed back to the caller, making this a blind SSRF — side-channel exfiltration or internal service interaction is the primary threat model, not direct data theft.
CVSS 7.2 (HIGH) reflects the unauthenticated access vector and the ability to reach internal services (cloud metadata endpoints, internal APIs, Redis, Elasticsearch) from the web server's network position — privileges the attacker does not otherwise hold.
Root cause: The scan_video AJAX action passes the raw url POST parameter directly into wp_remote_get() without validating the scheme, host, or IP address against a safe allowlist, enabling requests to arbitrary internal or external destinations from an unauthenticated context.
Affected Component
The plugin registers several wp_ajax_nopriv_* (unauthenticated) and wp_ajax_* (authenticated) hooks. The relevant registration is in the main plugin bootstrap:
Registering the hook under wp_ajax_nopriv_ means WordPress routes POST /wp-admin/admin-ajax.php?action=pys_scan_video to the handler with zero authentication required.
Root Cause Analysis
The vulnerable handler, reconstructed from plugin behavior and the WordPress HTTP API, follows this logic:
// File: pixelyoursite-pro/includes/class-ajax-handler.php
// Reconstructed pseudocode — function names match deobfuscated plugin source
public function scan_video() {
// BUG: no nonce check, no capability check, no authentication gate
$url = isset( $_POST['url'] ) ? $_POST['url'] : '';
// BUG: no scheme validation — accepts file://, gopher://, dict://, http://
// BUG: no host/IP allowlist — accepts 169.254.169.254, 127.0.0.1, 10.x, etc.
if ( empty( $url ) ) {
wp_send_json_error( 'No URL provided' );
return;
}
// Unfiltered attacker-controlled URL passed directly to wp_remote_get()
$response = wp_remote_get( $url, [
'timeout' => 10,
'user-agent' => 'PixelYourSite/' . PYS_VERSION,
'sslverify' => false, // BUG: certificate validation disabled
] );
if ( is_wp_error( $response ) ) {
wp_send_json_error( 'Request failed' );
return;
}
$body = wp_remote_retrieve_body( $response );
// Response body parsed internally — never returned to caller
$video_data = $this->parse_video_metadata( $body, $url );
// Only structured metadata (title, thumbnail) returned — raw body suppressed
wp_send_json_success( $video_data );
}
private function parse_video_metadata( $body, $url ) {
$data = [];
// YouTube og:title / og:image extraction via regex
if ( preg_match( '/]+property=["\']og:title["\'][^>]+content=["\'](.*?)["\']/i',
$body, $m ) ) {
$data['title'] = sanitize_text_field( $m[1] );
}
// Vimeo JSON-LD extraction
if ( preg_match( '/
CBCypherByte
You've read 2 free articles this session.
Get the weekly mobile threat briefing — CVEs, exploit research, and security intelligence. Free, no spam.