Lucene search

K
openvasCopyright (C) 2010 SecPodOPENVAS:902193
HistoryJun 09, 2010 - 12:00 a.m.

Microsoft .NET Framework XML HMAC Truncation Vulnerability (981343)

2010-06-0900:00:00
Copyright (C) 2010 SecPod
plugins.openvas.org
21

0.973 High

EPSS

Percentile

99.8%

This host is missing a critical security update according to
Microsoft Bulletin MS10-041.

###############################################################################
# OpenVAS Vulnerability Test
# $Id: secpod_ms10-041.nasl 5361 2017-02-20 11:57:13Z cfi $
#
# Microsoft .NET Framework XML HMAC Truncation Vulnerability (981343)
#
# Authors:
# Antu Sanadi <[email protected]>
#
# Updated By: Madhuri D <[email protected]> on 2010-11-15
#   - To detect file version 'System.Security.dll' on vista, win 2008 and win 7 os
#
# Copyright:
# Copyright (c) 2010 SecPod, http://www.secpod.com
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2
# (or any later version), as published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
###############################################################################

tag_impact = "Successful exploitation will allow the attackers to forge an XML signature that
  will be accepted as valid or to bypass security restrictions.
  Impact Level: System/Application.";
tag_affected = "Microsoft .NET Framework 3.5/SP 1
  Microsoft .NET Framework 1.1 SP 1
  Microsoft .NET Framework 1.0 SP 3
  Microsoft .NET Framework 2.0 SP 1/SP 2";
tag_insight = "The issue is caused by an error in the XML Signature Syntax and Processing
  (XMLDsig) implementation that rely on the 'HMACOutputLength' parameter to
  determine the number of bytes of the signature to be verified.";
tag_solution = "Run Windows Update and update the listed hotfixes or download and
  update mentioned hotfixes in the advisory from the below link,
  http://technet.microsoft.com/en-us/security/bulletin/MS10-041";
tag_summary = "This host is missing a critical security update according to
  Microsoft Bulletin MS10-041.";

if(description)
{
  script_id(902193);
  script_version("$Revision: 5361 $");
  script_tag(name:"last_modification", value:"$Date: 2017-02-20 12:57:13 +0100 (Mon, 20 Feb 2017) $");
  script_tag(name:"creation_date", value:"2010-06-09 17:19:57 +0200 (Wed, 09 Jun 2010)");
  script_cve_id("CVE-2009-0217");
  script_tag(name:"cvss_base", value:"5.0");
  script_tag(name:"cvss_base_vector", value:"AV:N/AC:L/Au:N/C:N/I:P/A:N");
  script_name("Microsoft .NET Framework XML HMAC Truncation Vulnerability (981343)");
  script_xref(name : "URL" , value : "http://support.microsoft.com/kb/981343");
  script_xref(name : "URL" , value : "http://www.vupen.com/english/advisories/2010/1398");
  script_xref(name : "URL" , value : "http://technet.microsoft.com/en-us/security/bulletin/MS10-041");

  script_category(ACT_GATHER_INFO);
  script_copyright("Copyright (C) 2010 SecPod");
  script_family("Windows : Microsoft Bulletins");
  script_dependencies("secpod_reg_enum.nasl");
  script_require_ports(139, 445);
  script_mandatory_keys("SMB/WindowsVersion");

  script_tag(name : "impact" , value : tag_impact);
  script_tag(name : "affected" , value : tag_affected);
  script_tag(name : "insight" , value : tag_insight);
  script_tag(name : "solution" , value : tag_solution);
  script_tag(name : "summary" , value : tag_summary);
  script_tag(name:"qod_type", value:"registry");
  script_tag(name:"solution_type", value:"VendorFix");
  exit(0);
}


include("smb_nt.inc");
include("secpod_reg.inc");
include("version_func.inc");
include("secpod_smb_func.inc");

if(hotfix_check_sp(xp:4, win2k:5, win2003:3,  winVista:3, win2008:3, win7:1) <= 0){
  exit(0);
}

# MS10-041 Hotfix check
if((hotfix_missing(name:"979907") == 0) || (hotfix_missing(name:"979906") == 0) ||
   (hotfix_missing(name:"979909") == 0) || (hotfix_missing(name:"979904") == 0) ||
   (hotfix_missing(name:"982865") == 0) || (hotfix_missing(name:"979913") == 0) ||
   (hotfix_missing(name:"979911") == 0) || (hotfix_missing(name:"979910") == 0) ||
   (hotfix_missing(name:"979916") == 0 )){
    exit(0);
}

key  = "SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDlls\";
if(registry_key_exists(key:key))
{
  # Get the location of System.Security.dll
  foreach dllPath (registry_enum_values(key:key))
  {
    if((".NET" >< dllPath) && ("System.Security.dll" >< dllPath))
    {
      share = ereg_replace(pattern:"([a-zA-Z]):.*", replace:"\1$", string:dllPath);
      file = ereg_replace(pattern:"[a-zA-Z]:(.*)", replace:"\1", string:dllPath);

      # Get the version of System.Security.dll
      dllVer = GetVer(file:file, share:toupper(share));
      if(!isnull(dllVer))
      {
        # Check forSystem.Security.dll 1  < 1.1.4322.2463, 2.0.50727.4434, 2.0.50727.1879
        if(version_in_range(version:dllVer, test_version:"1.1",test_version2:"1.1.4322.2462") ||
           version_in_range(version:dllVer, test_version:"2.0.50727.1000",test_version2:"2.0.50727.1878")||
           version_in_range(version:dllVer, test_version:"2.0.50727.4000",test_version2:"2.0.50727.4433"))
        {
          security_message(0);
          exit(0);
        }
      }
    }
  }
}

key = "SOFTWARE\Microsoft\ASP.NET\";
if(!registry_key_exists(key:key)){
  exit(0);
}

foreach item (registry_enum_keys(key:key))
{
  path = registry_get_sz(key:key + item, item:"Path");
  if("\Microsoft.NET\Framework" >< path)
  {
    # Get the version of system.security.dll
    dllVer = fetch_file_version(sysPath:path, file_name:"system.security.dll");
    if(dllVer)
    {
      ## Windows 2008 Server and vista
      if(hotfix_check_sp(winVista:3, win2008:3) > 0)
      {
        # Check for System.Security.dll version < 1.1.4322.2463, 2.0.50727.3613, 2.0.50727.1878, 2.0.50727.4204
        if(version_in_range(version:dllVer, test_version:"1.1",test_version2:"1.1.4322.2462") ||
           version_in_range(version:dllVer, test_version:"2.0.50727.1000", test_version2:"2.0.50727.1877") ||
           version_in_range(version:dllVer, test_version:"2.0.50727.3000", test_version2:"2.0.50727.3612") ||
           version_in_range(version:dllVer, test_version:"2.0.50727.4000", test_version2:"2.0.50727.4203") ||
           version_in_range(version:dllVer, test_version:"2.0.50727.4400", test_version2:"2.0.50727.4433"))
        {
          security_message(0);
          exit(0);
        }
      }

      ## Windows 7
      if(hotfix_check_sp(win7:1) > 0)
      {
        # Check for System.Security.dll version < 2.0.50727.4951
        if(version_in_range(version:dllVer, test_version:"2.0.50727.4000", test_version2:"2.0.50727.4950") ||
           version_in_range(version:dllVer, test_version:"2.0.50727.5000", test_version2:"2.0.50727.5006"))
        {
          security_message(0);
          exit(0);
        }
      }
    }
  }
}