Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2025-46504

CVE-2025-46504: Vasaio QR Code CSRF Vulnerability

CVE-2025-46504 is a Cross-Site Request Forgery vulnerability in Vasaio QR Code plugin that enables Stored XSS attacks. This article covers the technical details, affected versions up to 1.2.5, security impact, and mitigation.

Updated:

CVE-2025-46504 Overview

CVE-2025-46504 is a Cross-Site Request Forgery (CSRF) vulnerability in the Olar Marius Vasaio QR Code (vasaio-qr-code) WordPress plugin. The flaw affects all versions through 1.2.5 and enables Stored Cross-Site Scripting (XSS) when an authenticated administrator is tricked into submitting an attacker-controlled request. The weakness maps to [CWE-352] Cross-Site Request Forgery and stems from missing or insufficient anti-CSRF token validation on plugin actions that persist user-supplied input.

Critical Impact

Successful exploitation allows an unauthenticated attacker to plant persistent JavaScript in the WordPress admin context, leading to session theft, account takeover, and arbitrary actions performed as the targeted administrator.

Affected Products

  • Olar Marius Vasaio QR Code (vasaio-qr-code) WordPress plugin
  • All versions from n/a through 1.2.5
  • WordPress sites with the plugin installed and an authenticated administrator session

Discovery Timeline

  • 2025-04-24 - CVE-2025-46504 published to NVD
  • 2026-04-23 - Last updated in NVD database

Technical Details for CVE-2025-46504

Vulnerability Analysis

The vulnerability chains two distinct web application weaknesses. The plugin exposes administrative actions that modify stored content without verifying a WordPress nonce or other anti-CSRF token. An attacker hosts a malicious page that issues a forged request to the vulnerable endpoint. When an authenticated administrator visits the page, the browser submits the request with valid session cookies.

The forged request injects attacker-controlled HTML or JavaScript into a plugin-managed field. The plugin stores the payload and renders it later without adequate output encoding. The result is Stored XSS executed in the context of any user who loads the affected admin or front-end page.

The scope-changed CVSS vector indicates that exploitation impacts resources beyond the vulnerable component. User interaction is required because the administrator must visit the attacker's page while logged in.

Root Cause

The root cause is the absence of CSRF protection on plugin write operations. WordPress provides wp_nonce_field() and check_admin_referer() for this purpose, but the affected handlers do not validate a nonce before persisting input. A secondary defect is insufficient sanitization and escaping of stored data, which allows the injected script to execute when rendered.

Attack Vector

The attack vector is network-based and requires social engineering. An attacker crafts a web page containing an auto-submitting form or fetch request targeting the vulnerable plugin endpoint on the victim's WordPress site. The attacker lures a logged-in administrator to the page through phishing, a forum link, or a malicious advertisement. The browser submits the request with the administrator's cookies, the plugin accepts it, and the XSS payload is stored.

No authentication credentials are needed by the attacker; the victim's authenticated session performs the privileged action. See the Patchstack Vulnerability Report for additional technical detail.

Detection Methods for CVE-2025-46504

Indicators of Compromise

  • Unexpected <script>, onerror, or onload content in Vasaio QR Code plugin records or related WordPress options
  • Administrator HTTP requests to plugin endpoints originating from Referer headers on third-party domains
  • New or unfamiliar administrator accounts, modified user roles, or unexpected outbound requests from admin browser sessions
  • WordPress audit log entries showing plugin configuration changes that do not correspond to legitimate administrator activity

Detection Strategies

  • Inspect the WordPress database for stored plugin fields containing HTML event handlers or <script> tags
  • Review web server access logs for POST requests to vasaio-qr-code admin handlers with off-site Referer values
  • Deploy a Web Application Firewall rule that flags state-changing requests to the plugin lacking a valid _wpnonce parameter
  • Monitor browser-side telemetry for script execution sourced from administrator-only pages

Monitoring Recommendations

  • Enable WordPress activity logging plugins that record option and post meta changes attributable to specific users
  • Alert on anomalous administrator session activity such as off-hours configuration changes or rapid sequential edits
  • Forward web server and WordPress logs to a centralized SIEM for correlation with phishing and proxy telemetry

How to Mitigate CVE-2025-46504

Immediate Actions Required

  • Deactivate and remove the Vasaio QR Code plugin until a fixed version is confirmed available
  • Audit stored plugin data and remove any injected scripts or HTML event handlers
  • Force a password reset and session invalidation for all WordPress administrator accounts
  • Review recently added users, plugins, and theme files for signs of post-exploitation persistence

Patch Information

No fixed version is published in the source data. The vulnerability affects all releases through 1.2.5. Monitor the plugin page and the Patchstack Vulnerability Report for an updated release, and apply it as soon as it becomes available.

Workarounds

  • Remove the plugin if QR code functionality is non-essential
  • Restrict access to /wp-admin/ by source IP using web server or WAF rules
  • Require administrators to use a dedicated browser profile for WordPress management to limit cross-site request exposure
  • Deploy a Content Security Policy that blocks inline script execution in the WordPress admin context
bash
# Example: restrict WordPress admin access by IP using Apache .htaccess
<Files "admin-ajax.php">
    Require all denied
    Require ip 203.0.113.10
</Files>

<Directory "/var/www/html/wp-admin">
    Require all denied
    Require ip 203.0.113.0/24
</Directory>

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.