OSEC

Neohapsis is currently accepting applications for employment. For more information, please visit our website www.neohapsis.com or email hr@neohapsis.com
 
Kerio Personal Firewall and Kerio Server Firewall FWDRV driver Local Denial of Service

From: Piotr Bania (bania.piotrgmail.com)
Date: Thu Oct 13 2005 - 08:17:36 CDT


          Kerio Technologies Kerio Personal Firewall and Kerio Server
         Firewall FWDRV driver
        Local denial of service
        by Piotr Bania <bania.piotrgmail.com>
        http://pb.specialised.info

        Original location:
         http://pb.specialised.info/all/adv/kerio-fwdrv-dos-adv.txt
        
        Severity: Low (local machine denial of service -
                                 BSOD)

        Software affected: Tested on Kerio Personal Firewall 4
                                 (4.2.0) and KerioServerFirewall
                                 version 1.1.1, however it is highly

                                 possible that earlier versions
                                are also vulnerable.

        I. BACKGROUND

        From kerio.com website:

        "Kerio Personal Firewall represents smart, easy-to-use personal
          security technology that fully protects personal computers
          against hackers and internal misuse"

        "Kerio ServerFirewall offers IT and security administrators a
          powerful and easy-to-use tool to protect their server systems
          from worms, buffer-overflow and other internet security
          threats."

        II. DESCRIPTION

        FWDRV driver (core part of the firewall system) monitors all
         programs that are trying to connect to the internet. While doing
         necessary checks, FWDRV parses the Process Environment Block
         (PEB) like the code shows:

        ;----------SNIP--------------------------------------------
        .text:0041C04E mov ecx, [ebp+var_4] ; ECX = PEB base
        .text:0041C051 mov edx, [ecx+0Ch] ; EDX = PEB_LDR_DATA
        ;----------SNIP--------------------------------------------

        However while parsing the PEB FWDRV doesn't check if the memory
         with Process Environment Block is accessible. It means that if
         attacker will set PAGE_NOACCESS or PAGE_GUARD protection to the
         PEB block the FWDRV will cause an fatal exception and the
         machine will crash.

        III. IMPACT

        Sample scenario:
        Executing connect api function with previously PAGE_NOACCESS
         protection set to Process Environment Block will cause an local
         machine crash.

        IV. POC CODE

        Sample POC code was released to vendor.

best regards,
Piotr Bania

--
--------------------------------------------------------------------
Piotr Bania - <bania.piotrgmail.com> - 0xCD, 0x19
Fingerprint: 413E 51C7 912E 3D4E A62A BFA4 1FF6 689F BE43 AC33
http://pb.specialised.info - Key ID: 0xBE43AC33
--------------------------------------------------------------------