Public Vulnerability Reports

Citrix Program Neighborhood Agent Buffer Overflow



Citrix Program Neighborhood Agent is a part of the Citrix Presentation
Server Client and facilitates access to Citrix published applications.


Remote exploitation of a buffer overflow vulnerability in Citrix Systems
Inc.'s Program Neighborhood Agent allows attackers to execute arbitrary
code under the privileges of the client user.

The problem specifically exists in the client code responsible for
handling the caching of information received from the server. The
Program Neighborhood Agent caches information from published
applications in the AppCache folder, located in the users profile
directory. Cached icon filenames are named after the published
application. The filename is constructed from a series of calls to
lstrcatA() into a stack based buffer. Because of insufficient bounds
checking, a stack based buffer overflow can occur after the second call
to lstrcatA() as the filename read from the XML element <InName> is
being added to the AppCache folder path. This leads to the eventual
execution of arbitrary code.


Successful exploitation allows remote attackers to execute arbitrary
code under the privileges of the client user. Exploitation requires that
an attacker establish a malicious server and cause or convince the
target user to connect to it via the Program Neighborhood Agent. This
can be accomplished by social engineering or automatically when combined
with a DNS or ARP spoofing attack.

Exploitation of this vulnerability is not trivial. In order to exploit
this vulnerability reliably, an attacker must determine the length of
the target user's username. In some cases, this information can be
gleaned with standard Windows tools such as NBTSTAT. Furthermore,
because requests are cached by the client, an attacker in most cases has
only one window of opportunity to perform a successful attack.


iDEFENSE has confirmed the existance of this vulnerability in Citrix
MetaFrame Program Neighborhood v8.00.24737. It is suspected that earlier
versions are also vulnerable.


Utilize the server IP address instead of the name to circumvent DNS
spoofing attacks.


A vendor advisory for this vulnerability is available at:

Updated clients to address this vulnerability are available at:


The Common Vulnerabilities and Exposures (CVE) project has assigned the
names CAN-2004-1078 to these issues. This is a candidate for inclusion
in the CVE list (, which standardizes names for
security problems.


11/23/2004    Initial vendor notification
11/24/2004    Initial vendor response
04/26/2005    Coordinated public disclosure


Patrik Karlsson ( is credited with this discovery.

Get paid for vulnerability research

Free tools, research and upcoming events


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 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.