MS04-023: Vulnerability in HTML Help Could Allow Code Execution (840315)

2004-07-13T00:00:00
ID SMB_NT_MS04-023.NASL
Type nessus
Reporter Tenable
Modified 2017-07-14T00:00:00

Description

The remote host is subject to two vulnerabilities in the HTML Help and showHelp modules that could allow an attacker to execute arbitrary code on the remote host.

To exploit these flaws, an attacker would need to set up a rogue website containing a malicious showHelp URL, and would need to lure a user on the remote host to visit it. Once the user visits the website, a buffer overflow would allow the attacker to execute arbitrary commands with the privileges of the victim user.

                                        
                                            #
# (C) Tenable Network Security, Inc.
#

include("compat.inc");

if (description)
{
 script_id(13641);
 script_version("$Revision: 1.38 $");
 script_cvs_date("$Date: 2017/07/14 17:23:02 $");

 script_cve_id("CVE-2004-0201", "CVE-2003-1041");
 script_bugtraq_id(10705, 9320);
 script_osvdb_id(7803, 7804, 7912);
 script_xref(name:"CERT", value:"187196");
 script_xref(name:"MSFT", value:"MS04-023");
 script_xref(name:"MSKB", value:"840315");

 script_name(english:"MS04-023: Vulnerability in HTML Help Could Allow Code Execution (840315)");
 script_summary(english:"Checks for ms04-023 over the registry");

 script_set_attribute(attribute:"synopsis", value:
"Arbitrary code can be executed on the remote host through the web
client.");
 script_set_attribute(attribute:"description", value:
"The remote host is subject to two vulnerabilities in the HTML Help and
showHelp modules that could allow an attacker to execute arbitrary code
on the remote host.

To exploit these flaws, an attacker would need to set up a rogue website
containing a malicious showHelp URL, and would need to lure a user on
the remote host to visit it.  Once the user visits the website, a
buffer overflow would allow the attacker to execute arbitrary commands
with the privileges of the victim user.");
 script_set_attribute(attribute:"see_also", value:"https://technet.microsoft.com/library/security/ms04-023");
 script_set_attribute(attribute:"solution", value:
"Microsoft has released a set of patches for Windows 2000, XP and
2003.");
 script_set_cvss_base_vector("CVSS2#AV:N/AC:H/Au:N/C:C/I:C/A:C");
 script_set_cvss_temporal_vector("CVSS2#E:F/RL:OF/RC:C");
 script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available");
 script_set_attribute(attribute:"exploit_available", value:"true");

 script_set_attribute(attribute:"vuln_publication_date", value:"2003/12/29");
 script_set_attribute(attribute:"patch_publication_date", value:"2004/07/13");
 script_set_attribute(attribute:"plugin_publication_date", value:"2004/07/13");

 script_set_attribute(attribute:"plugin_type", value:"local");
 script_set_attribute(attribute:"cpe", value:"cpe:/o:microsoft:windows");
 script_end_attributes();

 script_category(ACT_GATHER_INFO);

 script_copyright(english:"This script is Copyright (C) 2004-2017 Tenable Network Security, Inc.");
 script_family(english:"Windows : Microsoft Bulletins");

 script_dependencies("smb_hotfixes.nasl", "ms_bulletin_checks_possible.nasl");
 script_require_keys("SMB/MS_Bulletin_Checks/Possible");
 script_require_ports(139, 445, 'Host/patch_management_checks');
 exit(0);
}

include("audit.inc");
include("smb_func.inc");
include("smb_hotfixes.inc");
include("smb_hotfixes_fcheck.inc");
include("misc_func.inc");

get_kb_item_or_exit("SMB/MS_Bulletin_Checks/Possible");

bulletin = 'MS04-023';
kb = '840315';

kbs = make_list(kb);
if (get_kb_item("Host/patch_management_checks")) hotfix_check_3rd_party(bulletin:bulletin, kbs:kbs, severity:SECURITY_HOLE);

get_kb_item_or_exit("SMB/Registry/Enumerated");
get_kb_item_or_exit("SMB/WindowsVersion", exit_code:1);

if (hotfix_check_sp_range(nt:'6', win2k:'2,4', xp:'0,1', win2003:'0') <= 0) audit(AUDIT_OS_SP_NOT_VULN);

rootfile = hotfix_get_systemroot();
if (!rootfile) exit(1, "Failed to get the system root.");

share = hotfix_path2share(path:rootfile);
if (!is_accessible_share(share:share)) audit(AUDIT_SHARE_FAIL, share);

if (
  hotfix_is_vulnerable(os:"5.2", sp:0, file:"Itss.dll", version:"5.2.3790.185", dir:"\system32", bulletin:bulletin, kb:kb) ||
  hotfix_is_vulnerable(os:"5.1", sp:1, file:"Itss.dll", version:"5.2.3790.185", dir:"\system32", bulletin:bulletin, kb:kb) ||
  hotfix_is_vulnerable(os:"5.1", sp:0, file:"Itss.dll", version:"5.2.3790.185", dir:"\system32", bulletin:bulletin, kb:kb) ||
  hotfix_is_vulnerable(os:"5.0", file:"Itss.dll", version:"5.2.3790.185", dir:"\system32", bulletin:bulletin, kb:kb) ||
  hotfix_is_vulnerable(os:"4.0", file:"Itss.dll", version:"5.2.3790.185", dir:"\system32", bulletin:bulletin, kb:kb)
)
{
  set_kb_item(name:"SMB/Missing/"+bulletin, value:TRUE);
  hotfix_security_hole();
  hotfix_check_fversion_end();
  exit(0);
}
else
{
  hotfix_check_fversion_end();
  audit(AUDIT_HOST_NOT, 'affected');
}