In the last 72 hours, NVD published seven CRITICAL-severity CVEs affecting Adobe Campaign Classic (ACC) deployments running on Windows, all carrying network attack vectors and CVSS scores ranging from 9.9 to a maximum of 10.0. The cluster includes CVE-2026-75699, CVE-2026-75721, CVE-2026-82013, CVE-2026-83660, CVE-2026-89276, CVE-2026-82443, and CVE-2026-82009.
The most severe of the set, CVE-2026-75699, is an Improper Control of Generation of Code (CWE-94, Code Injection) vulnerability that allows arbitrary code execution in the context of the current user — and critically, exploitation requires no user interaction. The CVSS scope is marked as Changed, meaning a successful exploit can impact resources beyond the vulnerable component itself. CVE-2026-75721 carries an identical 10.0 score and the same code injection classification, while CVE-2026-82013 follows at 9.9.
If you run Adobe Campaign Classic on Windows — and many enterprises do, often with the marketing console and web/application tiers reachable from internal networks or partner-facing segments — this is a patch-now event. A CVSS 10.0, network-exploitable, no-interaction code injection flaw in an application server is precisely the class of vulnerability that gets weaponized for initial access, and marketing automation platforms are attractive pivot points because they hold customer PII, SMTP credentials, and database connection strings.
Technical Analysis
Affected products and platforms
- Product: Adobe Campaign Classic (ACC), deployed on Windows Server (the
nlserverservice architecture) - Vulnerability class: Improper Control of Generation of Code — Code Injection (CWE-94)
- Attack vector: Network (AV:N), no user interaction required (UI:N), scope Changed (S:C) for the CVSS 10.0 entries
CVE inventory
| CVE | CVSS | Class |
|---|---|---|
| CVE-2026-75699 | 10.0 (Critical) | Code Injection, no user interaction, Scope: Changed |
| CVE-2026-75721 | 10.0 (Critical) | Code Injection |
| CVE-2026-82013 | 9.9 (Critical) | Code Injection (per NVD summary) |
| CVE-2026-83660 | Critical | Details pending full NVD enrichment |
| CVE-2026-89276 | Critical | Details pending full NVD enrichment |
| CVE-2026-82443 | Critical | Details pending full NVD enrichment |
| CVE-2026-82009 | Critical | Details pending full NVD enrichment |
How exploitation works — defender's view
A code injection flaw in ACC means an attacker can supply crafted input over the network that the server-side component evaluates or compiles as code, yielding arbitrary command execution in the context of the ACC service account (on Windows, the account running the nlserver services — frequently LOCAL SYSTEM or a dedicated service account with broad local privileges). The exploitation chain to watch for:
- Initial access: Malicious request reaches an exposed ACC web/application tier (commonly HTTP/HTTPS via IIS redirection or the built-in web module, typically ports 80/443, with the application server on TCP 8080).
- Execution: The vulnerable
nlserverprocess spawns unexpected child processes —cmd.exe,powershell.exe,wscript.exe, or dropped payloads — under the service account context. - Post-exploitation: Credential access against the ACC configuration (database connection strings in
config-*.xml, SMTP relay credentials), outbound C2 fromnlserver.exeor its children, and lateral movement from a server that often sits in a trusted internal segment.
The Scope: Changed metric on the two 10.0 CVEs is a red flag: impact bleeds beyond the ACC component boundary, consistent with full host compromise from the injected code.
Exploitation status
At time of writing, none of these seven CVEs are listed in the CISA Known Exploited Vulnerabilities (KEV) catalog, and no public proof-of-concept has been confirmed for the cluster. However, CVSS 10.0 network-exploitable code injection in a widely deployed enterprise platform is a near-certain candidate for rapid reverse engineering once patches are diffed. Treat the absence of confirmed exploitation as a window of opportunity, not reassurance. Monitor the NVD entries (https://nvd.nist.gov/vuln/detail/CVE-2026-75699) and Adobe's security bulletins page for status changes, and re-check KEV daily this week.
Detection & Response
Because the exploitation vector is code injection into the ACC service, the highest-fidelity endpoint signal is nlserver spawning shell or scripting child processes — legitimate Campaign Classic operation does not routinely invoke cmd.exe or powershell.exe from the application server outside of scripted workflow activities, which are themselves worth auditing. Pair that with network-layer inspection of requests hitting the ACC console/API endpoints.
---
title: Adobe Campaign Classic nlserver Spawning Shell or Script Interpreter
description: Detects cmd.exe, powershell.exe, or scripting hosts spawned by the Adobe Campaign Classic nlserver process, consistent with code injection exploitation (CVE-2026-75699 / CVE-2026-75721).
references:
- https://nvd.nist.gov/vuln/detail/CVE-2026-75699
- https://attack.mitre.org/techniques/T1059/
author: Security Arsenal
date: 2026/05/04
status: experimental
id: 3f7a1c94-2b6e-4d58-9a31-7c0e5f82a1b6
tags:
- attack.execution
- attack.t1059
logsource:
category: process_creation
product: windows
detection:
selection_parent:
ParentImage|endswith:
- '\nlserver.exe'
selection_child:
Image|endswith:
- '\cmd.exe'
- '\powershell.exe'
- '\pwsh.exe'
- '\wscript.exe'
- '\cscript.exe'
- '\mshta.exe'
- '\rundll32.exe'
condition: selection_parent and selection_child
falsepositives:
- ACC workflow activities legitimately invoking command-line jobs (audit workflow definitions before whitelisting)
level: critical
---
title: Suspicious Process Execution from Adobe Campaign Installation Directory
description: Detects execution of binaries or scripts from Adobe Campaign Classic installation or data directories that are not the core nlserver components, indicating dropped payloads after code injection.
references:
- https://nvd.nist.gov/vuln/detail/CVE-2026-75699
- https://attack.mitre.org/techniques/T1203/
author: Security Arsenal
date: 2026/05/04
status: experimental
id: 8b2d5e17-6a4f-4c91-b3d8-0f1a9e27c5d3
tags:
- attack.execution
- attack.t1203
logsource:
category: process_creation
product: windows
detection:
selection_path:
Image|contains:
- '\Adobe Campaign\'
- '\AdobeCampaign\'
- '\Neolane\'
filter_legit:
Image|endswith:
- '\nlserver.exe'
- '\nlclient.exe'
- '\setupclient.exe'
- '\watchdog.exe'
- '\inMail.exe'
- '\mta.exe'
- '\webmdl.exe'
- '\trackinglogd.exe'
- '\stat.exe'
- '\wfserver.exe'
- '\syslogd.exe'
- '\nlrunsv.exe'
condition: selection_path and not filter_legit
falsepositives:
- Third-party plugins or custom utilities installed into the ACC directory by administrators
level: high
---
title: Outbound Network Connection from Adobe Campaign nlserver to Uncommon Destination
description: Detects nlserver.exe establishing outbound connections to non-standard ports or external hosts, which may indicate C2 activity following code injection exploitation.
references:
- https://nvd.nist.gov/vuln/detail/CVE-2026-75699
- https://attack.mitre.org/techniques/T1071/
author: Security Arsenal
date: 2026/05/04
status: experimental
id: c41f9a63-1d8b-4e72-a6c4-2b9d3f58e7a0
tags:
- attack.command_and_control
- attack.t1071
logsource:
category: network_connection
product: windows
detection:
selection:
Image|endswith: '\nlserver.exe'
Initiated: 'true'
filter_common:
DestinationPort:
- 25
- 80
- 443
- 587
- 1433
- 1521
- 5432
- 8080
condition: selection and not filter_common
falsepositives:
- Custom integrations (SFTP, API endpoints on non-standard ports) - baseline ACC server egress before enabling at high volume
level: medium
// Hunt for shell/script interpreters spawned by Adobe Campaign Classic (nlserver) —
// consistent with code injection exploitation (CVE-2026-75699 / CVE-2026-75721).
// Covers the last 14 days; extend for retro-hunting after patching.
let lookback = 14d;
let suspiciousChildren = dynamic(["cmd.exe","powershell.exe","pwsh.exe","wscript.exe","cscript.exe","mshta.exe","rundll32.exe","certutil.exe","bitsadmin.exe"]);;
DeviceProcessEvents
| where TimeGenerated >= ago(lookback)
| where InitiatingProcessFileName =~ "nlserver.exe"
| where FileName has_any (suspiciousChildren)
| project TimeGenerated, DeviceName, AccountName,
InitiatingProcessCommandLine, FileName, ProcessCommandLine,
ProcessId, InitiatingProcessId, SHA256
| order by TimeGenerated desc
;
// Companion hunt: network connections initiated by nlserver to rare external destinations
DeviceNetworkEvents
| where TimeGenerated >= ago(lookback)
| where InitiatingProcessFileName =~ "nlserver.exe"
| where RemoteIPType == "Public"
| summarize ConnectionCount = count(), Ports = make_set(RemotePort),
FirstSeen = min(TimeGenerated), LastSeen = max(TimeGenerated)
by DeviceName, RemoteIP, RemoteUrl
| order by ConnectionCount asc
-- Hunt: Adobe Campaign Classic code injection post-exploitation artifacts
-- 1) nlserver child processes (shells, script hosts, LOLBins)
-- 2) Recently modified executables/scripts in ACC directories
LET acc_procs = SELECT Pid, Ppid, Name, CommandLine, Exe, Username, CreateTime
FROM pslist()
WHERE Name =~ '(?i)(cmd|powershell|pwsh|wscript|cscript|mshta|rundll32|certutil|bitsadmin)'
AND CommandLine =~ '(?i)(campaign|neolane|nlserver)'
LET acc_files = SELECT FullPath, Mtime, Ctime, Size
FROM glob(globs=['C:\\Program Files\\Adobe\\Adobe Campaign\\**\\*.exe',
'C:\\Program Files (x86)\\Adobe\\Adobe Campaign\\**\\*.exe',
'C:\\Program Files\\Adobe\\Adobe Campaign\\**\\*.ps1',
'C:\\Program Files\\Adobe\\Adobe Campaign\\**\\*.bat'])
WHERE Mtime > now() - 86400 * 14
SELECT * FROM acc_procs
UNION ALL
SELECT NULL, NULL, NULL, NULL, FullPath, 'FILE', Mtime FROM acc_files
Triage guidance
- Any hit on Rule 1 (nlserver → shell) is a P1 incident: isolate the ACC host, capture memory, and preserve
web.log,webmdl.log, and the IIS/connector logs before remediation. - Review ACC's own log directory (typically under the installation path) for malformed request entries preceding process execution timestamps.
- Check for new local accounts, new services, and scheduled tasks created in the same window — code injection in a service context routinely converts to persistence within minutes.
Remediation
Immediate (next 24 hours)
- Apply Adobe's security update for Campaign Classic. Obtain the fixed build from the official Adobe security bulletin at https://helpx.adobe.com/security.html and the Adobe Campaign release notes/Software Distribution portal. The bulletin maps CVE-2026-75699, CVE-2026-75721, CVE-2026-82013, CVE-2026-83660, CVE-2026-89276, CVE-2026-82443, and CVE-2026-82009 to the corrected build numbers — verify the exact patched build against your installed version with the script below before and after upgrade.
- Restrict network exposure of the ACC console and API. Limit access to the ACC web tier (IIS connector / ports 80, 443) and application server port (TCP 8080) to trusted admin subnets and load balancer IPs only. If the console is internet-reachable, place it behind a WAF or VPN immediately.
- Run the hunt queries above across all ACC hosts for at least a 14-day retrospective window before patching, to avoid patching over an active compromise.
Hardening (this week)
- Run the ACC service account with least privilege. If
nlserverruns asLOCAL SYSTEMor a domain account, migrate to a dedicated, gMSA-backed local service account with no domain privileges. - Enable and forward verbose ACC and IIS logs to your SIEM; ensure Sysmon (process creation with command line, network connections) is deployed on ACC servers.
- Audit ACC workflow definitions for legitimate command-line activities and document them — this is the baseline that makes the Sigma rules above quiet.
Verification script
Run on each ACC Windows host to inventory the installation, confirm exposure, and check for post-exploitation persistence:
# Adobe Campaign Classic — CVE-2026-75699 / -75721 verification & exposure check
# Run as Administrator on each ACC server
# 1) Identify installed ACC build (record for comparison against Adobe's patched build list)
Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*',
'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*' |
Where-Object { $_.DisplayName -match 'Adobe Campaign|Neolane' } |
Select-Object DisplayName, DisplayVersion, InstallLocation
# 2) Confirm nlserver service account context (should NOT be SYSTEM/Administrator)
Get-CimInstance Win32_Service |
Where-Object { $_.PathName -match 'nlserver|Adobe Campaign' } |
Select-Object Name, State, StartName, PathName
# 3) Check listening exposure of ACC ports (80/443 connector, 8080 app server)
Get-NetTCPConnection -State Listen |
Where-Object { $_.LocalPort -in 80,443,8080 } |
Select-Object LocalAddress, LocalPort, OwningProcess,
@{N='Process';E={(Get-Process -Id $_.OwningProcess).ProcessName}}
# 4) Audit Windows Firewall rules permitting ACC ports from broad scopes
Get-NetFirewallPortFilter | Where-Object { $_.LocalPort -in 80,443,8080 } |
ForEach-Object { Get-NetFirewallRule -AssociatedNetFirewallPortFilter $_ } |
Where-Object { $_.Enabled -eq 'True' -and $_.Direction -eq 'Inbound' } |
Select-Object DisplayName, Action, Profile
# 5) Hunt for recently created persistence on the ACC host (last 14 days)
$cutoff = (Get-Date).AddDays(-14)
Get-CimInstance Win32_Service | Where-Object { $_.InstallDate -gt $cutoff } |
Select-Object Name, PathName, StartName
Get-ScheduledTask | Where-Object { $_.Date -and (Get-Date $_.Date) -gt $cutoff } |
Select-Object TaskName, TaskPath, Date
Get-LocalUser | Where-Object { $_.Created -gt $cutoff } |
Select-Object Name, Created, Enabled
# 6) Pull recent suspicious child processes of nlserver from Security log (4688)
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4688; StartTime=$cutoff} -ErrorAction SilentlyContinue |
Where-Object { $_.Message -match 'nlserver\.exe' -and
$_.Message -match '(cmd\.exe|powershell\.exe|wscript\.exe|cscript\.exe|mshta\.exe|rundll32\.exe)' } |
Select-Object TimeCreated, Message -First 50
Governance
- Track these seven CVEs in your vulnerability management platform as a single emergency change with a 72-hour remediation SLA, consistent with CISA Binding Operational Directive 22-01-style urgency for CVSS 10.0 network-exploitable flaws — and escalate immediately if any of them are added to the KEV catalog, which triggers federal deadlines and is a strong signal for private-sector prioritization.
- After patching, re-run the verification script to confirm the patched build number and validate that console access is scoped to management networks.
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.