ignorance isn't always an option

RSA Key Manager 1.5.x SQL Injection

RSA Key Manager 1.5.x SQL Injection
Posted Jun 4, 2010
Authored by Kyle Quest

RSA Key Manager version 1.5.x suffers from a remote SQL injection vulnerability.

tags | exploit, remote, sql injection
advisories | CVE-2010-1904
MD5 | 62c52d4db42116afb8f38b8608a99ab4

RSA Key Manager 1.5.x SQL Injection

Change Mirror Download
CVE: CVE-2010-1904

Product: RSA Key Manager

Vendor: EMC/RSA

Vulnerable Component: Key Manager Client

Vulnerable Component Version: 1.5.x

Vulnerability Type: SQL injection

Vendor Contact Date: 4/20/2010

Status: Vendor does not want to fix the vulnerability.



Vulnerability Details:

RSA Key Manager Client software uses an SQLite database to cache its
encryption keys.
The software fails to properly validate the metadata embedded inside of the
RSA Key Manager
encrypted data when it perform a key lookup when the encrypted data is being
decrypted.
An attacker can inject SQL commands into the metadata section of the RSA Key
Manager
encrypted data, which will be executed by the Key Manager Client software.
For example, an attacker can inject SQL statements to modify existing
encryption keys,
remove existing encryption keys, add new encryption keys, etc.


The Key Manager client uses two types of cache: memory cache and file
cache.
As long as both or either of the caches are enabled the problem can be
triggered easily.

RSA Key Manager Client 1.5.x uses the following format when it encrypts
data:

Field 1 = KeyIdString
Field 2 = NULL Terminator
Field 3 = Encryption IV
Field 4 = Encrypted Data

Encryptionn Key Cache tables:

1. "ClassTable" [contains encryption key classes configured on the server]

classID VARCHAR(255) PRIMARY KEY
keyID VARCHAR(255) [current key id for this key class]
refreshTime INT UNSIGNED
updateTime INT UNSIGNED

2. "ConfigTable" [includes kekhash - KEK, Key Encryption Key, hash]

name VARCHAR(255) PRIMARY KEY
value VARCHAR(255)

3. "KeyTable" [holds the cached encryption keys]

keyID VARCHAR(255) PRIMARY KEY
classID VARCHAR(255)
keyData BLOB
algorithm VARCHAR(255) [usually "AES/CBC"]
refreshTime INT UNSIGNED
updateTime INT UNSIGNED

Sample Injections:

Injecting the following sql code results in a new encryption key in the Key
Manager (client).

"; INSERT INTO KeyTable
VALUES('1111','MyClass','MyKeyData','ABC',1000,2000);--

Injecting something like the sql code below can be used to replace
the encryption keys used by Key Manager.

"; UPDATE KeyTable SET keyData ='NewKeyData' WHERE classID='MyClass';--

Comments

RSS Feed Subscribe to this comment feed

No comments yet, be the first!

Login or Register to post a comment

File Archive:

May 2012

  • Su
  • Mo
  • Tu
  • We
  • Th
  • Fr
  • Sa
  • 1
    May 1st
    37 Files
  • 2
    May 2nd
    53 Files
  • 3
    May 3rd
    33 Files
  • 4
    May 4th
    4 Files
  • 5
    May 5th
    10 Files
  • 6
    May 6th
    17 Files
  • 7
    May 7th
    19 Files
  • 8
    May 8th
    36 Files
  • 9
    May 9th
    34 Files
  • 10
    May 10th
    35 Files
  • 11
    May 11th
    20 Files
  • 12
    May 12th
    18 Files
  • 13
    May 13th
    11 Files
  • 14
    May 14th
    27 Files
  • 15
    May 15th
    58 Files
  • 16
    May 16th
    54 Files
  • 17
    May 17th
    25 Files
  • 18
    May 18th
    53 Files
  • 19
    May 19th
    9 Files
  • 20
    May 20th
    15 Files
  • 21
    May 21st
    25 Files
  • 22
    May 22nd
    32 Files
  • 23
    May 23rd
    35 Files
  • 24
    May 24th
    26 Files
  • 25
    May 25th
    25 Files
  • 26
    May 26th
    0 Files
  • 27
    May 27th
    0 Files
  • 28
    May 28th
    0 Files
  • 29
    May 29th
    0 Files
  • 30
    May 30th
    0 Files
  • 31
    May 31st
    0 Files

Top Authors In Last 30 Days

File Tags

Systems

packet storm

© 2012 Packet Storm. All rights reserved.

close