Zero Day Initiative has published ZDI-26-994, a critical vulnerability in SmarterTools SmarterMail that allows remote attackers to achieve unauthenticated code execution through the File Edit API. CVE-2026-126967 carries a CVSS score of 8.8 — squarely in high-severity territory — and the attack vector is particularly dangerous because it targets a mail server, an inherently internet-facing asset holding sensitive communications and user credentials.
The vulnerability is a directory traversal flaw in the File Edit API. A remote attacker can manipulate file path parameters to escape the intended directory sandbox, write attacker-controlled content to arbitrary locations on the host filesystem, and achieve code execution in the context of the SmarterMail service. Despite ambiguity in the advisory language, ZDI's title is explicit: this is an unauthenticated code execution vulnerability. That means any threat actor with network access to the SmarterMail web interface can attempt exploitation — no valid credentials are required.
SmarterMail is a popular Microsoft Exchange alternative deployed widely by SMBs, MSPs, and hosting providers. These organizations frequently expose SmarterMail's web interface directly to the internet on ports 443 or custom HTTP ports, making this vulnerability a high-priority target for mass scanning and opportunistic exploitation. Given the recent trend of threat actors weaponizing mail server vulnerabilities within days of public disclosure, defenders must treat this as an imminent threat and act immediately.
Technical Analysis
Affected Products and Versions
ZDI-26-994 identifies the vulnerability as present in SmarterTools SmarterMail installations prior to the vendor's security fix. The specific version number patched by SmarterTools should be confirmed directly against the vendor's release notes, but defenders should assume all currently deployed versions prior to the most recent release are vulnerable until verified otherwise. SmarterMail is a Windows-native application typically deployed on Windows Server 2016, 2019, or 2022 with IIS or its embedded web server.
CVE and Severity
- CVE: CVE-2026-126967
- ZDI Advisory: ZDI-26-994
- CVSS 3.x Score: 8.8 (High)
- Authentication Required: No (unauthenticated code execution per ZDI title)
- Attack Vector: Network
- Vulnerability Type: Directory Traversal / Arbitrary File Write leading to RCE
How the Vulnerability Works
The flaw resides in SmarterMail's File Edit API — an endpoint designed to let administrators edit files within the SmarterMail web root or configuration directories. The API fails to properly sanitize path traversal sequences (e.g., ../, ..\) in the filename or path parameter, allowing an attacker to escape the intended directory scope.
From a defender's perspective, the exploitation chain looks like this:
- Initial Access: The attacker sends a crafted HTTP request to the SmarterMail web interface targeting the File Edit API endpoint. No authentication is required.
- Directory Traversal: The path parameter contains traversal sequences that resolve to a location outside the intended directory — for example, writing to the web root to drop a web shell, or writing to the SmarterMail service's startup directory to achieve persistence.
- Arbitrary File Write: The attacker writes malicious content (typically a web shell such as an ASPX file) to the target location.
- Code Execution: The attacker accesses the dropped file via HTTP, triggering server-side execution in the context of the SmarterMail service account or IIS application pool identity.
Because SmarterMail typically runs with elevated privileges on Windows Server (often as SYSTEM or a dedicated service account with broad filesystem access), successful exploitation yields significant control over the host. From there, attackers can pivot to credential theft (harvesting stored mail account credentials), lateral movement, and deployment of secondary payloads including ransomware.
Exploitation Status
ZDI published this advisory following their standard coordinated disclosure process, which means the vendor has had time to develop and release a fix. However, ZDI advisories of this nature frequently attract rapid reverse engineering and weaponization by threat actors. Mail server vulnerabilities — particularly those enabling unauthenticated RCE — have historically been exploited in the wild within days of public disclosure. There is no confirmed in-the-wild exploitation at the time of writing, and CVE-2026-126967 has not yet been added to CISA's Known Exploited Vulnerabilities (KEV) catalog, but defenders should operate under the assumption that active scanning and exploitation attempts are imminent.
Detection & Response
The detection strategy for CVE-2026-126967 focuses on three observable behaviors: (1) HTTP requests to the File Edit API containing path traversal sequences, (2) the SmarterMail process or IIS worker process writing files to unexpected locations, and (3) the SmarterMail process or IIS worker process spawning unexpected child processes — a strong indicator of post-exploitation activity.
Sigma Rules
---
title: SmarterMail File Edit API Directory Traversal Attempt
id: 8f2a1b34-9c3d-4e5f-a6b7-1c2d3e4f5a6b
status: experimental
description: Detects HTTP requests to SmarterMail File Edit API containing path traversal sequences indicative of CVE-2026-126967 exploitation attempts.
references:
- http://www.zerodayinitiative.com/advisories/ZDI-26-994/
- https://attack.mitre.org/techniques/T1190/
author: Security Arsenal
date: 2026/04/06
tags:
- attack.initial_access
- attack.t1190
logsource:
category: webserver
product: iis
detection:
selection:
cs-uri-stem|contains:
- '/api/v1/'
- '/api/'
- '/Services/'
cs-uri-query|contains:
- '../'
- '..%2f'
- '%2e%2e%2f'
- '..%5c'
- '%2e%2e%5c'
- '..\\'
- '.asp'
- '.aspx'
condition: selection
falsepositives:
- Legitimate administrative file operations with unusual paths
- Vulnerability scanners and penetration testing tools
level: high
---
title: SmarterMail or IIS Worker Process Spawning Suspicious Child Process
id: 2b3c4d5e-6f7a-8b9c-0d1e-2f3a4b5c6d7e
status: experimental
description: Detects SmarterMail service or IIS worker process spawning command shells, PowerShell, or scripting interpreters — indicative of post-exploitation activity following CVE-2026-126967 code execution.
references:
- http://www.zerodayinitiative.com/advisories/ZDI-26-994/
- https://attack.mitre.org/techniques/T1059/
author: Security Arsenal
date: 2026/04/06
tags:
- attack.execution
- attack.t1059
logsource:
category: process_creation
product: windows
detection:
selection_parent:
ParentImage|endswith:
- '\w3wp.exe'
- '\MailService.exe'
- '\SmarterMail.exe'
selection_child:
Image|endswith:
- '\cmd.exe'
- '\powershell.exe'
- '\pwsh.exe'
- '\wscript.exe'
- '\cscript.exe'
- '\mshta.exe'
- '\rundll32.exe'
- '\regsvr32.exe'
- '\certutil.exe'
- '\bitsadmin.exe'
- '\whoami.exe'
- '\net.exe'
- '\net1.exe'
- '\nltest.exe'
- '\ipconfig.exe'
condition: selection_parent and selection_child
falsepositives:
- Legitimate administrative scripts executed by SmarterMail administrators
- Monitoring agents running health checks via IIS
level: critical
---
title: Web Shell File Written to SmarterMail Web Root
id: 3c4d5e6f-7a8b-9c0d-1e2f-3a4b5c6d7e8f
status: experimental
description: Detects creation of executable script files in SmarterMail web directories by the mail service process — indicative of web shell deployment via CVE-2026-126967.
references:
- http://www.zerodayinitiative.com/advisories/ZDI-26-994/
- https://attack.mitre.org/techniques/T1505.003/
author: Security Arsenal
date: 2026/04/06
tags:
- attack.persistence
- attack.t1505.003
logsource:
category: file_event
product: windows
detection:
selection_path:
TargetFilename|contains:
- '\SmarterMail\'
- '\inetpub\wwwroot\'
- '\MRS\'
selection_ext:
TargetFilename|endswith:
- '.aspx'
- '.asp'
- '.ashx'
- '.asmx'
- '.php'
- '.jsp'
condition: selection_path and selection_ext
falsepositives:
- Legitimate SmarterMail updates writing new application files
- Administrator deploying custom web pages
level: high
KQL — Microsoft Sentinel / Defender
// Hunt for SmarterMail exploitation indicators — process and file creation
// Requires Sysmon/Defender for Endpoint process and file creation telemetry
// Query 1: Suspicious child processes from SmarterMail or IIS worker processes
DeviceProcessEvents
| where TimeGenerated > ago(7d)
| where InitiatingProcessFileName in~ ("w3wp.exe", "MailService.exe", "SmarterMail.exe")
| where FileName in~ ("cmd.exe", "powershell.exe", "pwsh.exe", "wscript.exe", "cscript.exe", "mshta.exe", "rundll32.exe", "regsvr32.exe", "certutil.exe", "bitsadmin.exe", "whoami.exe", "net.exe", "net1.exe", "nltest.exe", "ipconfig.exe")
| project TimeGenerated, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine, FileName, ProcessCommandLine, AccountName, RemoteIP
| order by TimeGenerated desc
// Query 2: Executable files written to SmarterMail or web root directories
DeviceFileEvents
| where TimeGenerated > ago(7d)
| where FolderPath has_any ("SmarterMail", "inetpub")
| where FileName endswith ".aspx" or FileName endswith ".asp" or FileName endswith ".ashx" or FileName endswith ".asmx"
| project TimeGenerated, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine, FolderPath, FileName, AccountName
| order by TimeGenerated desc
// Query 3: IIS web logs — requests with traversal sequences targeting SmarterMail
// Assumes IIS W3C logs are ingested via CommonSecurityLog or custom table
CommonSecurityLog
| where TimeGenerated > ago(7d)
| where DeviceProduct has "IIS" or DeviceVendor has "Microsoft"
| where RequestURL has_any ("../", "..%2f", "%2e%2e", "..\\", "..%5c")
| where RequestURL has_any ("SmarterMail", "api", "Services", "FileEdit")
| project TimeGenerated, SourceIP, RequestURL, RequestMethod, DeviceAction, DestinationHostName, DestinationPort
| order by TimeGenerated desc
Velociraptor VQL
-- Hunt for suspicious child processes spawned by SmarterMail or IIS worker processes
-- and check for recently modified executable files in SmarterMail web directories
SELECT Pid, Name, Exe, CommandLine, Username, CreateTime,
Ppid, PName
FROM pslist()
WHERE PName =~ '(?i)(w3wp|mailservice|smartermail)'
AND Name =~ '(?i)(cmd|powershell|pwsh|wscript|cscript|mshta|rundll32|regsvr32|certutil|bitsadmin|whoami|net|nltest|ipconfig)'
UNION ALL
SELECT NULL AS Pid, NULL AS Name, NULL AS Exe, NULL AS CommandLine,
NULL AS Username, NULL AS CreateTime, NULL AS Ppid, NULL AS PName
FROM glob(globs=[
'C:\\SmarterMail\\**\\*.aspx',
'C:\\SmarterMail\\**\\*.asp',
'C:\\SmarterMail\\**\\*.ashx',
'C:\\inetpub\\wwwroot\\**\\*.aspx',
'C:\\inetpub\\wwwroot\\**\\*.ashx'
])
Remediation Script
# CVE-2026-126967 — SmarterMail Directory Traversal Remediation and Verification
# Run as Administrator on Windows Server hosting SmarterMail
Write-Host "=== CVE-2026-126967 SmarterMail Remediation Script ===" -ForegroundColor Cyan
Write-Host "Date: $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')" -ForegroundColor Cyan
Write-Host ""
# Step 1: Check if SmarterMail is installed and identify version
$smarterMailPaths = @(
"C:\Program Files (x86)\SmarterTools\SmarterMail",
"C:\Program Files\SmarterTools\SmarterMail"
)
$smarterMailInstalled = $false
foreach ($path in $smarterMailPaths) {
if (Test-Path $path) {
$smarterMailInstalled = $true
Write-Host "[FOUND] SmarterMail installation at: $path" -ForegroundColor Yellow
# Attempt to read version from executable
$exePath = Join-Path $path "Service\MailService.exe"
if (Test-Path $exePath) {
$version = (Get-Item $exePath).VersionInfo.ProductVersion
Write-Host "[INFO] SmarterMail version: $version" -ForegroundColor Yellow
Write-Host "[ACTION REQUIRED] Compare against vendor advisory to confirm if patched" -ForegroundColor Red
}
}
}
if (-not $smarterMailInstalled) {
Write-Host "[OK] SmarterMail not found on this system" -ForegroundColor Green
exit 0
}
Write-Host ""
# Step 2: Check for suspicious recently modified executable files in SmarterMail directories
Write-Host "[CHECK] Scanning for recently modified .aspx/.ashx files in SmarterMail directories..." -ForegroundColor Cyan
$suspiciousExtensions = @("*.aspx", "*.asp", "*.ashx", "*.asmx", "*.php")
$cutoffDate = (Get-Date).AddDays(-14)
foreach ($path in $smarterMailPaths) {
if (Test-Path $path) {
foreach ($ext in $suspiciousExtensions) {
$files = Get-ChildItem -Path $path -Filter $ext -Recurse -ErrorAction SilentlyContinue |
Where-Object { $_.LastWriteTime -gt $cutoffDate }
foreach ($file in $files) {
Write-Host "[SUSPICIOUS] $($file.FullName) - Modified: $($file.LastWriteTime)" -ForegroundColor Red
Write-Host " Size: $($file.Length) bytes" -ForegroundColor Red
}
}
}
}
# Step 3: Check SmarterMail service status and listening ports
Write-Host ""
Write-Host "[CHECK] SmarterMail service status..." -ForegroundColor Cyan
$services = Get-Service -ErrorAction SilentlyContinue | Where-Object { $_.DisplayName -like "*SmarterMail*" -or $_.Name -like "*SmarterMail*" }
foreach ($svc in $services) {
Write-Host " Service: $($svc.DisplayName) | Status: $($svc.Status) | StartType: $($svc.StartType)" -ForegroundColor Yellow
}
# Step 4: Check for suspicious child processes of SmarterMail/IIS
Write-Host ""
Write-Host "[CHECK] Suspicious child processes from SmarterMail/IIS..." -ForegroundColor Cyan
$parentProcesses = Get-Process | Where-Object { $_.ProcessName -match "w3wp|MailService|SmarterMail" }
foreach ($parent in $parentProcesses) {
$children = Get-CimInstance Win32_Process -Filter "ParentProcessId = $($parent.Id)" -ErrorAction SilentlyContinue
foreach ($child in $children) {
if ($child.Name -match "cmd|powershell|pwsh|wscript|cscript|mshta|rundll32|certutil|bitsadmin") {
Write-Host "[ALERT] Suspicious child process detected:" -ForegroundColor Red
Write-Host " Parent: $($parent.ProcessName) (PID: $($parent.Id))" -ForegroundColor Red
Write-Host " Child: $($child.Name) (PID: $($child.ProcessId)) | Command: $($child.CommandLine)" -ForegroundColor Red
}
}
}
# Step 5: Temporary mitigation — block external access to SmarterMail web interface via firewall
Write-Host ""
Write-Host "[MITIGATION] Review the following temporary firewall rules to restrict SmarterMail web access:" -ForegroundColor Cyan
Write-Host " 1. If SmarterMail web admin is internet-facing, restrict to trusted IPs only" -ForegroundColor Yellow
Write-Host " 2. Consider placing SmarterMail behind a WAF with traversal detection enabled" -ForegroundColor Yellow
Write-Host " 3. Disable the File Edit API if not required for daily operations" -ForegroundColor Yellow
Write-Host ""
Write-Host "[ACTION] Apply the latest SmarterMail security update from: https://www.smartertools.com/" -ForegroundColor Green
Write-Host "[ACTION] Review ZDI advisory: http://www.zerodayinitiative.com/advisories/ZDI-26-994/" -ForegroundColor Green
Write-Host ""
Write-Host "=== Script Complete ===" -ForegroundColor Cyan
Remediation
Primary Action: Patch Immediately
Apply the latest SmarterMail security update from SmarterTools as soon as possible. Contact SmarterTools support or check their release notes to confirm the specific version that resolves CVE-2026-126967. Do not rely on version numbers alone — verify the patch addresses ZDI-26-994 specifically.
Temporary Workarounds
If patching cannot be completed immediately, implement the following mitigations:
-
Restrict network access to the SmarterMail web interface. Limit access to trusted IP addresses only — internal management networks, VPN endpoints, or specific administrative hosts. If the web interface must remain internet-accessible for end-user mail access, place it behind a reverse proxy or WAF with strict path validation rules that reject any request containing traversal sequences.
-
Disable or restrict the File Edit API if it is not essential to daily operations. Review SmarterMail's administrative configuration to determine whether this API endpoint can be disabled without impacting core mail functionality.
-
Run SmarterMail under a least-privilege service account. Ensure the SmarterMail service and associated IIS application pool are not running as SYSTEM or a highly privileged domain account. Apply strict NTFS permissions to prevent the service from writing outside its designated directories.
-
Enable and monitor IIS request logging. Ensure W3C logging is enabled on the SmarterMail site and that logs are forwarded to your SIEM. Configure alerts for requests containing traversal patterns.
Post-Patch Verification
After applying the patch:
- Verify the SmarterMail version matches the vendor-patched release.
- Review IIS web logs for the past 30 days for traversal attempts targeting the File Edit API.
- Audit the SmarterMail web root and file system for unauthorized executable files (.aspx, .ashx, .asp) created before the patch window.
- Check for persistence mechanisms: scheduled tasks, services, and startup items created around the timeframe of potential exploitation.
- If any indicators of compromise are found, initiate a full incident response engagement — assume the host is compromised and expand the investigation to include credential rotation for all mail accounts and any domain credentials accessible from the server.
Vendor and Advisory References
- ZDI Advisory: http://www.zerodayinitiative.com/advisories/ZDI-26-994/
- SmarterTools: https://www.smartertools.com/
- CVE Record: CVE-2026-126967
Ongoing Monitoring
Add the Sigma rules and KQL queries provided above to your detection stack. Continue monitoring for at least 90 days post-patch, as attackers may have established persistence before remediation. Watch for any additions to CISA's KEV catalog — if CVE-2026-126967 is added, federal civilian executive branch agencies will have a mandated remediation deadline under BOD 22-01, and all other organizations should treat it as an emergency patch.
Related Resources
Security Arsenal Penetration Testing Services AlertMonitor Platform Book a SOC Assessment vulnerability-management Intel Hub
Is your security operations ready?
Get a free SOC assessment or see how AlertMonitor cuts through alert noise with automated triage.