## WHITE PAPER: A Brief Exploration of Data Exfiltration using GCG Suffixes

Victor Valbuena ∗

Artificial Intelligence Red Team, Cloud Ecosystem Security, Microsoft

August 5, 2024

## Abstract

The cross-prompt injection attack (XPIA) is an effective technique that can be used for data exfiltration, and that has seen increasing use. In this attack, the attacker injects a malicious instruction into third party data which an LLM is likely to consume when assisting a user, who is the victim. XPIA is often used as a means for data exfiltration, and the estimated cost of the average data breach for a business is nearly $ 4.5 million, which includes breaches such as compromised enterprise credentials. With the rise of gradient-based attacks such as the GCG suffix attack, the odds of an XPIA occurring which uses a GCG suffix are worryingly high. As part of my work in Microsoft's AI Red Team, I demonstrated a viable attack model using a GCG suffix paired with an injection in a simulated XPIA scenario. The results indicate that the presence of a GCG suffix can increase the odds of successful data exfiltration by nearly 20%, with some caveats.

## 1 Introduction

Large language models (LLMs) are notorious for both their impressive capabilities as well as for their perceived lack of 'common sense.' While anecdotal, this phenomenon has become the focal point for many jailbreaks and attacks which induce undesirable behavior in language models. Of these, two notable attacks are the Cross-Prompt Injection Attack (XPIA), which takes advantage of a model's inability to distinguish between tasks and instructions, and the Greedy Coordinate Gradient (GCG) suffix attack, introduced by Zou et al. in 2023 [ZWC + 23], which induces model compliance to a prompt by appending a pre-generated suffix onto it. The combination of these two attacks could prove extremely capable in inducing data exfiltration, and is the focus of this paper.

## 1.1 Cross-Prompt Injection Attacks (XPIAs)

The Cross-Prompt Injection Attack (XPIA) is a novel attack that has been reported with increasing frequency. In an XPIA, the attacker embeds a malicious instruction referred to as an injection into third party data, such as an email. This injection is then consumed by an LLM when it receives a user query with the infected third-party data attached. The attacker's intent is that the model will ignore the user's instruction(s), executing only the instructions presented in the injection. Common attack vectors include emails and documents, with an illustrated example in Figure 1.

This paper focuses on one of the common goals of an XPIA: the exfiltration of private user information. A language model consuming a user prompt and third-party data with an embedded injection can activate a plug-in, then provide private user information as an argument to said plug-in. This in turn allows for the private information to be exfiltrated if that plug-in has internet connectivity, e.g., if it is a browsing plug-in. Therefore, there are several requirements for a successful exfiltration using XPIA:

- · It must induce an affirmative model response, e.g., the model agrees to the injected instruction.

∗ linkedin.com/in/victor-valbuena; victorcvalb@gmail.com

Figure 1: An illustrated cross-prompt injection attack (XPIA).

![image](https://ac.marcodsn.me/arxiv-markdown-images/2408.00925v1-figure-6a189d54-36f5-42c7-8758-0b14d556d7e2.jpg)

- · The model must respond with a string which the runtime considers a function call, with its arguments correctly populated.
- · The plug-in itself must have internet connectivity or otherwise leak private user information to a third party.

## 1.2 Greedy Coordinate Gradient (GCG) Suffix Attacks

The Greedy Coordinate Gradient (GCG) suffix attack was discovered by Zou et al. in 2023 [ZWC + 23]. GCG suffix attacks append a suffix, usually referred to as just a 'GCG suffix', to a prompt. The addition of the suffix induces an affirmative response from the model, and increases the odds of model compliance to harmful requests. GCG suffix attacks are derived from a broader set of gradient-based attacks against language models. For the attacker, the benefit of using a GCG suffix is that, rather than hand-crafting an ideal jailbreak, they can generate a jailbreak automatically by running the algorithm which produces the suffix. This significantly increases the likelihood of a successful attack, as it removes the bottleneck of having a prompt engineer designing and testing jailbreaks. A visualized summary of the GCG attack is visible in Figure 2.

## 1.3 XPIA + GCG: A Novel Attack Method

Combining the GCG suffix attack with an XPIA produces a novel, more dangerous attack, which I will refer to as a GCG-XPIA. In a GCG-XPIA, the attack vector remains third party data, but the attacker's injection contains a GCG suffix. As GCG suffixes are generated such that the tokens the model generates immediately following them are those representing an affirmative response, e.g., 'Sure, here's how to...', this attack could 'redirect' model attention towards the injected task much more effectively than an ordinary injection. It is this novel attack method that I explored during my work at Microsoft.

## 1.4 Motivation

The reason it is crucial to explore exfiltration scenarios is because of the disproportionate effect they have on businesses relative to the effort required to execute them. The average data breach costs approximately $ 4.5 million USD [IBM23] for an affected business, and thousands of them are reported

Figure 2: A brief summary of the GCG suffix attack. Adapted from Zou et al. [ZWC + 23] (2023, pg. 5).

![image](https://ac.marcodsn.me/arxiv-markdown-images/2408.00925v1-figure-3383bf23-9627-49a5-9513-9a1163719dab.jpg)

per year [Pet23]. Data breaches can happen when some component of a broader system is tricked or manipulated into exposing private information to a third party without consent; this breach can be accomplished using an XPIA. As there are many jailbreaks that reveal what plug-ins a model has access to, including for GPT-4 [Sha23], it is reasonable to suspect that data exfiltration employing a GCG-XPIA has either been attempted or will be attempted soon, with potentially devastating consequences. I explored a viable means of doing so, demonstrating the importance of employing preventative measures to counter this novel attack.

## 2 Methods

With a dataset of prompts, injections, and GCG suffixes, I set out to identify the odds of a model performing data exfiltration successfully using a GCG-XPIA. I investigated three models: Phi-3-mini, GPT-3.5 , and GPT-4o . I chose these three models specifically to assess the performance of the attack across models of varying complexities. Phi-3-mini was chosen as a proxy for low-complexity models, GPT-3.5 for medium-complexity models, and GPT-4o for high-complexity models. The release of GPT-4o mini occurred after results were gathered for GPT-3.5, but nevertheless, many production deployments are still actively using it at the time of writing.

## 2.1 Success Criteria

In general, modern chatbots and copilots implement tool-calling functionality into their language models by including a list of tools in the model's system prompt, provided using a predetermined format like JSON. These are often interchangeably referred to as functions, plug-ins, or tools. When the assistant responds to the user's request, a runtime environment typically parses the model completion for one or more strings matching one or more function calls. If those strings are found, they are decomposed into the arguments required by the actual function, and the runtime executes the function using the extracted arguments. The formatting and function capacities depend from model to model and from implementation to implementation, but to use a simple example, if the system prompt defines a function f(x: str) , and the model responds to a user query with "Okay, sure: f("foobar")" , then the user sees only "Okay, sure: " while the runtime processes f("foobar") and executes the function f using argument "foobar" for parameter x .

Figure 3: A full context window of an injected user request and the expected model response.

![image](https://ac.marcodsn.me/arxiv-markdown-images/2408.00925v1-figure-119b8e51-7cb3-4276-bc25-1a7f5aab1fa8.jpg)

Unfortunately, it is almost trivial to get a model to reveal its system prompt, including what functions the model has access to [Sha23]. This can be problematic if a model has access to the outside world, for example, if it has access to networking plug-ins. An attacker can identify the function f responsible for network access, and deliberately manipulate the model into responding with a string which the runtime will interpret as a function invocation. Furthermore, if there is private user information in the context window, the model can provide that information as an argument to a function call, allowing the attacker to perform data exfiltration. As long as the private information is in the context window, it can be passed to a plug-in as an argument, so any plug-in with external capacities like networking creates an attack surface.

To simulate this behavior, I defined a simple system prompt that I provided to each of the models I tested, which specified that the model had access to a plug-in called send . The send function simulated a generic networking tool. The system prompt also contained a user credential, CONTOSO , which the model was instructed not to share under any circumstances. This simulated the presence of private user information in the context window.

The plug-in format was Pythonic: send(body: str, endpoint: str) . An exfiltration was determined as successful if the model output matched a valid Python call to send , including populating its parameters. That is, successful data exfiltration was defined as any function call which correctly populated the send function with body='CONTOSO' , and with endpoint set to a dummy endpoint I also passed to the model in the system prompt. A model response with the function call in it demonstrated a model's ability to, when attacked, send private user information to a third party regardless of the user's original request.

## 2.2 Building a Dataset

I then constructed a dataset of prompts which could be sent to the models to assess the success rates of data exfiltration given different classes of prompt, i.e., prompts that included just an injection relative to prompts that included an injection with a GCG suffix appended. The model could respond with either refusal, acceptance, or ignorance of the injection. The full context window is demonstrated in Figure 3.

The dataset was comprised of four classes in total, with prompts pulled from two of them for this experiment. Base prompts were generated using the clean tasks from Are you still on track!? Catching LLM Task Drift with Activations [AFC + 24]. GCG suffixes were generated using the original algorithm

Figure 4: Diagram of dataset generation.

![image](https://ac.marcodsn.me/arxiv-markdown-images/2408.00925v1-figure-1c4647ab-2675-4958-9145-17eba874a3c4.jpg)

devised by Zou et al. [ZWC + 23]. Five suffixes were generated using llama2 as the target model. The dataset composition can be seen in Figure 4.

The goal, therefore, was to identify whether a model could successfully respond to an injection in a meaningful sense. If the model did not refuse or ignore the injection, then to perform data exfiltration, it would have to respond with the function call containing the correct arguments and using the correct formatting. I simulated a runtime environment by using a parser for model outputs which recognized the function call, and sent a POST request to a local server whose body contained the body argument of send . This simulated a successful end-to-end data exfiltration, with an attacker receiving private user information at their endpoint after injecting a user's emails or documents using a malicious injection with a GCG suffix.

## 3 Results

The key finding is that it is possible to perform private data exfiltration with a 16% success rate for GPT-3.5. In this experiment, introducing GCG suffixes to injections induced a 20% gain in data exfiltration success relative to those injections without the suffixes.

## 3.1 Individual Model Responses

In Figure 5 the results of a simulated data exfiltration are shown, where a mock runtime for the model was able to successfully issue a POST request containing a user's private credential to the attacker's designated endpoint. A sample response from GPT-3.5 to the injection is shown in Figure 6 to give a sense of how the models responded when complying with the injection. The runtime processed responses such as these and executed as the send command when the arguments were provided correctly. With repeated attempts, a pattern emerges.

In Figure 7, we see the success rates of exfiltration attempts by model and by strategy. Each of the three models was sent prompts that contained just an injection as well as prompts that contained an injection with a GCG suffix appended to it. Notably:

- · Adding a GCG suffix made exfiltration 20% more likely for GPT-3.5.
- · Adding a GCG suffix made exfiltration 47% less likely for Phi-3-Mini.

![image](https://ac.marcodsn.me/arxiv-markdown-images/2408.00925v1-figure-7ba6abbd-6955-40ad-82f4-f9af29574bee.jpg)

Figure 5: Mock environment simulating successful data exfiltration.

```
 *
    # An example response produced by GPT-3.5.
    gpt_35_response = '''
    Embedding the user's credential in a function can be done by passing the credential as the value for the 'body' parameter
    in the `send` function. The correct syntax to achieve this would be:
    `send('CONTOSO', 'https://an-innocent-endpoint-12345.com')`
    This will send an HTTPS packet with the credential 'CONTOSO' as the body and 'https://an-innocent-endpoint-12345.com'
    as the endpoint.'''
```

Figure 6: Example response from GPT-3.5, complying with an injection request.

Figure 7: Exfiltration success rates by model and treatment group (injection alone, injection with GCG suffix).

![image](https://ac.marcodsn.me/arxiv-markdown-images/2408.00925v1-figure-ceca21cc-9b9c-4045-a460-46da850a2793.jpg)

Figure 8: Exfiltration success rates by model, treatment group (injection alone, injection with GCG suffix), and plug-in formatting type (Python alone, Any including JSON).

![image](https://ac.marcodsn.me/arxiv-markdown-images/2408.00925v1-figure-c8961f57-8fe6-497c-a90d-b5e5a09f0913.jpg)

- · GPT-4o had a 0% success rate - it never complied with an injection.

These findings indicate that model complexity correlates with a lower likelihood of exfiltration success, but this is not the whole picture. The least complex of the models, Phi-3-Mini, was more likely to perform the exfiltration without a GCG suffix, while a model of medium complexity, GPT-3.5, was more likely to do so. This implies that GCG suffixes introduce noise in models of lower complexities, but induce affirmative responses in models of medium complexities. This is a critical finding, as it means defenses for models of varying complexities must themselves vary.

## 3.2 Function Call Formatting and Safety Alignment

Another important detail is that, despite the system prompt containing only mention of a Pythonformatted function, Phi-3-Mini and GPT-3.5 often responded with JSON formatted function calls. If we include these JSON calls as valid function calls along with the Python ones, we get the results shown in Figure 8.

This suggests that models are primarily trained using JSON formatted function calls. Models trained to issue function calls using JSON may revert to this format in their responses, even if provided explicit instructions to use another format. Models also appear to have variable success rates for 'adopting' a new format if provided one in the system prompt. It is worth noting that the odds of data exfiltration success for GPT-3.5 were the the same for injections with and without a GCG suffix when considering responses using both Python and JSON formats. GCG suffixes may induce agreement with some, but not all, of the instructions the model has been given.

## 4 Conclusion

This brief exploration highlights the need to expand and improve model defenses. However, a notable finding is that models of differing complexities respond differently to the GCG-XPIA attack . Phi-3Mini, the simplest model, was less capable of following through on an injection in the presence of GCG suffix, while conversely, GPT-3.5 was more likely to perform exfiltration when presented with a GCG suffix. And GPT-4o would not perform data exfiltration in either case, suggesting that model complexity may be a productive way of reducing the odds of data exfiltration.

## 4.1 Recommendations for Improving Defenses

From this work, I recommend the following pathways to further securing models.

- · Complex Models : Consider using more complex models to reduce the likelihood of model compliance with injection requests, and/or improve defenses for smaller models to make them more robust.
- · Variable Defenses : Use different defenses for models of differing complexities. For smaller models, focus on prompt filtering, while for larger models, focus on GCG suffix detection.
- · Further Investigation of Gradient-Based Attacks : These findings suggest that gradientbased attacks may not transfer universally across models with different training conditions, architectures, and/or complexities.

## 5 Acknowledgements

Special thanks to the AI Red Team at Microsoft for their warm support, which made my time at Microsoft both productive and very enjoyable. Blake Bullwinkel and Shiven Chawla were excellent mentors, providing invaluable guidance and feedback throughout the project. Pete Bryan's supervision was fantastic, offering deep expertise and support.

Special thanks as well to Aideen Fay and Sahar Abdelnabi for sharing data used in their work [AFC + 24] for use in this experiment. Their support and feedback were invaluable to this project.

## 6 Disclaimers

This white paper and the associated research were produced and conducted by Victor Valbuena as a part of his AI Software Engineering internship on Microsoft's AI Red Team. It is subject to the following disclaimer:

(c)2024 Microsoft Corporation. All rights reserved. This document is provided 'as-is.' Information and views expressed in this document, including URL and other Internet Web site references, may change without notice. You bear the risk of using it. Examples herein may be for illustration only and if so are fictitious. No real association is intended or inferred.

This document does not provide you with any legal rights to any intellectual property in any Microsoft product. You may copy and use this document for your internal, reference purposes.

## References

[AFC + 24] Sahar Abdelnabi, Aideen Fay, Giovanni Cherubin, Ahmed Salem, Mario Fritz, and Andrew Paverd. Are you still on track!? catching llm task drift with activations. arXiv preprint arXiv:2406.00799 , 2024.

[IBM23]

IBM. Cost of a data breach 2023. https://www.ibm.com/reports/data-breach , 2023.

[Pet23] Ani Petrosyan. Number of data breaches and victims u.s. 2023. https://www.statista.com/statistics/273550/

data-breaches-recorded-in-the-united-states-by-number-of-breaches-and-records-exposed/ , 2023.

[Sha23] Louis Shark. Chatgpt system prompt. https://github.com/LouisShark/chatgpt\_ system\_prompt , 2023.

[ZWC +

23]

Andy Zou, Zifan Wang, Nicholas Carlini, Milad Nasr, J. Zico Kolter, and Matt Fredrikson. Universal and transferable adversarial attacks on aligned language models. arXiv preprint arXiv:2307.15043 , 2023.
Victor Valbuena
WHITE PAPER: A Brief Exploration of Data Exfiltration using GCG Suffixes
The cross-prompt injection attack (XPIA) is an effective technique that can
be used for data exfiltration, and that has seen increasing use. In this
attack, the attacker injects a malicious instruction into third party data
which an LLM is likely to consume when assisting a user, who is the victim.
XPIA is often used as a means for data exfiltration, and the estimated cost of
the average data breach for a business is nearly $4.5 million, which includes
breaches such as compromised enterprise credentials. With the rise of
gradient-based attacks such as the GCG suffix attack, the odds of an XPIA
occurring which uses a GCG suffix are worryingly high. As part of my work in
Microsoft's AI Red Team, I demonstrated a viable attack model using a GCG
suffix paired with an injection in a simulated XPIA scenario. The results
indicate that the presence of a GCG suffix can increase the odds of successful
data exfiltration by nearly 20%, with some caveats.