ID

VAR-200808-0147


CVE

CVE-2008-2926


TITLE

CA Host-Based Intrusion Prevention System of kmxfw.sys Driver vulnerability

Trust: 0.8

sources: JVNDB: JVNDB-2008-002498

DESCRIPTION

The kmxfw.sys driver in CA Host-Based Intrusion Prevention System (HIPS) r8, as used in CA Internet Security Suite and Personal Firewall, does not properly verify IOCTL requests, which allows local users to cause a denial of service (system crash) or possibly gain privileges via a crafted request. Computer Associates products are prone to two vulnerabilities. Attackers may exploit the first vulnerability locally to execute arbitrary code with SYSTEM-level privileges or cause a system crash. Attackers may exploit the second vulnerability remotely to cause denial-of-service conditions. Successful attacks will completely compromise the computer or cause denial-of-service conditions. CA Host-Based Intrusion Prevention System (HIPS) is CA's host intrusion prevention system software. There is a vulnerability in the kmxfw.sys driver in CA HIPS r8. No special user rights are necessary to exploit the vulnerability. ====================== Technical description: ====================== The IOCTL call 0x85000030 of the KmxFw.sys kernel driver shipped with various CA products accepts user supplied input that doesn't get validated enough. In consequence it is possible to pass arbitrary parameter values to some windows kernel functions (e.g. ExFreePoolWithTag). If these parameters are carefully crafted it is possible to force the windows kernel into performing a memory corruption that leads to full control of the kernel execution flow. Disassembly of KmxFw.sys (version 6.5.5.5): [...] .text:00019800 mov eax, [esp+IOCTLControlCode] <-- (1) .text:00019804 sub esp, 2Ch .text:00019807 push ebx .text:00019808 push esi .text:00019809 push edi .text:0001980A add eax, 7AFFFFFCh .text:0001980F xor edi, edi .text:00019811 xor ebx, ebx .text:00019813 cmp eax, 4Ch ; switch 77 cases .text:00019816 ja loc_19943 ; default [...] .text:0001981C movzx eax, ds:byte_19BA0[eax] <-- (2) .text:00019823 jmp ds:off_19B6C[eax*4] ; switch jump [...] .text:000199E1 loc_199E1: .text:000199E1 cmp [esp+38h+InputBufferSize], 10h <-- (3) .text:000199E6 jb loc_19943 ; default [...] .text:000199EC mov eax, [esp+38h+InputBuffer] <-- (4) .text:000199F0 mov ecx, [eax+8] <-- (5) .text:000199F3 mov edx, [eax] <-- (6) .text:000199F5 push ecx ; BaseAddress <-- (7) .text:000199F6 push edx ; Mdl <-- (8) .text:000199F7 mov ecx, offset off_28600 .text:000199FC call sub_12B70 <-- (9) [...] (1) IOCTL control code is copied into EAX (2) IOCTL control code switch cases (3) Switch case of the vulnerable IOCTL control code 0x85000030. There's also a minor check of the IOCTL input buffer size (must be greater than 0x10). (4) Pointer to user controlled data is copied into EAX (5) Part of the user controlled data is copied into ECX (6) Part of the user controlled data is copied into EDX (7) + (8) The user controlled values of ECX and EDX are used as parameters for the following function (sub_12B70) that gets called (9) The function sub_12B70 gets called [...] .text:00012B70 sub_12B70 proc near .text:00012B70 Mdl_uc = dword ptr 4 .text:00012B70 BaseAddress_uc = dword ptr 8 .text:00012B70 .text:00012B70 push esi .text:00012B71 mov esi, [esp+4+Mdl_uc] <-- (10) .text:00012B75 test esi, esi .text:00012B77 jz short loc_12B90 .text:00012B79 mov eax, [esp+4+BaseAddress_uc] <-- (11) .text:00012B7D test eax, eax .text:00012B7F jz short loc_12B89 .text:00012B81 push esi ; MemoryDescriptorList <-- (12) .text:00012B82 push eax ; BaseAddress <-- (13) .text:00012B83 call ds:MmUnmapLockedPages <-- (14) .text:00012B89 .text:00012B89 loc_12B89: .text:00012B89 push esi ; Mdl <-- (15) .text:00012B8A call ds:IoFreeMdl <-- (16) [...] (10) User controlled data gets copied into ESI (11) User controlled data gets copied into EAX (12) + (13) The user controlled values of ESI and EAX are used as parameters for the windows kernel function MmUnmapLockedPages (14) The windows kernel function MmUnmapLockedPages gets called (15) The user controlled value in ESI is used as a parameter for the windows kernel function IoFreeMdl (16) The windows kernel function IoFreeMdl gets called In the IoFreeMdl function of the windows kernel the ExFreePoolWithTag function gets called with user controlled parameters. Example of the IoFreeMdl function of the Windows 2000 Professional SP4 kernel: [...] .text:0041E700 ; void __stdcall IoFreeMdl(PMDL Mdl) .text:0041E700 public IoFreeMdl .text:0041E700 IoFreeMdl proc near .text:0041E700 .text:0041E700 P = dword ptr 4 .text:0041E700 .text:0041E700 push esi .text:0041E701 mov esi, [esp+4+P] <-- (17) .text:0041E705 test byte ptr [esi+6], 20h .text:0041E709 jz short loc_41E714 [...] .text:0041E714 loc_41E714: .text:0041E714 mov ax, [esi+6] .text:0041E718 test al, 8 .text:0041E71A jz short loc_41E72B [...] .text:0041E72B .text:0041E72B loc_41E72B: .text:0041E72B push esi ; P <-- (18) .text:0041E72C call ExFreePool <-- (19) [...] (17) The user controlled data gets copied into ESI (18) + (19) ESI is used as a parameter for the ExFreePool kernel function that calls ExFreePoolWithTag If the user supplied parameter for ExFreePoolWithTag is carefully crafted it is possible to overwrite an arbitrary memory location with an arbitrary dword value (write4 primitive). This can be exploited to control the kernel execution flow and to execute arbitrary code at the kernel level. ========= Solution: ========= See vendor recommendations described under [1]. ======== History: ======== 2008/03/06 - Vendor notified using vuln@ca.com 2008/03/06 - Vendor response with PGP key 2008/03/08 - Detailed vulnerability information sent to the vendor 2008/03/08 - Vendor acknowledges receipt of the information 2008/08/12 - Coordinated disclosure ======== Credits: ======== Vulnerability found and advisory written by Tobias Klein. =========== References: =========== [1] http://www.ca.com/us/securityadvisor/vulninfo/vuln.aspx?id=36559 [2] http://www.trapkit.de/advisories/TKADV2008-006.txt ======== Changes: ======== Revision 0.1 - Initial draft release to the vendor Revision 1.0 - Public release =========== Disclaimer: =========== The information within this advisory may change without notice. Use of this information constitutes acceptance for use in an AS IS condition. There are no warranties, implied or express, with regard to this information. In no event shall the author be liable for any direct or indirect damages whatsoever arising out of or in connection with the use or spread of this information. ================== PGP Signature Key: ================== http://www.trapkit.de/advisories/tk-advisories-signature-key.asc Copyright 2008 Tobias Klein. 2) An unspecified error in the kmxfw.sys driver can be exploited to cause a DoS. PROVIDED AND/OR DISCOVERED BY: The vendor credits: 1) Tobias Klein 2) Elazar Broad ORIGINAL ADVISORY: CA: http://www.ca.com/us/securityadvisor/vulninfo/vuln.aspx?id=36559 http://www.ca.com/us/securityadvisor/vulninfo/vuln.aspx?id=36560 ---------------------------------------------------------------------- About: This Advisory was delivered by Secunia as a free service to help everybody keeping their systems up to date against the latest vulnerabilities. Subscribe: http://secunia.com/secunia_security_advisories/ Definitions: (Criticality, Where etc.) http://secunia.com/about_secunia_advisories/ Please Note: Secunia recommends that you verify all advisories you receive by clicking the link. Secunia NEVER sends attached files with advisories. Secunia does not advise people to install third party patches, only use those supplied by the vendor. ---------------------------------------------------------------------- Unsubscribe: Secunia Security Advisories http://secunia.com/sec_adv_unsubscribe/?email=packet%40packetstormsecurity.org ---------------------------------------------------------------------- . -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Title: CA Host-Based Intrusion Prevention System SDK kmxfw.sys Multiple Vulnerabilities CA Advisory Date: 2008-08-11 Reported By: CVE-2008-2926 - Tobias Klein CVE-2008-3174 - Elazar Broad Impact: A remote attacker can cause a denial of service or possibly execute arbitrary code. CA has issued updates to address the vulnerabilities. The first vulnerability, CVE-2008-2926, occurs due to insufficient verification of IOCTL requests by the kmxfw.sys driver. The second vulnerability, CVE-2008-3174, occurs due to insufficient validation by the kmxfw.sys driver. An attacker can make a request that can cause a system crash. Mitigating Factors: None Severity: CA has given these vulnerabilities a Medium risk rating. CA Personal Firewall Engine 1.2.276 and later are not affected. To ensure that the latest automatic update is installed on your computer, customers can view the Help>About screen in their CA Personal Firewall product and confirm that the engine version number is 1.2.276 or higher. For support information, visit http://shop.ca.com/support. How to determine if you are affected: 1. Using Windows Explorer, locate the file "kmxfw.sys". By default, the file is located in the "C:\Windows\system32\drivers\" directory. 2. Right click on the file and select Properties. 3. Select the General tab. 4. If the file version is less than indicated in the below table, the installation is vulnerable. For technical questions or comments related to this advisory, please send email to vuln AT ca DOT com. If you discover a vulnerability in CA products, please report your findings to our product security response team. https://support.ca.com/irj/portal/anonymous/phpsupcontent?contentID=177782 Regards, Ken Williams ; 0xE2941985 Director, CA Vulnerability Research CA, 1 CA Plaza, Islandia, NY 11749 Contact http://www.ca.com/us/contact/ Legal Notice http://www.ca.com/us/legal/ Privacy Policy http://www.ca.com/us/privacy/ Copyright (c) 2008 CA. All rights reserved. -----BEGIN PGP SIGNATURE----- Version: PGP Desktop 9.5.3 (Build 5003) wj4DBQFIoduueSWR3+KUGYURAmmKAJ9FWl5gIZrbrGhg5CZ0NKzw0QE8qQCY+Qys ekQdlRjiIYnyp9WEqqGAxQ== =ltU4 -----END PGP SIGNATURE-----

Trust: 2.25

sources: NVD: CVE-2008-2926 // JVNDB: JVNDB-2008-002498 // BID: 30651 // VULHUB: VHN-33051 // PACKETSTORM: 69035 // PACKETSTORM: 68975 // PACKETSTORM: 69034

AFFECTED PRODUCTS

vendor:camodel:host based intrusion prevention systemscope:eqversion:r8

Trust: 1.6

vendor:broadcommodel:internet security suitescope:eqversion:3.0

Trust: 1.0

vendor:camodel:personal firewall 2007scope:eqversion:*

Trust: 1.0

vendor:camodel:personal firewall 2008scope:eqversion:*

Trust: 1.0

vendor:camodel:internet security suite 2008scope:eqversion:*

Trust: 1.0

vendor:camodel:host-based intrusion prevention systemscope:eqversion:r8

Trust: 0.8

vendor:camodel:internet security suitescope:eqversion:2007

Trust: 0.8

vendor:camodel:internet security suitescope:eqversion:2008

Trust: 0.8

vendor:camodel:personal firewallscope:eqversion:2007

Trust: 0.8

vendor:camodel:personal firewallscope:eqversion:2008

Trust: 0.8

vendor:camodel:personal firewall 2007scope: - version: -

Trust: 0.6

vendor:camodel:internet security suitescope:eqversion:3.0

Trust: 0.6

vendor:camodel:personal firewall 2008scope: - version: -

Trust: 0.6

vendor:camodel:internet security suite 2008scope: - version: -

Trust: 0.6

vendor:computermodel:associates personal firewallscope:eqversion:2008

Trust: 0.3

vendor:computermodel:associates personal firewallscope:eqversion:2007

Trust: 0.3

vendor:computermodel:associates internet security suitescope:eqversion:20080

Trust: 0.3

vendor:computermodel:associates internet security suitescope:eqversion:20070

Trust: 0.3

vendor:computermodel:associates host-based intrusion prevention system r8scope: - version: -

Trust: 0.3

vendor:computermodel:associates personal firewall enginescope:neversion:1.2.276

Trust: 0.3

sources: BID: 30651 // JVNDB: JVNDB-2008-002498 // CNNVD: CNNVD-200808-164 // NVD: CVE-2008-2926

CVSS

SEVERITY

CVSSV2

CVSSV3

nvd@nist.gov: CVE-2008-2926
value: HIGH

Trust: 1.0

NVD: CVE-2008-2926
value: HIGH

Trust: 0.8

CNNVD: CNNVD-200808-164
value: HIGH

Trust: 0.6

VULHUB: VHN-33051
value: HIGH

Trust: 0.1

nvd@nist.gov: CVE-2008-2926
severity: HIGH
baseScore: 7.2
vectorString: AV:L/AC:L/AU:N/C:C/I:C/A:C
accessVector: LOCAL
accessComplexity: LOW
authentication: NONE
confidentialityImpact: COMPLETE
integrityImpact: COMPLETE
availabilityImpact: COMPLETE
exploitabilityScore: 3.9
impactScore: 10.0
acInsufInfo: NONE
obtainAllPrivilege: NONE
obtainUserPrivilege: NONE
obtainOtherPrivilege: NONE
userInteractionRequired: NONE
version: 2.0

Trust: 1.8

VULHUB: VHN-33051
severity: HIGH
baseScore: 7.2
vectorString: AV:L/AC:L/AU:N/C:C/I:C/A:C
accessVector: LOCAL
accessComplexity: LOW
authentication: NONE
confidentialityImpact: COMPLETE
integrityImpact: COMPLETE
availabilityImpact: COMPLETE
exploitabilityScore: 3.9
impactScore: 10.0
acInsufInfo: NONE
obtainAllPrivilege: NONE
obtainUserPrivilege: NONE
obtainOtherPrivilege: NONE
userInteractionRequired: NONE
version: 2.0

Trust: 0.1

sources: VULHUB: VHN-33051 // JVNDB: JVNDB-2008-002498 // CNNVD: CNNVD-200808-164 // NVD: CVE-2008-2926

PROBLEMTYPE DATA

problemtype:CWE-20

Trust: 1.9

sources: VULHUB: VHN-33051 // JVNDB: JVNDB-2008-002498 // NVD: CVE-2008-2926

THREAT TYPE

local

Trust: 0.9

sources: PACKETSTORM: 69035 // PACKETSTORM: 68975 // PACKETSTORM: 69034 // CNNVD: CNNVD-200808-164

TYPE

input validation error

Trust: 0.6

sources: CNNVD: CNNVD-200808-164

CONFIGURATIONS

sources: JVNDB: JVNDB-2008-002498

EXPLOIT AVAILABILITY

sources: VULHUB: VHN-33051

PATCH

title:36559url:http://www.ca.com/us/securityadvisor/vulninfo/vuln.aspx?id=36559

Trust: 0.8

title:36559url:http://www.ca.com/jp/securityadvisor/vulninfo/Vuln.aspx?id=36559

Trust: 0.8

sources: JVNDB: JVNDB-2008-002498

EXTERNAL IDS

db:NVDid:CVE-2008-2926

Trust: 3.0

db:BIDid:30651

Trust: 2.8

db:SECUNIAid:31434

Trust: 2.6

db:SECTRACKid:1020659

Trust: 2.5

db:SECTRACKid:1020658

Trust: 2.5

db:SECTRACKid:1020660

Trust: 2.5

db:VUPENid:ADV-2008-2339

Trust: 2.5

db:XFid:44392

Trust: 0.8

db:JVNDBid:JVNDB-2008-002498

Trust: 0.8

db:CNNVDid:CNNVD-200808-164

Trust: 0.6

db:PACKETSTORMid:69034

Trust: 0.2

db:PACKETSTORMid:69035

Trust: 0.2

db:VULHUBid:VHN-33051

Trust: 0.1

db:PACKETSTORMid:68975

Trust: 0.1

sources: VULHUB: VHN-33051 // BID: 30651 // JVNDB: JVNDB-2008-002498 // PACKETSTORM: 69035 // PACKETSTORM: 68975 // PACKETSTORM: 69034 // CNNVD: CNNVD-200808-164 // NVD: CVE-2008-2926

REFERENCES

url:http://www.securityfocus.com/bid/30651

Trust: 2.5

url:http://www.securitytracker.com/id?1020658

Trust: 2.5

url:http://www.securitytracker.com/id?1020659

Trust: 2.5

url:http://www.securitytracker.com/id?1020660

Trust: 2.5

url:http://secunia.com/advisories/31434

Trust: 2.5

url:http://www.vupen.com/english/advisories/2008/2339

Trust: 2.5

url:http://www.ca.com/us/securityadvisor/vulninfo/vuln.aspx?id=36559

Trust: 2.2

url:http://www.securityfocus.com/archive/1/495397/100/0/threaded

Trust: 1.7

url:https://exchange.xforce.ibmcloud.com/vulnerabilities/44392

Trust: 1.7

url:http://cve.mitre.org/cgi-bin/cvename.cgi?name=cve-2008-2926

Trust: 0.9

url:http://xforce.iss.net/xforce/xfdb/44392

Trust: 0.8

url:http://web.nvd.nist.gov/view/vuln/detail?vulnid=cve-2008-2926

Trust: 0.8

url:http://www.trapkit.de/advisories/tkadv2008-006.txt

Trust: 0.4

url:http://www.ca.com

Trust: 0.4

url:http://www.ca.com/us/securityadvisor/vulninfo/vuln.aspx?id=36560

Trust: 0.4

url:/archive/1/495427

Trust: 0.3

url:/archive/1/495397

Trust: 0.3

url:https://nvd.nist.gov/vuln/detail/cve-2008-2926

Trust: 0.2

url:http://www.trapkit.de/advisories/tk-advisories-signature-key.asc

Trust: 0.1

url:http://secunia.com/product/18834/

Trust: 0.1

url:http://secunia.com/secunia_security_advisories/

Trust: 0.1

url:http://secunia.com/advisories/31434/

Trust: 0.1

url:http://secunia.com/product/12660/

Trust: 0.1

url:http://secunia.com/product/16198/

Trust: 0.1

url:http://secunia.com/hardcore_disassembler_and_reverse_engineer/

Trust: 0.1

url:http://secunia.com/product/19549/

Trust: 0.1

url:http://secunia.com/sec_adv_unsubscribe/?email=packet%40packetstormsecurity.org

Trust: 0.1

url:http://secunia.com/secunia_security_specialist/

Trust: 0.1

url:http://corporate.secunia.com/about_secunia/64/

Trust: 0.1

url:http://secunia.com/product/14434/

Trust: 0.1

url:https://support.ca.com/irj/portal/anonymous/solutionresults?aparno=ro00535&actionid=4

Trust: 0.1

url:http://secunia.com/about_secunia_advisories/

Trust: 0.1

url:http://cve.mitre.org/cgi-bin/cvename.cgi?name=cve-2008-3174

Trust: 0.1

url:http://www.ca.com/us/privacy/

Trust: 0.1

url:https://nvd.nist.gov/vuln/detail/cve-2008-3174

Trust: 0.1

url:http://www.trapkit.de/

Trust: 0.1

url:http://support.ca.com/

Trust: 0.1

url:http://osvdb.org/

Trust: 0.1

url:http://shop.ca.com/support.

Trust: 0.1

url:https://support.ca.com/irj/portal/anonymous/phpsupcontent?contentid=177782

Trust: 0.1

url:http://www.ca.com/us/contact/

Trust: 0.1

url:http://www.ca.com/us/legal/

Trust: 0.1

url:https://support.ca.com/irj/portal/anonymous/redirarticles?reqpage=search&se

Trust: 0.1

url:http://support.ca.com.

Trust: 0.1

url:https://support.ca.com/irj/portal/anonymous/phpsupcontent?contentid=182496

Trust: 0.1

sources: VULHUB: VHN-33051 // BID: 30651 // JVNDB: JVNDB-2008-002498 // PACKETSTORM: 69035 // PACKETSTORM: 68975 // PACKETSTORM: 69034 // CNNVD: CNNVD-200808-164 // NVD: CVE-2008-2926

CREDITS

Tobias Klein, Elazar Broad

Trust: 0.9

sources: BID: 30651 // CNNVD: CNNVD-200808-164

SOURCES

db:VULHUBid:VHN-33051
db:BIDid:30651
db:JVNDBid:JVNDB-2008-002498
db:PACKETSTORMid:69035
db:PACKETSTORMid:68975
db:PACKETSTORMid:69034
db:CNNVDid:CNNVD-200808-164
db:NVDid:CVE-2008-2926

LAST UPDATE DATE

2025-04-10T23:05:19.831000+00:00


SOURCES UPDATE DATE

db:VULHUBid:VHN-33051date:2018-10-11T00:00:00
db:BIDid:30651date:2008-08-25T22:25:00
db:JVNDBid:JVNDB-2008-002498date:2010-12-24T00:00:00
db:CNNVDid:CNNVD-200808-164date:2021-04-12T00:00:00
db:NVDid:CVE-2008-2926date:2025-04-09T00:30:58.490

SOURCES RELEASE DATE

db:VULHUBid:VHN-33051date:2008-08-12T00:00:00
db:BIDid:30651date:2008-08-11T00:00:00
db:JVNDBid:JVNDB-2008-002498date:2010-12-24T00:00:00
db:PACKETSTORMid:69035date:2008-08-13T05:43:58
db:PACKETSTORMid:68975date:2008-08-13T01:46:19
db:PACKETSTORMid:69034date:2008-08-13T05:41:53
db:CNNVDid:CNNVD-200808-164date:2008-08-12T00:00:00
db:NVDid:CVE-2008-2926date:2008-08-12T23:41:00