{"id":5040,"date":"2026-08-18T09:43:46","date_gmt":"2026-08-18T09:43:46","guid":{"rendered":"https:\/\/www.hackmosphere.fr\/prompt-injection-and-ai-security-the-vulnerability-that-no-one-has-solved-yet\/"},"modified":"2026-09-03T12:26:09","modified_gmt":"2026-09-03T12:26:09","slug":"prompt-injection","status":"publish","type":"post","link":"https:\/\/www.hackmosphere.fr\/en\/prompt-injection\/","title":{"rendered":"Prompt Injection and AI Security: The Vulnerability That No One Has Solved Yet"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.16&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_row _builder_version=&#8221;4.16&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.16&#8243; custom_padding=&#8221;|||&#8221; global_colors_info=&#8221;{}&#8221; custom_padding__hover=&#8221;|||&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_text _builder_version=&#8221;4.27.8&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; hover_enabled=&#8221;0&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; sticky_enabled=&#8221;0&#8243;]<!-- divi:paragraph --><\/p>\n<p>In June 2025, a single email was enough to silently clear the context of Microsoft 365 Copilot (emails, OneDrive files, Teams conversations) without any employee having to click on anything. This vulnerability <a href=\"https:\/\/nvd.nist.gov\/vuln\/detail\/cve-2025-32711\"><u>CVE-2025-32711<\/u><\/a>, dubbed <em>EchoLeak<\/em>, illustrates better than any theoretical demonstration why <a href=\"https:\/\/fr.wikipedia.org\/wiki\/Infiltration_de_requ%C3%AAte\"><u>prompt injection<\/u><\/a> ranks first on the OWASP list of LLM application vulnerabilities for the second consecutive year: this is not a hypothetical risk, but an attack vector that has already been exploited against production systems at Microsoft, Google, GitHub, and OpenAI between 2025 and 2026. <\/p>\n<p><!-- \/divi:paragraph --><!-- divi:heading --><\/p>\n<h2 class=\"wp-block-heading\">Prompt Injection and AI Security: A Structural Flaw<\/h2>\n<p><!-- \/divi:heading --><!-- divi:paragraph --><\/p>\n<p>Prompt injection exploits an architectural limitation of large language models: an LLM receives system instructions and data provided by the user or retrieved from an external source as a single text stream, with no reliable way to structurally distinguish between the two. An attacker who manages to formulate data as if it were a command can therefore divert the model from its original purpose; this is the single mechanism underlying all variants of this attack. <\/p>\n<p><!-- \/divi:paragraph --><!-- divi:heading --><\/p>\n<h2 class=\"wp-block-heading\">Types of prompt injection: direct, indirect, and stored<\/h2>\n<p><!-- \/divi:heading --><!-- divi:heading {\"level\":3} --><\/p>\n<h3 class=\"wp-block-heading\">Direct injection prompt<\/h3>\n<p><!-- \/divi:heading --><!-- divi:paragraph --><\/p>\n<p>Direct prompt injection occurs when an attacker manually enters malicious instructions into the prompt, typically to bypass a chatbot\u2019s safeguards; this is the most well-documented variant, but also the easiest to mitigate, since it involves direct and traceable interaction with the system.<\/p>\n<p><!-- \/divi:paragraph --><!-- divi:heading {\"level\":3} --><\/p>\n<h3 class=\"wp-block-heading\">Indirect prompt injection<\/h3>\n<p><!-- \/divi:heading --><!-- divi:paragraph --><\/p>\n<p>Indirect prompt injection is currently the most widespread and difficult-to-contain category: the attacker hides their instructions within content that the AI accesses on its own initiative (an email, a web page, a shared document) without ever interacting directly with the targeted system. This is precisely how EchoLeak works: an email containing a hidden instruction, invisible to the user but read and executed by Copilot\u2019s RAG engine as it summarized the latest messages in the inbox. <\/p>\n<p><!-- \/divi:paragraph --><!-- divi:heading {\"level\":3} --><\/p>\n<h3 class=\"wp-block-heading\">Stored injection prompt<\/h3>\n<p><!-- \/divi:heading --><!-- divi:paragraph --><\/p>\n<p>Stored injection adds a layer of latency: the malicious instruction is stored in long-term memory, an indexed document database, or a knowledge base, and is activated only later, when a legitimate user queries that source, making it significantly more difficult to trace the origin of the attack after the fact.<\/p>\n<p><!-- \/divi:paragraph --><!-- divi:heading --><\/p>\n<h2 class=\"wp-block-heading\">EchoLeak: A Real-World Case of a Prompt Injection Vulnerability<\/h2>\n<p><!-- \/divi:heading --><!-- divi:paragraph --><\/p>\n<p>The EchoLeak case (<a href=\"https:\/\/nvd.nist.gov\/vuln\/detail\/cve-2025-32711\">CVE-2025-32711<\/a>, critical severity, CVSS 9.3) is worth examining in detail because it clearly illustrates how this theoretical vulnerability translates into a concrete risk. Researchers at Aim Security demonstrated that a specially crafted email\u2014containing an instruction hidden in plain text on a white background or in an invisible HTML comment\u2014was enough to trigger the exfiltration of sensitive data to a server controlled by the attacker, without the victim having to click anything. Once the email\u2019s content was retrieved by Copilot\u2019s RAG engine in response to a harmless user query, the hidden instruction was executed as if it came from a legitimate source.  <\/p>\n<p><!-- \/divi:paragraph --><!-- divi:paragraph --><\/p>\n<p>Subsequent technical analysis showed that the attack chained together four distinct bypasses to achieve its objective: it evaded Microsoft\u2019s proprietary anti-injection classifier, bypassed link sanitization, and exploited an authorized image proxy to complete the exfiltration. Microsoft patched the server-side vulnerability in June 2025, with no actual exploitation confirmed prior to the publication. The patch resolved this specific case; however, the risk category it illustrates\u2014an AI assistant with broad access to internal data, capable of processing untrusted content as if it were legitimate instructions\u2014remains an open risk for any AI assistant built on a comparable architecture.  <\/p>\n<p><!-- \/divi:paragraph --><!-- divi:heading --><\/p>\n<h2 class=\"wp-block-heading\">Protection Against Prompt Injection: Why No Defense Is Definitive<\/h2>\n<p><!-- \/divi:heading --><!-- divi:paragraph --><\/p>\n<p>This is the most honest point to make in this guide, even if it disappoints those looking for a one-size-fits-all solution: every mitigation measure currently available reduces the probability of a successful attack, but none of them eliminates it entirely. Delimiter compartmentalization\u2014which involves explicitly marking the boundaries between system instructions and external content\u2014helps the model better distinguish between the two, though it never guarantees this distinction in every case. Repeating the original instruction at the end of the prompt\u2014a technique sometimes called \u201csandwich defense\u201d\u2014reinforces the user\u2019s initial intent without preventing sufficiently clever content from circumventing it. Specifically training the model to resist these techniques reduces the overall attack surface, at the cost of costly retraining that offers no guarantee against variants not yet known at the time of training.   <\/p>\n<p><!-- \/divi:paragraph --><!-- divi:paragraph --><\/p>\n<p>This reality has a direct impact on the approach we should take: defense against prompt injection should never rely on a single measure, no matter how sophisticated it may be, but on a systematic reduction of the potential impact, foremost among which is strictly limiting what an AI agent or assistant can access, regardless of its ability to resist the injection itself.<\/p>\n<p><!-- \/divi:paragraph --><!-- divi:heading --><\/p>\n<h2 class=\"wp-block-heading\">How can we reduce the risk of rapid injection?<\/h2>\n<p><!-- \/divi:heading --><!-- divi:list --><\/p>\n<ul class=\"wp-block-list\">\n<ul class=\"wp-block-list\"><!-- divi:list-item --><\/p>\n<li>Restrict access at the source: An assistant who has access only to the data strictly necessary for their task automatically limits what a successful injection can expose, even if the model\u2019s defenses are bypassed.<\/li>\n<li>Treat all external content as untrustworthy: emails, web pages, and shared documents should be treated as potentially malicious data before being fed into an AI system, just as unvalidated user input would be treated in a traditional application.<\/li>\n<li>Logging and categorizing interactions: The ability to distinguish retrospectively between direct, indirect, or cached injections in the interaction logs is key to fixing the exploited vulnerability rather than merely addressing an isolated symptom.<\/li>\n<li>Actively testing rather than assuming protection is in place: a penetration test specifically tailored to injection scenarios\u2014both direct and indirect\u2014remains the only way to verify that a purported security measure can actually withstand an attempt to circumvent it.<\/li>\n<\/ul>\n<\/ul>\n<p>\u2192 See our <a href=\"https:\/\/www.hackmosphere.fr\/en\/ai-architectures-risk-factors-which-component-which-risk\/\" data-type=\"post\" data-id=\"4746\">guide to AI architectures and risk vectors to <\/a>understand how this vector fits into the broader AI architecture, and our <a href=\"https:\/\/www.hackmosphere.fr\/en\/pentest-cyber\/\" data-type=\"page\" data-id=\"1829\">AI penetration testing<\/a> services to assess how resilient your systems really are against these scenarios.<\/p>\n<p>&nbsp;<\/p>\n<p><!-- \/divi:paragraph --><!-- divi:heading --><\/p>\n<h2 class=\"wp-block-heading\">FAQ: Prompt Injection and AI Security<\/h2>\n<p><!-- \/divi:heading -->[\/et_pb_text][et_pb_accordion _builder_version=&#8221;4.27.8&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_accordion_item title=&#8221;Does prompt injection affect only conversational chatbots?&#8221; open=&#8221;on&#8221; _builder_version=&#8221;4.27.8&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]No. As soon as an AI system has access to tools, data, or actions (such as an agent, RAG, or a co-pilot integrated into an office suite), prompt injection becomes a vector for executing unwanted actions\u2014not just for generating inappropriate text.[\/et_pb_accordion_item][et_pb_accordion_item title=&#8221;Is a company that uses only consumer-grade AI tools at risk?&#8221; _builder_version=&#8221;4.27.8&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; open=&#8221;off&#8221;]Yes, as EchoLeak demonstrates with a tool widely deployed in enterprises. The level of exposure depends less on the chosen vendor than on the scope of the data and systems to which the AI assistant has access in the user\u2019s context.[\/et_pb_accordion_item][et_pb_accordion_item title=&#8221;Is there a difference in risk between a prompt injection and a jailbreak?&#8221; _builder_version=&#8221;4.27.8&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; open=&#8221;off&#8221;]Jailbreaking is generally classified as a subset of direct prompt injection, specifically aimed at bypassing the model\u2019s alignment safeguards. Indirect injection, which is a broader concept, aims to manipulate the system\u2019s behavior beyond the mere issue of generated content.[\/et_pb_accordion_item][\/et_pb_accordion][et_pb_text _builder_version=&#8221;4.27.8&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<!-- divi:heading --><\/p>\n<h2 class=\"wp-block-heading\">Test the resilience of your AI systems against prompt injection<\/h2>\n<p><!-- \/divi:heading --><\/p>\n<p><!-- divi:paragraph --><\/p>\n<p>Our experts assess the actual exposure of your AI systems to this threat vector and actively test their resilience as part of our <a href=\"https:\/\/www.hackmosphere.fr\/en\/?p=5149\" data-type=\"post\" data-id=\"5126\">AI penetration testing<\/a> service. Would you like to discuss your project or assess your needs?   <a href=\"https:\/\/www.hackmosphere.fr\/en\/contact\/\" data-type=\"page\" data-id=\"1780\">Contact our experts.<\/a><\/p>\n<p><!-- \/divi:paragraph -->[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In June 2025, a single email was enough to silently clear the context of Microsoft 365 Copilot (emails, OneDrive files, Teams conversations) without any employee having to click on anything. This vulnerability CVE-2025-32711, dubbed EchoLeak, illustrates better than any theoretical demonstration why prompt injection ranks first on the OWASP list of LLM application vulnerabilities for [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":5046,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_seopress_titles_title":"Prompt Injection: Understanding the Risks and Securing Your AI Systems","_seopress_titles_desc":"Learn how injection attacks work, why they pose a threat to AI agents, and what steps can be taken to limit their impact.","_seopress_robots_index":"","_seopress_robots_follow":"","_seopress_robots_imageindex":"","_seopress_robots_snippet":"","_seopress_robots_primary_cat":"","_seopress_robots_breadcrumbs":"","_seopress_robots_freeze_modified_date":"","_seopress_robots_custom_modified_date":"","_seopress_robots_canonical":"","_seopress_social_fb_title":"","_seopress_social_fb_desc":"","_seopress_social_fb_img":"","_seopress_social_fb_img_attachment_id":0,"_seopress_social_fb_img_width":0,"_seopress_social_fb_img_height":0,"_seopress_social_twitter_title":"","_seopress_social_twitter_desc":"","_seopress_social_twitter_img":"","_seopress_social_twitter_img_attachment_id":0,"_seopress_social_twitter_img_width":0,"_seopress_social_twitter_img_height":0,"_seopress_redirections_value":"","_seopress_redirections_enabled":"","_seopress_redirections_enabled_regex":"","_seopress_redirections_logged_status":"","_seopress_redirections_param":"","_seopress_redirections_type":0,"_seopress_analysis_target_kw":"","_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[46,18],"tags":[],"class_list":["post-5040","post","type-post","status-publish","format-standard","has-post-thumbnail","category-other","category-red-team"],"_links":{"self":[{"href":"https:\/\/www.hackmosphere.fr\/en\/wp-json\/wp\/v2\/posts\/5040","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hackmosphere.fr\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hackmosphere.fr\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hackmosphere.fr\/en\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hackmosphere.fr\/en\/wp-json\/wp\/v2\/comments?post=5040"}],"version-history":[{"count":8,"href":"https:\/\/www.hackmosphere.fr\/en\/wp-json\/wp\/v2\/posts\/5040\/revisions"}],"predecessor-version":[{"id":5698,"href":"https:\/\/www.hackmosphere.fr\/en\/wp-json\/wp\/v2\/posts\/5040\/revisions\/5698"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hackmosphere.fr\/en\/wp-json\/wp\/v2\/media\/5046"}],"wp:attachment":[{"href":"https:\/\/www.hackmosphere.fr\/en\/wp-json\/wp\/v2\/media?parent=5040"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hackmosphere.fr\/en\/wp-json\/wp\/v2\/categories?post=5040"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hackmosphere.fr\/en\/wp-json\/wp\/v2\/tags?post=5040"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}