CVE-2026-4267: Johnbillion/query monitor Cross-Site Scripting Vulnerability
MODERATECVE-2026-4267 is a MODERATE (CVSS 6.1) cross-site scripting vulnerability (CWE-80: Improper Neutralization of Script-Related HTML Tags in a Web Page (Basic XSS)) affecting Johnbillion/query monitor libraries in the Packagist ecosystem. The issue involves the query monitor plugin for wordpress has reflected cross-site scripting via request uri. Remediation is available by upgrading affected packages to version 3.20.4.
CVE-2026-4267 at a Glance
Security Impact
CVSS: 6.1
The security impact metrics below are parsed directly from the CVSS v3.1 vector string (CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N).
How to Fix CVE-2026-4267
To remediate this vulnerability, upgrade all affected Johnbillion/query monitor dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.
Upgrade johnbillion/query-monitor to 3.20.4
Run the following command in your project directory to verify that all resolved dependencies use the patched release:
inspect dependencies for johnbillion/query-monitor
How to Check if You Are Affected
To determine whether your application is affected by CVE-2026-4267, inspect your project dependencies for Johnbillion/query monitor:
inspect dependencies for johnbillion/query-monitor
Analyze the terminal output to locate any version of Johnbillion/query monitor in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 3.20.4), your application is affected.
Note: Verify declared build manifests and deployed runtime container environments.
Technical Details
Vulnerability Mechanism & Technical Analysis
This vulnerability is classified under CWE-80: Improper Neutralization of Script-Related HTML Tags in a Web Page (Basic XSS), where the product receives input from an upstream component, but it does not neutralize or incorrectly neutralizes special characters such as "<", ">", and "&" that could be interpreted as web-scripting elements when they are sent to a downstream component that processes web pages. In Johnbillion/query monitor, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.
Source Advisory Statement
CVE-2026-4267 Affected Johnbillion/query monitor Versions
1 component(s)| Product / Package | Ecosystem | Affected Versions | Fixed Version |
|---|---|---|---|
|
johnbillion/query-monitor
|
Packagist |
< 3.20.4
|
3.20.4
|
References
Frequently Asked Questions
What is CVE-2026-4267?
Which Johnbillion/query monitor versions are affected?
What version fixes CVE-2026-4267?
Is johnbillion/query-monitor affected?
What is the CVSS score of CVE-2026-4267?
What CWE is associated with CVE-2026-4267?
How can I check Packagist dependencies for CVE-2026-4267?
Machine-readable OSV JSON
OSV v1.5 Schema
{
"schema_version" : "1.4.0",
"id" : "GHSA-2xr4-chcf-vmvf",
"modified" : "2026-03-19T19:37:04Z",
"published" : "2026-03-19T19:37:04Z",
"aliases" : [ "CVE-2026-4267" ],
"summary" : "The Query Monitor plugin for WordPress has Reflected Cross-Site Scripting via Request URI",
"details" : "### Impact\n\nThe Query Monitor plugin for WordPress is vulnerable to Reflected Cross-Site Scripting via the `$_SERVER['REQUEST_URI']` parameter in all versions up to, and including, 3.20.3 due to insufficient output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that execute if they can successfully trick an Administrator-level user into performing an action such as clicking on a link.\n\nOn admin requests, the plugin reads user controlled data from `$_SERVER['REQUEST_URI']` and stores it in the request field, then renders `request`, `matched_query`, and `query_string` through `format_url()`. If the attacker supplied string does not contain `&`, `format_url()` returns it without HTML escaping, which allows injected HTML or JavaScript from the request target to be inserted directly into the page inside a `<code>` element and executed in the victim's browser.\n\n### Patches\n\nThis issue has been patched in Query Monitor 3.20.4.\n\n### Credits\n\nMany thanks to Dmitrii Ignatyev at CleanTalk for responsibly disclosing this vulnerability.\n\n### How can I report a security bug?\n\nYou can submit a private security vulnerability report to Query Monitor via [the Security tab on the GitHub repo](https://github.com/johnbillion/query-monitor/security). The GitHub Security Advisory process facilitates private collaboration on security issues. You'll receive credit for a valid report and a CVE if necessary.",
"severity" : [ {
"type" : "CVSS_V3",
"score" : "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"
} ],
"affected" : [ {
"package" : {
"ecosystem" : "Packagist",
"name" : "johnbillion/query-monitor"
},
"ranges" : [ {
"type" : "ECOSYSTEM",
"events" : [ {
"introduced" : "0"
}, {
"fixed" : "3.20.4"
} ]
} ]
} ],
"references" : [ {
"type" : "WEB",
"url" : "https://github.com/johnbillion/query-monitor/security/advisories/GHSA-2xr4-chcf-vmvf"
}, {
"type" : "PACKAGE",
"url" : "https://github.com/johnbillion/query-monitor"
} ],
"database_specific" : {
"cwe_ids" : [ "CWE-80" ],
"severity" : "MODERATE",
"github_reviewed" : true,
"github_reviewed_at" : "2026-03-19T19:37:04Z",
"nvd_published_at" : null
}
}