// back

Veritas Backup Exec Server Remote Registry Access Vulnerability

06.23.05

BACKGROUND

VERITAS Backup Exec is an advanced backup and restore solution for
Microsoft Windows server environments. More information is available
from the vendor's web site:

    http://veritas.com/Products/www?c=product&refId=57

DESCRIPTION

Remote exploitation of an access validation vulnerability in Veritas
Backup Exec for Windows provides attackers with 'Administrator'
privileges over the target system's registry.

The problem specifically exists within some RPC handlers defined in
beserver.exe. The Backup Exec Server service registers an RPC interface
on a TCP endpoint with ID 93841fd0-16ce-11ce-850d-02608c44967b on port
6106. The following assembly snippet from beserver.exe version
10.0.5484.0 shows the server-side RPC dispatch table for this interface:

    rpc_dispatch_table_1
        .text:00425E28 dd offset rpc_sub_1
        .text:00425E2C dd offset rpc_sub_2
        .text:00425E30 dd offset rpc_sub_3
        .text:00425E34 dd offset rpc_sub_4
        .text:00425E38 dd offset rpc_sub_5  ; registry read
        .text:00425E3C dd offset rpc_sub_6  ; registry write
        .text:00425E40 dd offset rpc_sub_7  ; registry delete
        .text:00425E44 dd offset rpc_sub_8  ; registry enum
        .text:00425E48 dd offset rpc_sub_9
        .text:00425E4C dd offset rpc_sub_10
        .text:00425E50 dd offset rpc_sub_11
        .text:00425E54 dd offset null_sub
        .text:00425E58 dd offset null_sub

The above marked routines allow unauthenticated remote attackers to
connect to the RPC endpoint and arbitrarily create, modify, delete and
read keys. An attacker needs only to reverse engineer the Microsoft
Interface Description Language (IDL) for the target routine and create
a custom client to connect to and manipulate the server. The IDL
definition for rpc_sub_6 is:

    long rpc_sub_6 (
        /* 04 */ [in] [string] wchar_t *sub_key,
        /* 08 */ [in] [string] wchar_t *value_name,
        /* 0C */ [in] long type,
        /* 10 */ [in] long len_data,
        /* 14 */ [in,out] [size_is(len_data)] byte *data,
        /* 18 */ [in] long len_hkey,
        /* 1C */ [in] [size_is(len_hkey)] byte *hkey
    );

ANALYSIS

Successful exploitation of the described vulnerability allows
unauthenticated remote attackers to connect to and arbitrarily modify
the target systems registry under the privileges of the 'Administrator'
user. Registry write access can be leveraged in a number of ways to
further compromise the target system. A simple vector would involve
writing values to startup keys with UNC paths to malicious binaries.

DETECTION

iDEFENSE has confirmed the existence of this vulnerability in the
latest version of Veritas Backup Exec Server for Windows at the time of
writing, version 10. It is suspected that earlier versions are also
vulnerable.

WORKAROUND

Filter inbound TCP traffic on port 6106 to only trusted clients.

VENDOR RESPONSE

The vendor has addressed this vulnerability in security advisory
VX05-003:

   http://seer.support.veritas.com/docs/276605.htm

CVE INFORMATION

The Common Vulnerabilities and Exposures (CVE) project has assigned the
name CAN-2005-0771 to this issue. This is a candidate for inclusion
in the CVE list (http://cve.mitre.org), which standardizes names for
security problems.

DISCLOSURE TIMELINE

03/18/2005       Initial vendor notification
03/30/2005       Initial vendor response
06/22/2005       Coordinated public disclosure

CREDIT

This vulnerability was discovered by Pedram Amini, iDEFENSE Labs.

Get paid for vulnerability research
http://www.idefense.com/poi/teams/vcp.jsp

LEGAL NOTICES

Copyright © 2005 Verisign, Inc.

Permission is granted for the redistribution of this alert
electronically. It may not be edited in any way without the express
written consent of iDEFENSE. If you wish to reprint the whole or any
part of this alert in any other medium other than electronically, please
email customerservice@idefense.com for permission.

Disclaimer: The information in the advisory is believed to be accurate
at the time of publishing based on currently available information. Use
of the information constitutes acceptance for use in an AS IS condition.
There are no warranties with regard to this information. Neither the
author nor the publisher accepts any liability for any direct, indirect,
or consequential loss or damage arising from use of, or reliance on,
this information.