Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessLure operator to attacker-controlled page
-
ExploitBrowser auto-issues cross-site GET to /stop
-
ExecutionLocust web server terminates running swarm
-
ImpactLoad test halted and recorded statistics wiped
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V3 - Web Frontend Security Anti-CSRF tokens, SameSite cookies
MITRE ATT&CK
1 technique across 1 tactic: Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires that (1) the Locust web UI (locust/web.py) is running and network-reachable from the victim's browser, and (2) a human operator with access to that UI is socially engineered into visiting an attacker-controlled web page while the UI is reachable. The vulnerable actions are the /stop and /stats/reset endpoints, which in versions through 2.46.7 accept state-changing GET requests without any anti-CSRF token, so no attacker authentication is needed. Limiting factors that reduce realistic risk: mandatory operator interaction (UI:P - the attack fails if no operator is lured), the fact that the Locust web UI is commonly bound to localhost/internal interfaces and only active during test runs, and that impact is confined to stopping tests and resetting statistics (no data disclosure or code execution). |
| Impact | This is a genuine but low-to-moderate priority issue, best characterized as a defense-in-depth/integrity-hygiene flaw rather than an urgent threat. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:P) correctly reflects a network-reachable, low-complexity CSRF where the attacker needs no credentials but DOES need a privileged victim (UI:P) - an operator with browser access to the Locust web UI must be lured to a malicious page. Impact is bounded: VC:N (no confidentiality loss), with only VI:L/VA:L (an attacker can stop a running test or wipe recorded statistics, but cannot read data, execute code, or achieve persistent compromise). Exploitation status is 'no public exploit identified at time of analysis' - there is no KEV listing, no EPSS value supplied, and no POC flag in the input, so there is no evidence of active or automated exploitation; the VulnCheck advisory is a disclosure, not an exploitation report. The signals are internally consistent (network vector matches an HTTP-based CSRF; UI:P matches the 'lure an operator' description), so there is no major conflict to flag. The main caveat is that EPSS and POC status are simply absent from the input rather than confirmed-negative. Real-world risk is further limited because the Locust web UI is typically bound to internal/localhost interfaces during test runs, so the attacker's forged request only succeeds if the operator's browser can reach the UI at the moment they visit the malicious page. |
| Exploit ScenarioDerived | While a performance engineer is running a load test with the Locust web UI open in their browser, an attacker lures them (e.g., via a phishing link or a malicious ad) to a web page that contains a hidden image or auto-submitting element pointing at the Locust host's /stop or /stats/reset endpoint. Because these actions are triggerable via simple cross-site GET requests with no CSRF token, the victim's browser silently issues the request, terminating the running swarm and discarding collected performance metrics. No public exploit code is identified at time of analysis, though a working CSRF payload is trivial to construct from the public description. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 19, 2026
Cross-site request forgery in Locust (through 2.46.7) lets a remote attacker stop running load tests and wipe recorded statistics in the web UI by luring an operator to a malicious page that issues GET requests to /stop and /stats/reset. No attacker authentication is required, but exploitation depends on operator interaction and on the Locust web UI being reachable from the victim's browser; impact is confined to integrity and availability of test runs and results, with no code execution or data disclosure (CVSS 4.0 score 5.3). No public exploit code was identified at time of analysis, and this is best treated as a low-to-moderate defense-in-depth flaw rather than an urgent threat.
RemediationAI
Apply the upstream fix commit 3a1d0caa5bde59494ede55f513fcb4becbf406a0, which changes /stop and /stats/reset from GET to POST, by upgrading to a Locust release that includes it; the exact first patched version is not confirmed in the provided data, so verify it against the release notes and https://github.com/locustio/locust/issues/3566 before rollout. If upgrading immediately is not possible, bind the web UI to localhost or a trusted management interface (for example start with --web-host 127.0.0.1) and restrict reachability with host firewall rules or an authenticating reverse proxy - the trade-off is that remote operators lose direct dashboard access or require additional proxy administration. When live monitoring is not needed, run Locust without the web UI (headless mode), which removes the attack surface entirely at the cost of losing the dashboard; also avoid browsing untrusted sites from workstations that can reach an active Locust UI. Vendor advisory: https://www.vulncheck.com/advisories/locust-through-2.46.7-csrf-via-web-ui-stop-and-stats-reset.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Locust is a Python load-testing framework whose optional web UI (locust/web.py) exposes operational control endpoints including /stop and /stats/reset. In versions through 2.46.7 those state-changing operations were reachable via GET without an anti-CSRF token or origin check, the classic CWE-352 pattern: a cross-site element such as an image tag or link on an attacker-controlled page causes the operator's browser to issue the request, and the UI executes it because it cannot distinguish the request from a legitimate one. The upstream fix commit changes the test client calls from requests.get to requests.post for /stop and /stats/reset, indicating the handlers were converted to POST-only so that simple cross-site GET requests no longer trigger state changes. The CPE cpe:2.3:a:locustio:locust:*:*:*:*:*:*:*:* confirms the affected component is the Locust package itself rather than a third-party dependency.
Know when Locust gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:L/VA:L/SC:N/SI:N/SA:N
Network-reachable CSRF needing no attacker auth (PR:N) but a lured operator (UI:R); no confidentiality impact, with low integrity (stats reset) and low availability (test termination).
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
Locust through 2.46.7 contains a cross-site request forgery vulnerability that allows remote attackers to stop load tests or reset statistics via GET requests to /stop and /stats/reset. Attackers can lure an operator to a malicious page triggering cross-site GET requests, terminating running swarms and wiping recorded performance results.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Cross-Site Request Forgery exploits the automatic credential inclusion behavior of web browsers.
EUVD-2026-104320
GHSA-j73g-6444-cr8h
NVD
CVE.org
EPSS
Exploit-DB