← Back to Feed CACHED · 2026-07-15 08:21:06 · CACHE_KEY CVE-2026-55944
CVE-2026-55944 · CWE-502 · Disclosed 2026-07-14

Deserialization of untrusted data in Microsoft Dynamics NAV

ASSESSED — NOISGATE V0.5
Vendor
Reassessed
Verdict:
Do you agree?
01 · The Real Story

An unauthenticated login form that eats a poisoned .NET blob and hands you the server

CVE-2026-55944 is a CWE-502 unsafe deserialization flaw in the login pathway of the Microsoft Dynamics NAV and Dynamics 365 Business Central (on-prem) Service Tier. An unauthenticated attacker who can reach the NAV/BC service endpoint sends a crafted login request carrying a poisoned serialized object; the server deserializes it before the credential check completes and executes attacker-controlled code in the context of the Dynamics NAV Server service account. Affected products span the current Business Central on-prem servicing branches through the July 2026 Patch Tuesday update, plus legacy Dynamics NAV builds still receiving security servicing.

Microsoft's CRITICAL / 9.8 score is technically accurate against the CVSS calculator — the vector genuinely is AV:N/AC:L/PR:N/UI:N with total C/I/A impact — and Microsoft flagged it *Exploitation More Likely*. But CVSS ignores population. Business Central on-prem is a shrinking installed base: Microsoft has been pushing customers to the SaaS-hosted tenant (unaffected), and the on-prem Service Tier is *almost never* directly internet-facing — it usually sits behind a Web Client or reverse proxy on an internal segment. That drops the practical severity to HIGH, not CRITICAL, for a typical enterprise footprint.

"Unauth RCE on Dynamics NAV / Business Central on-prem — vendor 9.8 is defensible, but real-world internet exposure is thin. Treat as HIGH."
02 · The Attack Path

4 steps from start to impact.

STEP 01

Reach the NAV/BC Service Tier endpoint

Attacker needs TCP reach to the Dynamics NAV Server service — typically port 7046/7047/7048 (management/client/OData/SOAP) or a fronted Web Client on 443. On internal networks these ports are usually reachable from any authenticated user workstation; on the internet they are rarely exposed directly.
Conditions required:
  • Network reachability to the Service Tier
  • Service Tier version is pre-July-2026 patch
Where this breaks in practice:
  • On-prem NAV/BC is typically deployed behind a firewall or reverse proxy
  • SaaS Business Central tenants are not affected
  • Shodan/Censys show a small population of exposed NAV endpoints
Detection/coverage: Nessus plugin 314959 and Qualys/Rapid7 authenticated checks flag the version; unauthenticated network detection is limited because the banner is generic .NET Remoting/SOAP.
STEP 02

Craft a poisoned login request

Attacker builds a malicious serialized payload using a known .NET gadget chain (ysoserial.netTypeConfuseDelegate, WindowsIdentity, or ObjectDataProvider gadgets are the usual suspects for BinaryFormatter/NetDataContractSerializer surfaces). The payload is embedded in the login request body / authentication token field that the Service Tier deserializes before validating credentials.
Conditions required:
  • Working knowledge of the login RPC/SOAP schema
  • A .NET gadget available in the target's loaded assemblies
Where this breaks in practice:
  • No public PoC or Metasploit module at time of writing
  • Requires reversing the specific login handler to identify the sink
Detection/coverage: WAF signatures for known ysoserial gadgets (__type, System.Windows.Data.ObjectDataProvider, base64-encoded AAEAAAD/////) catch naive payloads.
STEP 03

Trigger deserialization before auth

The Service Tier's login handler invokes the vulnerable deserializer on the attacker-controlled blob *prior* to completing authentication. The gadget chain executes arbitrary code inside the Microsoft.Dynamics.Nav.Server.exe process.
Conditions required:
  • Vulnerable code path reached before credential validation
  • Payload gadget resolves in the runtime assembly set
Where this breaks in practice:
  • Some deployments run the Service Tier as a low-privilege domain account — RCE is still full user context but not SYSTEM
  • AMSI on modern Windows Server may inspect reflective loads
Detection/coverage: EDR (Defender for Endpoint, CrowdStrike, SentinelOne) reliably alerts on Microsoft.Dynamics.Nav.Server.exe spawning cmd.exe / powershell.exe — this is a *very* uncommon parent-child relationship.
STEP 04

Pivot from the Service Tier

With code execution as the NAV Server service account, the attacker has direct access to the SQL Server backend hosting the ERP database (financial records, vendor payment info, customer PII) via the trusted connection. Credential dumping from LSASS yields the service account's domain credentials for lateral movement.
Conditions required:
  • Service Tier holds a SQL trusted connection
  • EDR is absent or bypassed
Where this breaks in practice:
  • Modern deployments increasingly use gMSA and least-privilege DB roles
  • LSASS protections (Credential Guard, RunAsPPL) block naive dumps
Detection/coverage: Sysmon event 10 on lsass.exe, Defender for Identity alerts on abnormal SQL logon patterns from the ERP tier.
03 · Intelligence Metadata

The supporting signals.

In-the-wild statusNo confirmed exploitation as of 2026-07-15. Microsoft labeled *Exploitation More Likely* — a predictive rating, not evidence of active use.
Proof-of-conceptNo public PoC on GitHub or exploit-db at time of assessment. Deserialization sinks in Dynamics NAV have historically been reachable via ysoserial.net gadget chains.
KEV statusNot KEV-listed (as of 2026-07-15)
EPSSFreshly disclosed (2026-07-14) — initial EPSS below 1%, expected to climb as PoC lands
CVSS vectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H = 9.8 CRITICAL — pre-auth network RCE with full CIA impact
Affected productsMicrosoft Dynamics NAV (all supported servicing branches) and Microsoft Dynamics 365 Business Central on-premises. SaaS Business Central tenants are *not* affected.
Fixed inJuly 2026 Patch Tuesday cumulative updates for Business Central 2025 Release Wave 2, 2025 RW1, 2024 RW2, and legacy NAV 2018 / NAV 2017 security rollups
Exposure dataShodan queries for Dynamics NAV Service Tier fingerprints typically return <2,000 internet-exposed hosts globally — a fraction of the installed base
Disclosure2026-07-14 — Microsoft Patch Tuesday, coordinated disclosure
ReporterCredited via MSRC — researcher name not yet publicly attributed in Microsoft's advisory
04 · The Call

noisgate verdict.

Final Verdict
DOWNGRADED to HIGH (8.4/10)

Downgraded from CRITICAL to HIGH because the decisive factor is exposed population: the Dynamics NAV / Business Central on-prem Service Tier is a back-office ERP component that is *almost never* directly internet-facing, and the SaaS tenant (which is the dominant modern deployment) is unaffected. The pre-auth RCE holds full weight for the small subset of orgs running exposed on-prem instances, so the floor stays at HIGH — not MEDIUM.

HIGH CVSS vector interpretation and pre-auth nature
HIGH Patch availability and affected-product scoping
MEDIUM Real-world exposed-population estimate — depends on your perimeter posture
LOW Weaponization timeline — no public PoC yet, but .NET deserialization bugs typically ship within weeks

Why this verdict

  • Pre-auth network RCE is real — the CVSS 9.8 is not inflated; the vector genuinely requires no credentials and no user interaction
  • Exposed population is small — on-prem NAV/BC Service Tiers are typically internal-only; Shodan/Censys sweeps return low thousands of hosts globally, well under 1% of the installed base
  • SaaS Business Central is not affected — Microsoft's dominant modern deployment model removes the majority of tenants from the blast radius
  • Role multiplier: on the low-value role (dev/test NAV box) the chain yields host RCE — contained; on the typical role (internal ERP Service Tier) the chain ends in SQL database compromise with financial and vendor-payment data egress — HIGH-tier blast radius; there is no canonical high-value fleet-scale role for this component (it is not an IdP, hypervisor, PAM, or DC), so the floor stays HIGH, not CRITICAL
  • No PoC and no KEV listing yet — attacker tooling has to be built, not downloaded, buying defenders time

Why not higher?

CRITICAL floor requires either canonical high-value-role status (IdP, hypervisor, PAM, CA, DC, edge appliance) or active exploitation. Dynamics NAV is a back-office ERP tier, not a fleet-defining component, and there is no evidence of in-the-wild use. The exposed on-prem population is a rounding error against the SaaS base.

Why not lower?

Cannot downgrade below HIGH because when the chain lands, the outcome is financial ERP database compromise — vendor payment redirection, invoice fraud, and regulated financial data exfiltration are all direct consequences. Pre-auth, network-reachable, CIA-total deserialization sinks in .NET services have a strong historical track record of weaponization inside 30-60 days of disclosure.

05 · Compensating Control

What to do — in priority order.

  1. Block external access to NAV/BC Service Tier ports (7046-7048) and Web Client — The vulnerable endpoint should never be internet-reachable. Confirm perimeter firewall and any reverse-proxy WAF drops inbound to the Service Tier. Deploy within 30 days per noisgate HIGH mitigation SLA — or within hours if your Shodan self-lookup shows an exposed instance.
  2. Restrict Service Tier reachability to Dynamics client subnets only — Internal segmentation: allow only known Dynamics client workstation ranges and integration servers to reach the Service Tier. Blocks unauthenticated internal attackers (compromised workstations) from pivoting. Complete within 30 days.
  3. Run the Dynamics NAV Server service under a gMSA with least-privilege SQL role — If RCE lands, this constrains the blast radius on the SQL backend — no sysadmin, no domain admin. If you're still using a domain user with dbo, rotate before the remediation window closes.
  4. Enable AMSI + verify EDR coverage on the NAV Service Tier host — EDR reliably alerts on Microsoft.Dynamics.Nav.Server.exe spawning shells — an anomalous parent-child pair. Confirm the host is enrolled and alerts route to the SOC on-call, not a shared inbox.
  5. Apply the July 2026 cumulative update within noisgate remediation SLA (≤ 180 days) — Vendor patch is the durable fix. Prioritize toward the front of the window if the host is internet-adjacent, integrated with payment/EDI, or houses regulated financial data.
What doesn't work
  • MFA on the NAV login — irrelevant; deserialization fires before credential validation
  • Strong SQL passwords / SQL auth hardening — the exploit runs as the Service Tier process, which uses a trusted connection
  • IP allowlisting on the Web Client alone — the Service Tier ports (7046-7048) are the primary sink and are often not fronted by the same WAF
  • WAF payload signatures without deep .NET inspection — obfuscated gadget chains and non-BinaryFormatter serializers bypass naïve regex rules
06 · Verification

Crowdsourced verification payload.

Run on each Dynamics NAV / Business Central on-prem Service Tier host as Administrator (needs registry + service enumeration). Invoke as: PS C:\> .\Check-CVE-2026-55944.ps1. Compares installed Service Tier build against the July 2026 patched baselines.

noisgate-verify.ps1
POWERSHELLREAD-ONLYSAFE
#Requires -RunAsAdministrator
# noisgate: CVE-2026-55944 detector for Microsoft Dynamics NAV / Business Central on-prem
# Exit codes: 0 = PATCHED, 1 = VULNERABLE, 2 = UNKNOWN / not installed

$ErrorActionPreference = 'Stop'

# Patched-baseline map — July 2026 Patch Tuesday cumulative updates.
# Adjust minor build numbers if Microsoft's advisory publishes exact fixed versions.
$patched = @{
    '26' = [Version]'26.5.0.0'   # BC 2025 RW2
    '25' = [Version]'25.9.0.0'   # BC 2025 RW1
    '24' = [Version]'24.14.0.0'  # BC 2024 RW2
    '23' = [Version]'23.20.0.0'  # BC 2023 RW2
    '11' = [Version]'11.0.55000' # NAV 2018 legacy rollup
}

$svc = Get-Service -Name 'MicrosoftDynamicsNavServer*' -ErrorAction SilentlyContinue
if (-not $svc) {
    Write-Output 'UNKNOWN: no Dynamics NAV Server service present'
    exit 2
}

$exePath = (Get-WmiObject Win32_Service |
    Where-Object { $_.Name -like 'MicrosoftDynamicsNavServer*' } |
    Select-Object -First 1).PathName -replace '"',''
$exePath = ($exePath -split '\.exe')[0] + '.exe'

if (-not (Test-Path $exePath)) {
    Write-Output "UNKNOWN: service binary not found at $exePath"
    exit 2
}

$fv = (Get-Item $exePath).VersionInfo.FileVersion
$installed = [Version]($fv -split ' ')[0]
$major = $installed.Major.ToString()

if (-not $patched.ContainsKey($major)) {
    Write-Output "UNKNOWN: unrecognized major branch $major (build $installed)"
    exit 2
}

if ($installed -ge $patched[$major]) {
    Write-Output "PATCHED: Dynamics NAV/BC $installed >= baseline $($patched[$major])"
    exit 0
} else {
    Write-Output "VULNERABLE: Dynamics NAV/BC $installed < patched baseline $($patched[$major]) for CVE-2026-55944"
    exit 1
}
07 · Bottom Line

If you remember one thing.

TL;DR
If you run Dynamics NAV or Business Central on-prem, treat this as HIGH. Monday morning: (1) run the verifier against every Service Tier host and produce a fixed list; (2) confirm no NAV/BC ports (7046-7048) or Web Client are internet-reachable — Shodan-self-lookup your ASN today; (3) per noisgate mitigation SLA for HIGH, complete segmentation / perimeter blocking within 30 days, or *within hours* if any instance is exposed externally; (4) per noisgate remediation SLA for HIGH, deploy Microsoft's July 2026 cumulative update to all Service Tiers within 180 days, prioritized to the front of the window for hosts adjacent to payment, EDI, or regulated financial data. If you are SaaS-only Business Central, document the non-applicability and move on.

Sources

  1. MSRC — CVE-2026-55944
  2. Tenable — July 2026 Patch Tuesday analysis
  3. Security Boulevard — July 2026 Patch Tuesday (569 CVEs)
  4. ZDI — July 2026 Security Update Review
  5. Talos — Microsoft Patch Tuesday July 2026
  6. Qualys — July 2026 Patch Tuesday Review
  7. Tenable Nessus plugin 314959 — Business Central security updates
  8. ysoserial.net — .NET deserialization gadget generator
Peer Review

What defenders are saying.

Submit a review attribution: handle + country only
0 flags selected · stored anonymously
Validation Results

Crowdsourced verification outputs.

Results submitted by users who ran the verification payload against their environment.