This is a loaded nail gun left in a retired workshop, dangerous up close but rarely sitting in the public lobby
Plugin tenable:40887 maps primarily to CVE-2009-3103, the SMBv2 negotiation flaw fixed by MS09-050 / KB975517. A remote attacker can send a specially crafted SMB packet to TCP/445 and crash the host or potentially execute code in kernel context. Microsoft and NVD tie the affected set to Windows Vista (Gold/SP1/SP2) and Windows Server 2008 (Gold/SP2), with historical mention of Windows 7 RC; this is not a broad modern-Windows issue.
Tenable's CRITICAL label is technically defensible in a vacuum because the bug is unauthenticated, network reachable, and has public exploit tooling. In real enterprise terms, though, severity comes down because the vulnerable population is now narrow, legacy, and usually internal-only; Microsoft explicitly noted default firewall/perimeter practices reduce outside reachability. For a 10,000-host program this is still a HIGH-priority legacy eradication item, not a drop-everything enterprise-wide emergency unless those systems are exposed or sitting on flat east-west networks.
4 steps from start to impact.
Find an SMBv2-speaking legacy host
40887 or SMB vulnerability scripts such as Nmap's smb-vuln-cve2009-3103 family.- Target exposes SMB on TCP/445 to the attacker
- Target is Windows Vista or Windows Server 2008 in the affected build range
- Most enterprises no longer run Vista, and surviving Server 2008 instances are usually known legacy islands
- Perimeter firewalls commonly block inbound SMB, sharply reducing internet reachability
Send crafted SMB negotiation traffic
exploit/windows/smb/ms09_050_smb2_negotiate_func_index, while Tenable also references CANVAS and Core Impact. The packet abuses parsing around the SMBv2 negotiate path and the Process ID High handling described by Microsoft/NVD.- Attacker can open an SMB session to the target
- No network control drops malformed SMB negotiation traffic
- SMB inspection, IPS signatures, or strict ACLs can break the exploit path before kernel handling
- Some environments disable SMBv2 on these legacy systems as a compensating control
Trigger kernel memory misuse in srv2.sys
- Target remains unpatched for MS09-050 / KB975517
- Exploit traffic reaches the SMB Server service intact
- Reliable RCE is harder than reliable crash behavior on old kernel bugs
- Legacy-host instability, nondefault network stacks, and inline filtering can reduce exploit reliability
Move from single host compromise to estate impact
- Compromised host has useful trust relationships or stored credentials
- Attacker already has connectivity into the same segment or enclave
- Segmentation, admin tiering, and modern EDR contain post-exploitation better than they did in 2009
- Many remaining Server 2008 systems are isolated because they are legacy dependencies
The supporting signals.
| In-the-wild status | Public disclosure landed on 2009-09-08 and Microsoft treated it as urgent enough for MS09-050 on 2009-10-13. Tenable also notes the exploit family name EDUCATEDSCHOLAR from the 2017 Shadow Brokers dump, but I do not see this CVE in the current CISA KEV catalog. |
|---|---|
| Proof-of-concept / weaponization | Weaponized tooling is longstanding: Rapid7 Metasploit module, plus Tenable references CANVAS and Core Impact. |
| EPSS | A current secondary-source lookup reports EPSS 0.92229 (~92.2%, very high relative likelihood) on Vulners. Treat this as supporting threat context, not as authoritative impact scoring. |
| KEV status | Not listed in the current CISA Known Exploited Vulnerabilities catalog. That lowers urgency versus modern edge RCEs with confirmed active exploitation. |
| CVSS vector meaning | Tenable scores it 9.8 / CRITICAL with CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H: remote, low-complexity, no auth, no user action, full CIA impact *if* the target is reachable and actually running the affected stack. |
| Affected versions | Microsoft and NVD point to Windows Vista Gold/SP1/SP2 and Windows Server 2008 Gold/SP2; NVD also historically mentions Windows 7 RC. This is a legacy-only footprint now. |
| Fixed version / patch | Microsoft fixed the issue in MS09-050 via Security Update 975517; the earlier Security Advisory 975497 documented a workaround to disable SMBv2 before patch release. |
| Exposure reality | The big friction is exposure population, not exploit theory. Microsoft explicitly said default firewall and perimeter practices help because attacks generally need access to SMB from outside the enterprise perimeter; for most modern estates, reachable Vista/Server 2008 SMB is a small, highly local subset. |
| Disclosure / patch dates | Public advisory: 2009-09-08. Security bulletin and patch: 2009-10-13. |
| Researcher / reporting trail | Microsoft's exploit timeline cites initial public disclosure with PoC on 2009-09-07 followed by Microsoft's advisory on 2009-09-08; NVD/MITRE preserve the vulnerability record as CVE-2009-3103. |
noisgate verdict.
The decisive factor is population friction: this bug is only relevant to a shrinking pool of legacy Windows Vista / Server 2008 systems, and most of those are not internet-facing. The exploit path is still pre-auth network RCE, so once an attacker can reach one of those boxes the impact is severe enough to keep this out of MEDIUM.
Why this verdict
- Start at the vendor baseline: unauthenticated SMB RCE against a kernel-facing service deserves a high starting point, and Tenable's
9.8is understandable on pure exploit mechanics. - First downward adjustment — attacker position: the attacker must reach SMB on TCP/445. In real enterprises that usually means internal network access, VPN access, or a bad firewall exception, which implies either post-initial-access or a narrowly exposed edge case.
- Second downward adjustment — exposed population: vulnerable builds are basically Vista and Server 2008-era hosts. That is a tiny fraction of modern fleets, so the blast radius is constrained by asset rarity even before you talk about patching.
- Third downward adjustment — modern controls: NGFW/ACLs, SMB blocking at the perimeter, IPS signatures, and segmentation should stop or sharply limit step 1 and step 2 in a well-run estate.
- Why it does not fall further: once those frictions are removed, this is still pre-auth remote code execution with established weaponization, and legacy hosts often sit in brittle enclaves with weak containment.
Why not higher?
This is not a current broad-spectrum Windows exposure problem. It needs a very specific, obsolete target population, and Microsoft itself highlighted that standard firewall posture reduces reachability from outside the perimeter. The absence of a current KEV listing also matters: there is no present-day government-backed signal that this is a routine active-exploitation priority across enterprises.
Why not lower?
Dropping this to MEDIUM would underweight the core fact pattern: no authentication, no user interaction, network service, potential kernel-level RCE. If your scanner still finds this, you likely have a legacy host that can be taken down remotely and maybe fully compromised by anyone who can talk SMB to it. That is too dangerous for backlog-only treatment.
What to do — in priority order.
- Block inbound SMB — Enforce TCP/445 and TCP/139 deny rules at every internet boundary and inter-segment choke point touching legacy enclaves. This directly removes the pre-auth attack path and, for a HIGH verdict, should be verified within 30 days.
- Isolate legacy Windows nodes — Move remaining Vista/Server 2008 systems into tightly scoped VLANs or firewall groups with only approved application peers. Treat them as containment zones and complete that segmentation within 30 days.
- Disable SMBv2 where business-safe — Microsoft's pre-patch workaround for this issue was to disable SMBv2. Use it as a temporary risk reduction on affected legacy hosts that cannot be patched immediately, and push the change within 30 days after validating application impact.
- Push IDS/IPS coverage — Ensure network detection for malformed SMB negotiation traffic is enabled on sensors covering legacy segments. This is not a substitute for patching, but it buys visibility while containment is rolled out within 30 days.
- Hunt for stragglers — Use CMDB plus unauthenticated SMB scanning to identify any remaining Vista/Server 2008 nodes and confirm whether
KB975517is present. For a HIGH verdict, finish the inventory reconciliation within 30 days so remediation can be tracked cleanly.
- MFA does nothing here because the exploit is pre-auth against SMB.
- Email security or browser isolation do nothing for the direct network exploit path.
- Endpoint hardening alone is weak coverage if the host remains reachable on SMB; this bug is in the network service path before userland controls matter much.
Crowdsourced verification payload.
Run this on the target Windows host from an elevated PowerShell session: powershell -ExecutionPolicy Bypass -File .\check-ms09-050.ps1. It needs local admin rights to read OS/version and installed hotfix data; use it on suspected Vista/Server 2008 systems, not from an auditor workstation.
# check-ms09-050.ps1
# Detect likely exposure to MS09-050 / KB975517 (CVE-2009-3103 primary)
# Output: VULNERABLE / PATCHED / UNKNOWN
# Exit codes: 0=PATCHED, 1=VULNERABLE, 2=UNKNOWN
$ErrorActionPreference = 'SilentlyContinue'
function Out-Result {
param(
[string]$Status,
[string]$Reason,
[int]$Code
)
Write-Output ("{0}: {1}" -f $Status, $Reason)
exit $Code
}
# Collect OS info
$os = Get-CimInstance Win32_OperatingSystem
if (-not $os) {
Out-Result -Status 'UNKNOWN' -Reason 'Unable to query Win32_OperatingSystem.' -Code 2
}
$caption = [string]$os.Caption
$version = [string]$os.Version
$sp = [string]$os.ServicePackMajorVersion
# Affected families for this plugin/advisory are primarily Vista and Server 2008.
$isVista = $caption -match 'Windows Vista'
$is2008 = $caption -match 'Windows Server 2008(?! R2)'
if (-not ($isVista -or $is2008)) {
Out-Result -Status 'UNKNOWN' -Reason ("Host OS '{0}' is not a primary MS09-050 affected family (Vista / Server 2008)." -f $caption) -Code 2
}
# Check whether the security update is installed.
# Microsoft bulletin MS09-050 maps to security update 975517.
$kbId = 'KB975517'
$hotfix = Get-HotFix -Id $kbId
if ($hotfix) {
Out-Result -Status 'PATCHED' -Reason ("{0} is installed on {1} {2} SP{3}." -f $kbId, $caption, $version, $sp) -Code 0
}
# Fallback: query WMI hotfix list in case Get-HotFix misses older records
$wmiHotfix = Get-CimInstance Win32_QuickFixEngineering | Where-Object { $_.HotFixID -eq $kbId }
if ($wmiHotfix) {
Out-Result -Status 'PATCHED' -Reason ("{0} found via Win32_QuickFixEngineering on {1} {2} SP{3}." -f $kbId, $caption, $version, $sp) -Code 0
}
# Optional SMBv2 check for context only
$smb2Disabled = $false
$regPath = 'HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters'
$reg = Get-ItemProperty -Path $regPath
if ($reg) {
if ($null -ne $reg.Smb2) {
if ([int]$reg.Smb2 -eq 0) { $smb2Disabled = $true }
}
}
if ($smb2Disabled) {
Out-Result -Status 'UNKNOWN' -Reason ("{0} not found, but SMBv2 appears disabled via registry workaround. Host may be mitigated but patch state is not confirmed." -f $kbId) -Code 2
}
Out-Result -Status 'VULNERABLE' -Reason ("{0} not found on likely affected OS '{1}' version {2} SP{3}." -f $kbId, $caption, $version, $sp) -Code 1
If you remember one thing.
tenable:40887 as a legacy-host exception hunt: confirm whether the asset is truly Vista/Server 2008, verify whether KB975517 is missing, and immediately check whether SMB is reachable from untrusted or broad internal networks. For this HIGH verdict, the noisgate mitigation SLA is ≤30 days for containment actions like SMB blocking, segmentation, or disabling SMBv2 where safe; the noisgate remediation SLA is ≤180 days to apply the vendor fix or, more realistically for most estates, retire or migrate the host. If any affected system is internet-facing or lives on a flat user/server segment, compress that schedule aggressively and treat it as an exception requiring near-term ownership.Sources
What defenders are saying.
Crowdsourced verification outputs.
Results submitted by users who ran the verification payload against their environment.