{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/imprompter-tricking-llm-agents-into-improper","title":"Imprompter: Tricking LLM Agents into Improper Tool Use","arxiv_id":"2410.14923","date":"2024-10-19","proceeding":null,"authors":["Xiaohan Fu","Shuheng Li","Zihan Wang","Yihao Liu","Rajesh K. Gupta","Taylor Berg-Kirkpatrick","Earlence Fernandes"],"abstract":"Large Language Model (LLM) Agents are an emerging computing paradigm that blends generative machine learning with tools such as code interpreters, web browsing, email, and more generally, external resources. These agent-based systems represent an emerging shift in personal computing. We contribute to the security foundations of agent-based systems and surface a new class of automatically computed obfuscated adversarial prompt attacks that violate the confidentiality and integrity of user resources connected to an LLM agent. We show how prompt optimization techniques can find such prompts automatically given the weights of a model. We demonstrate that such attacks transfer to production-level agents. For example, we show an information exfiltration attack on Mistral's LeChat agent that analyzes a user's conversation, picks out personally identifiable information, and formats it into a valid markdown command that results in leaking that data to the attacker's server. This attack shows a nearly 80% success rate in an end-to-end evaluation. We conduct a range of experiments to characterize the efficacy of these attacks and find that they reliably work on emerging agent-based systems like Mistral's LeChat, ChatGLM, and Meta's Llama. These attacks are multimodal, and we show variants in the text-only and image domains.","url_abs":"https://arxiv.org/abs/2410.14923v2","url_pdf":"https://arxiv.org/pdf/2410.14923v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"links_only","authors_date_abstract":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license), from the Kaggle arXiv metadata snapshot of 2026-09-12"},"code_links":[{"paper_slug":"imprompter-tricking-llm-agents-into-improper","repo_url":"https://github.com/Reapor-Yurnero/imprompter","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"GPL-2.0"}}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2410.14923","atlas_url":"https://app.syntology.ai/?focus=2410.14923","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2410.14923"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/Reapor-Yurnero/imprompter","reach":{"status":"ok","spdx":"GPL-2.0"}}],"summary":{"unverified":6},"by_repo_kind":{"official":{"samples":6,"ran":0,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":6,"samples":[{"code_sha256_prefix":"b4cc90aab1ae7ecc","entry":"build_context_prompt","repo":"Reapor-Yurnero/imprompter","repo_kind":"official","path":"imprompter/utils.py","file_url":"https://github.com/Reapor-Yurnero/imprompter/blob/HEAD/imprompter/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-2.0","inline_ok":false,"mcp_get_code":{"code_sha256":"b4cc90aab1ae7ecc"}},{"code_sha256_prefix":"6fb45f477c0c5e48","entry":"extract_predicted_lists","repo":"Reapor-Yurnero/imprompter","repo_kind":"official","path":"pii_metric.py","file_url":"https://github.com/Reapor-Yurnero/imprompter/blob/HEAD/pii_metric.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-2.0","inline_ok":false,"mcp_get_code":{"code_sha256":"6fb45f477c0c5e48"}},{"code_sha256_prefix":"c297e45a00243e61","entry":"find_sub_list","repo":"Reapor-Yurnero/imprompter","repo_kind":"official","path":"imprompter/utils.py","file_url":"https://github.com/Reapor-Yurnero/imprompter/blob/HEAD/imprompter/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-2.0","inline_ok":false,"mcp_get_code":{"code_sha256":"c297e45a00243e61"}},{"code_sha256_prefix":"62b90e77d70c6ba9","entry":"mdimgkeywords","repo":"Reapor-Yurnero/imprompter","repo_kind":"official","path":"pii_metric.py","file_url":"https://github.com/Reapor-Yurnero/imprompter/blob/HEAD/pii_metric.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-2.0","inline_ok":false,"mcp_get_code":{"code_sha256":"62b90e77d70c6ba9"}},{"code_sha256_prefix":"f29c7865767088f6","entry":"mdimgkeywords_web","repo":"Reapor-Yurnero/imprompter","repo_kind":"official","path":"pii_metric.py","file_url":"https://github.com/Reapor-Yurnero/imprompter/blob/HEAD/pii_metric.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-2.0","inline_ok":false,"mcp_get_code":{"code_sha256":"f29c7865767088f6"}},{"code_sha256_prefix":"01516dd9af0d25cf","entry":"prompt_template_handler","repo":"Reapor-Yurnero/imprompter","repo_kind":"official","path":"imprompter/utils.py","file_url":"https://github.com/Reapor-Yurnero/imprompter/blob/HEAD/imprompter/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-2.0","inline_ok":false,"mcp_get_code":{"code_sha256":"01516dd9af0d25cf"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}