CVE:CVE-2004-0206
CNNVD:CNNVD-200411-020
Network DDE DSDM(DDE Share Database Manager)服务负责维护所有活动的网络DDE共享的一个列表并管理NetDDE连接。
Microsoft的NetDDE服务由于对缓冲区缺少正确的边界缓冲区检查，远程攻击者可以利用这个漏洞以服务进程权限在系统上执行任意指令。
NetDDE引出的函数以如下方式授权可信状态给一个共享：
UINT NDdeSetTrustedShare(
~  LPTSTR lpszServer，
~  LPTSTR lpszShareName，
~  DWORD dwTrustOptions
);
第一个参数lpszServer，指定运行NetDDE和DSDM服务的服务器名，第二个参数lpszShareName，是获得可信任状态的共享名，第三个参数dwTrustOptions描述在共享上的操作。
NetDDE在注册表中维护可信共享列表，在成功执行'set trusted share'请求后就会修改此表，当尝试在这个操作上构建绝对注册表路径时，lpszShareName字符串值链接字符到可信共享root路径并拷贝到堆栈缓冲区中，由于对这个操作没有进行任何边界检查，提交超长字符串可能以进程权限在系统上执行任意指令。
当观察远程NetDDE服务进行NDdeSetTrustedShare()调用时，可看到需要验证会话建立才能调用通过。默认NULL会话权限不允许。
不过在NGSSoftware的后续研究中发现，应用程序与NetDDE服务器和两个NetDDE服务通信的网络交互有些不一样，当两个NetDDE服务需要通信时，NetBIOS会代替SMB传送数据，因此两个NetDDE服务建立通信只需要NetBIOS会话设置请求。
攻击者可以简单的通过NetBIOS与受此漏洞影响的交互，而不需要通过验证来实现。
solution:Upgrade microsoft windows_2000 to a higher version than *; Upgrade microsoft windows_2003_server to a higher version than r2,and avoid the version r2; Upgrade microsoft windows_98 to a higher version than *:gold,and avoid the version *:gold; Upgrade microsoft windows_nt to a higher version than 4.0,and avoid the version 4.0; Upgrade microsoft windows_xp to a higher version than *:gold,and avoid the version *:gold