Vulnerabilities > CVE-2009-0100 - Resource Management Errors vulnerability in Microsoft products
Summary
Microsoft Office Excel 2000 SP3, 2002 SP3, 2003 SP3, and 2007 SP1; Excel in Microsoft Office 2004 and 2008 for Mac; Microsoft Office Excel Viewer and Excel Viewer 2003 SP3; and Microsoft Office Compatibility Pack for Word, Excel, and PowerPoint 2007 File Formats SP1 do not properly parse the Excel spreadsheet file format, which allows remote attackers to execute arbitrary code via a crafted spreadsheet that contains a malformed object with "an offset and a two-byte value" that trigger a memory calculation error, aka "Memory Corruption Vulnerability."
Vulnerable Configurations
Part | Description | Count |
---|---|---|
Application | 9 |
Common Weakness Enumeration (CWE)
Msbulletin
bulletin_id | MS09-009 |
bulletin_url | |
date | 2009-04-14T00:00:00 |
impact | Remote Code Execution |
knowledgebase_id | 968557 |
knowledgebase_url | |
severity | Critical |
title | Vulnerabilities in Microsoft Office Excel Could Cause Remote Code Execution |
Nessus
NASL family Windows : Microsoft Bulletins NASL id SMB_NT_MS09-009.NASL description The remote host contains a version of Microsoft Excel / Excel Viewer / 2007 Microsoft Office system and the Microsoft Office Compatibility Pack that is affected by two memory corruption vulnerabilities. If an attacker can trick a user on the affected host into opening a specially crafted Excel file, either of these issues could be leveraged to run arbitrary code on the host subject to the user last seen 2020-06-01 modified 2020-06-02 plugin id 36147 published 2009-04-15 reporter This script is Copyright (C) 2009-2018 Tenable Network Security, Inc. source https://www.tenable.com/plugins/nessus/36147 title MS09-009: Vulnerabilities in Microsoft Office Excel Could Cause Remote Code Execution (968557) code # # (C) Tenable Network Security, Inc. # include("compat.inc"); if (description) { script_id(36147); script_version("1.33"); script_cvs_date("Date: 2018/11/15 20:50:30"); script_cve_id("CVE-2009-0100", "CVE-2009-0238"); script_bugtraq_id(33870, 34413); script_xref(name:"MSFT", value:"MS09-009"); script_xref(name:"MSKB", value:"959964"); script_xref(name:"MSKB", value:"959988"); script_xref(name:"MSKB", value:"959993"); script_xref(name:"MSKB", value:"959995"); script_xref(name:"MSKB", value:"959997"); script_xref(name:"MSKB", value:"960000"); script_xref(name:"MSKB", value:"960003"); script_name(english:"MS09-009: Vulnerabilities in Microsoft Office Excel Could Cause Remote Code Execution (968557)"); script_summary(english:"Checks version of Excel.exe / Xlview.exe / Excelcnv.exe"); script_set_attribute( attribute:"synopsis", value: "It is possible to execute arbitrary code on the remote Windows host using Microsoft Excel." ); script_set_attribute( attribute:"description", value: "The remote host contains a version of Microsoft Excel / Excel Viewer / 2007 Microsoft Office system and the Microsoft Office Compatibility Pack that is affected by two memory corruption vulnerabilities. If an attacker can trick a user on the affected host into opening a specially crafted Excel file, either of these issues could be leveraged to run arbitrary code on the host subject to the user's privileges." ); script_set_attribute(attribute:"see_also", value:"https://docs.microsoft.com/en-us/security-updates/SecurityBulletins/2009/ms09-009"); script_set_attribute( attribute:"solution", value: "Microsoft has released a set of patches for Excel 2000, 2002, 2003, and 2007, Excel Viewer and Excel Viewer 2003 as well as the 2007 Microsoft Office system and the Microsoft Office Compatibility Pack." ); script_set_cvss_base_vector("CVSS2#AV:N/AC:M/Au:N/C:C/I:C/A:C"); script_set_cvss_temporal_vector("CVSS2#E:H/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:"exploit_framework_core", value:"true"); script_set_attribute(attribute:"exploited_by_malware", value:"true"); script_cwe_id(94, 399); script_set_attribute(attribute:"vuln_publication_date", value:"2009/02/24"); script_set_attribute(attribute:"patch_publication_date", value:"2009/04/14"); script_set_attribute(attribute:"plugin_publication_date", value:"2009/04/15"); script_set_attribute(attribute:"plugin_type", value:"local"); script_set_attribute(attribute:"cpe", value:"cpe:/a:microsoft:office"); script_end_attributes(); script_category(ACT_GATHER_INFO); script_family(english:"Windows : Microsoft Bulletins"); script_copyright(english:"This script is Copyright (C) 2009-2018 Tenable Network Security, Inc."); script_dependencies("smb_nt_ms02-031.nasl", "office_installed.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("smb_hotfixes_fcheck.inc"); include("smb_hotfixes.inc"); include("misc_func.inc"); include("audit.inc"); get_kb_item_or_exit("SMB/MS_Bulletin_Checks/Possible"); bulletin = 'MS09-009'; kbs = make_list("959964", "959988", "959993", "959995", "959997", "960000", "960003"); if (get_kb_item("Host/patch_management_checks")) hotfix_check_3rd_party(bulletin:bulletin, kbs:kbs, severity:SECURITY_HOLE); # Excel info = ""; kb = ""; vuln = 0; installs = get_kb_list("SMB/Office/Excel/*/ProductPath"); if (!isnull(installs)) { foreach install (keys(installs)) { version = install - 'SMB/Office/Excel/' - '/ProductPath'; path = installs[install]; ver = split(version, sep:'.', keep:FALSE); for (i=0; i<max_index(ver); i++) ver[i] = int(ver[i]); if (isnull(path)) path = "n/a"; if ( # Excel 2007 - fixed in 12.0.6341.5001 ver[0] == 12 && ver[1] == 0 && ( ver[2] < 6341 || (ver[2] == 6341 && ver[3] < 5001) ) ) { office_sp = get_kb_item("SMB/Office/2007/SP"); if (!isnull(office_sp) && office_sp == 1) { vuln++; kb = "959997"; info = '\n Product : Excel 2007' + '\n File : ' + path + '\n Installed version : ' + version + '\n Fixed version : 10.0.6341.5001\n'; hotfix_add_report(info, bulletin:bulletin, kb:kb); } } # Excel 2003 - fixed in 11.0.8302.0 else if (ver[0] == 11 && ver[1] == 0 && ver[2] < 8302) { office_sp = get_kb_item("SMB/Office/2003/SP"); if (!isnull(office_sp) && office_sp == 3) { vuln++; kb = "959995"; info = '\n Product : Excel 2003' + '\n File : ' + path + '\n Installed version : ' + version + '\n Fixed version : 11.0.8302.0\n'; hotfix_add_report(info, bulletin:bulletin, kb:kb); } } # Excel 2002 - fixed in 10.0.6852.0 else if (ver[0] == 10 && ver[1] == 0 && ver[2] < 6852) { office_sp = get_kb_item("SMB/Office/XP/SP"); if (!isnull(office_sp) && office_sp == 3) { vuln++; kb = "959988"; info = '\n Product : Excel 2002' + '\n File : ' + path + '\n Installed version : ' + version + '\n Fixed version : 10.0.6852.0\n'; hotfix_add_report(info, bulletin:bulletin, kb:kb); } } # Excel 2000 - fixed in 9.0.0.8977 else if (ver[0] == 9 && ver[1] == 0 && ver[2] == 0 && ver[3] < 8977) { office_sp = get_kb_item("SMB/Office/2000/SP"); if (!isnull(office_sp) && office_sp == 3) { vuln++; kb = "959964"; info = '\n Product : Excel 2000' + '\n File : ' + path + '\n Installed version : ' + version + '\n Fixed version : 9.0.0.8977\n'; hotfix_add_report(info, bulletin:bulletin, kb:kb); } } } } # Excel Viewer installs = get_kb_list("SMB/Office/ExcelViewer/*/ProductPath"); if (!isnull(installs)) { foreach install (keys(installs)) { version = install - 'SMB/Office/ExcelViewer/' - '/ProductPath'; path = installs[install]; ver = split(version, sep:'.', keep:FALSE); for (i=0; i<max_index(ver); i++) ver[i] = int(ver[i]); if ( # Excel - fixed in 12.0.6341.5001 ver[0] == 12 && ver[1] == 0 && ( ver[2] < 6341 || (ver[2] == 6341 && ver[3] < 5001) ) ) { vuln++; kb = "960000"; info = '\n Product : Excel Viewer' + '\n File : ' + path + '\n Installed version : ' + version + '\n Fixed version : 12.0.6341.5001\n'; hotfix_add_report(info, bulletin:bulletin, kb:kb); } # Excel Viewer 2003 - fixed in 11.0.8302.0 else if (ver[0] == 11 && ver[1] == 0 && ver[2] < 8302) { vuln++; kb = "959993"; info = '\n Product : Excel Viewer 2003' + '\n File : ' + path + '\n Installed version : ' + version + '\n Fixed version : 11.0.8302.0\n'; hotfix_add_report(info, bulletin:bulletin, kb:kb); } } } # 2007 Microsoft Office system and the Microsoft Office Compatibility Pack installs = get_kb_list("SMB/Office/ExcelCnv/*/ProductPath"); if (!isnull(installs)) { foreach install (keys(installs)) { version = install - 'SMB/Office/ExcelCnv/' - '/ProductPath'; path = installs[install]; ver = split(version, sep:'.', keep:FALSE); for (i=0; i<max_index(ver); i++) ver[i] = int(ver[i]); if ( # fixed in 12.0.6341.5001 ver[0] == 12 && ver[1] == 0 && ( ver[2] < 6341 || (ver[2] == 6341 && ver[3] < 5001) ) ) { vuln++; kb = "960003"; info = '\n Product : Excel 2007 Converter' + '\n File : ' + path + '\n Installed version : ' + version + '\n Fixed version : 12.0.6341.5001\n'; hotfix_add_report(info, bulletin:bulletin, kb:kb); } } } if (vuln) { set_kb_item(name:"SMB/Missing/MS09-009", value:TRUE); hotfix_security_hole(); exit(0); } else audit(AUDIT_HOST_NOT, 'affected');
NASL family MacOS X Local Security Checks NASL id MACOSX_MS09-009.NASL description The remote Mac OS X host is running a version of Microsoft Office Excel that is affected by several vulnerabilities. If an attacker can trick a user on the affected host into opening a specially crafted Excel file, these issues could be leveraged to execute arbitrary code subject to the user last seen 2019-10-28 modified 2010-10-20 plugin id 50061 published 2010-10-20 reporter This script is Copyright (C) 2010-2018 Tenable Network Security, Inc. source https://www.tenable.com/plugins/nessus/50061 title MS09-009: Vulnerabilities in Microsoft Office Excel Could Cause Remote Code Execution (968557) (Mac OS X) code #TRUSTED 1c6336b5fb35846071382d520f3d3bbc71e55989c6132abb46d171a2272de76a9bdc190a531329d4c7ca2bb334ab7fad74a29118f6f0770abc6b3b21d93ba2e295d384d437b5633cb80db5cab6eb7c9a3db280c7a7a693912ed6de7e54f6c41da9f2f80bcf396b0ce8e15003d5595e473da41f1e96470e774af7a9e29007ffc7c6366a1ad1cbf954a3fc8358b3d643549c70fd658d8c03e1e28db5f1bb3027b4445ec6c580b303c5f7651d296a8495dc6ae15f84bd4d181153a3873a4bcb634dbda9c200265e5894235b80a4d8f9767fd990821a64547f7f10e2d4305b88f58b92d2559abeda8c2b56b3bbf5ec843abced7960fa3790cf3c9af2904564823f56e045402c41c5f60aeb95a85427a5bcba332d67d12c1176e1f18f5b4e78d5ac54868f0655216c4096d2d4f7ba660fde4ee90def1b9be2299bf321dd37c226c28f37731954a004951ccec60d0a6155ae43fc36d3b888d13393cb69863a0647fb8f3c26e50a363ad9a513e6fe82eb21ca6e7acd1ab1a9807c2446f8a0be799d252661c7ab762684802657696f4892b3046a305cc65d186c657a38550f7e985441d6fa67cfa42f4657f5ce09fa8ca9e09e6290746f5edba8ef35a4f8ae86306536e66d6cd77ec7e326df0028b895431ffcf80adb977ea2aab87d6eab3a66e89e5e662d78315a0e5168be3dbbd13f122589f02688c3dec25c14f6921cb7413dbe6517 # # (C) Tenable Network Security, Inc. # include("compat.inc"); if (description) { script_id(50061); script_version("1.18"); script_set_attribute(attribute:"plugin_modification_date", value:"2018/07/14"); script_cve_id("CVE-2009-0100", "CVE-2009-0238"); script_bugtraq_id(33870, 34413); script_xref(name:"MSFT", value:"MS09-009"); script_xref(name:"MSKB", value:"968557"); script_xref(name:"MSKB", value:"968694"); script_xref(name:"MSKB", value:"968695"); script_name(english:"MS09-009: Vulnerabilities in Microsoft Office Excel Could Cause Remote Code Execution (968557) (Mac OS X)"); script_summary(english:"Check version of Microsoft Office"); script_set_attribute(attribute:"synopsis", value: "An application installed on the remote Mac OS X host is affected by multiple remote code execution vulnerabilities."); script_set_attribute(attribute:"description", value: "The remote Mac OS X host is running a version of Microsoft Office Excel that is affected by several vulnerabilities. If an attacker can trick a user on the affected host into opening a specially crafted Excel file, these issues could be leveraged to execute arbitrary code subject to the user's privileges."); script_set_attribute(attribute:"see_also", value:"http://technet.microsoft.com/en-us/security/bulletin/ms09-009"); script_set_attribute(attribute:"solution", value: "Microsoft has released a set of patches for Office 2004 for Mac and Office 2008 for Mac."); script_set_cvss_base_vector("CVSS2#AV:N/AC:M/Au:N/C:C/I:C/A:C"); script_set_cvss_temporal_vector("CVSS2#E:H/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:"exploited_by_malware", value:"true"); script_set_attribute(attribute:"exploit_framework_core", value:"true"); script_cwe_id(94); script_set_attribute(attribute:"vuln_publication_date", value:"2009/02/23"); script_set_attribute(attribute:"patch_publication_date", value:"2009/04/14"); script_set_attribute(attribute:"plugin_publication_date", value:"2010/10/20"); script_set_attribute(attribute:"plugin_type", value:"local"); script_set_attribute(attribute:"cpe", value:"cpe:/a:microsoft:office:2004::mac"); script_set_attribute(attribute:"cpe", value:"cpe:/a:microsoft:office:2008::mac"); script_end_attributes(); script_category(ACT_GATHER_INFO); script_family(english:"MacOS X Local Security Checks"); script_copyright(english:"This script is Copyright (C) 2010-2018 Tenable Network Security, Inc."); script_dependencies("ssh_get_info.nasl"); script_require_keys("Host/MacOSX/packages", "Host/uname"); exit(0); } include("misc_func.inc"); include("ssh_func.inc"); include("macosx_func.inc"); if(sshlib::get_support_level() >= sshlib::SSH_LIB_SUPPORTS_COMMANDS) enable_ssh_wrappers(); else disable_ssh_wrappers(); function exec(cmd) { local_var buf, ret; if (islocalhost()) buf = pread(cmd:"/bin/bash", argv:make_list("bash", "-c", cmd)); else { ret = ssh_open_connection(); if (!ret) exit(1, "ssh_open_connection() failed."); buf = ssh_cmd(cmd:cmd); ssh_close_connection(); } return buf; } packages = get_kb_item("Host/MacOSX/packages"); if (!packages) exit(1, "The 'Host/MacOSX/packages' KB item is missing."); uname = get_kb_item("Host/uname"); if (!uname) exit(1, "The 'Host/uname' KB item is missing."); if (!egrep(pattern:"Darwin.*", string:uname)) exit(1, "The host does not appear to be using the Darwin sub-system."); # Gather version info. info = ''; installs = make_array(); prod = 'Office 2008 for Mac'; plist = "/Applications/Microsoft Office 2008/Office/MicrosoftComponentPlugin.framework/Versions/12/Resources/Info.plist"; cmd = 'cat \'' + plist + '\' | ' + 'grep -A 1 CFBundleShortVersionString | ' + 'tail -n 1 | ' + 'sed \'s/.*string>\\(.*\\)<\\/string>.*/\\1/g\''; version = exec(cmd:cmd); if (version && version =~ "^[0-9]+\.") { version = chomp(version); if (version !~ "^12\.") exit(1, "Failed to get the version for "+prod+" - '"+version+"'."); installs[prod] = version; ver = split(version, sep:'.', keep:FALSE); for (i=0; i<max_index(ver); i++) ver[i] = int(ver[i]); fixed_version = '12.1.7'; fix = split(fixed_version, sep:'.', keep:FALSE); for (i=0; i<max_index(fix); i++) fix[i] = int(fix[i]); for (i=0; i<max_index(fix); i++) if ((ver[i] < fix[i])) { info += '\n Product : ' + prod + '\n Installed version : ' + version + '\n Fixed version : ' + fixed_version + '\n'; break; } else if (ver[i] > fix[i]) break; } prod = 'Office 2004 for Mac'; cmd = GetCarbonVersionCmd(file:"Microsoft Component Plugin", path:"/Applications/Microsoft Office 2004/Office"); version = exec(cmd:cmd); if (version && version =~ "^[0-9]+\.") { version = chomp(version); if (version !~ "^11\.") exit(1, "Failed to get the version for "+prod+" - '"+version+"'."); installs[prod] = version; ver = split(version, sep:'.', keep:FALSE); for (i=0; i<max_index(ver); i++) ver[i] = int(ver[i]); fixed_version = '11.5.4'; fix = split(fixed_version, sep:'.', keep:FALSE); for (i=0; i<max_index(fix); i++) fix[i] = int(fix[i]); for (i=0; i<max_index(fix); i++) if ((ver[i] < fix[i])) { info += '\n Product : ' + prod + '\n Installed version : ' + version + '\n Fixed version : ' + fixed_version + '\n'; break; } else if (ver[i] > fix[i]) break; } # Report findings. if (info) { gs_opt = get_kb_item("global_settings/report_verbosity"); if (gs_opt && gs_opt != 'Quiet') security_hole(port:0, extra:info); else security_hole(0); exit(0); } else { if (max_index(keys(installs)) == 0) exit(0, "Office for Mac is not installed."); else { msg = 'The host has '; foreach prod (sort(keys(installs))) msg += prod + ' ' + installs[prod] + ' and '; msg = substr(msg, 0, strlen(msg)-1-strlen(' and ')); msg += ' installed and thus is not affected.'; exit(0, msg); } }
Oval
accepted | 2014-06-30T04:11:13.562-04:00 | ||||||||||||||||||||||||||||
class | vulnerability | ||||||||||||||||||||||||||||
contributors |
| ||||||||||||||||||||||||||||
definition_extensions |
| ||||||||||||||||||||||||||||
description | Microsoft Office Excel 2000 SP3, 2002 SP3, 2003 SP3, and 2007 SP1; Excel in Microsoft Office 2004 and 2008 for Mac; Microsoft Office Excel Viewer and Excel Viewer 2003 SP3; and Microsoft Office Compatibility Pack for Word, Excel, and PowerPoint 2007 File Formats SP1 do not properly parse the Excel spreadsheet file format, which allows remote attackers to execute arbitrary code via a crafted spreadsheet that contains a malformed object with "an offset and a two-byte value" that trigger a memory calculation error, aka "Memory Corruption Vulnerability." | ||||||||||||||||||||||||||||
family | windows | ||||||||||||||||||||||||||||
id | oval:org.mitre.oval:def:6043 | ||||||||||||||||||||||||||||
status | accepted | ||||||||||||||||||||||||||||
submitted | 2009-04-14T16:00:00 | ||||||||||||||||||||||||||||
title | Memory Corruption Vulnerability | ||||||||||||||||||||||||||||
version | 28 |
Seebug
bulletinFamily | exploit |
description | BUGTRAQ ID: 34413 CVE(CAN) ID: CVE-2009-0100 Excel是微软Office套件中的电子表格工具。 如果用户打开带有畸形对象的特制Excel文件,Office Excel中的漏洞可能允许远程执行代码。成功利用此漏洞的攻击者可以完全控制受影响的系统,攻击者可随后安装程序;查看、更改或删除数据;或者创建拥有完全用户权限的新帐户。 Microsoft Excel Viewer 2003 SP3 Microsoft Excel Viewer Microsoft Excel 2007 SP1 Microsoft Excel 2003 SP3 Microsoft Excel 2002 SP3 Microsoft Excel 2000 SP3 Microsoft Office 2008 for Mac Microsoft Office 2004 for Mac 临时解决方法: * 在Excel客户端系统上,打开未知或不可信任来源的文件时,使用Microsoft Office隔离转换环境(MOICE)。 * 在Excel客户端系统上,使用Microsoft Office文件阻断策略以防止打开未知或不可信任来源的Office 2003及更早版本的文档。可使用以下注册表脚本为Office 2003设置文件阻断策略: Office 2003 Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Security\FileOpenBlock] "BinaryFiles"=dword:00000001 2007 Office system Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Excel\Security\FileOpenBlock] "BinaryFiles"=dword:00000001 厂商补丁: Microsoft --------- Microsoft已经为此发布了一个安全公告(MS09-009)以及相应补丁: MS09-009:Vulnerabilities in Microsoft Office Excel Could Cause Remote Code Execution (968557) 链接:<a href=http://www.microsoft.com/technet/security/bulletin/MS09-009.mspx?pf=true target=_blank rel=external nofollow>http://www.microsoft.com/technet/security/bulletin/MS09-009.mspx?pf=true</a> |
id | SSV:5047 |
last seen | 2017-11-19 |
modified | 2009-04-16 |
published | 2009-04-16 |
reporter | Root |
title | Microsoft Excel畸形对象远程内存破坏漏洞(MS09-009) |
References
- http://osvdb.org/53665
- http://www.fortiguardcenter.com/advisory/FGA-2009-16.html
- http://www.securityfocus.com/archive/1/502696/100/0/threaded
- http://www.securitytracker.com/id?1022039
- http://www.us-cert.gov/cas/techalerts/TA09-104A.html
- http://www.vupen.com/english/advisories/2009/1023
- https://docs.microsoft.com/en-us/security-updates/securitybulletins/2009/ms09-009
- https://oval.cisecurity.org/repository/search/definition/oval%3Aorg.mitre.oval%3Adef%3A6043