{"id":1862,"date":"2026-09-30T01:27:20","date_gmt":"2026-09-30T01:27:20","guid":{"rendered":"https:\/\/feedsta.ai\/blog\/coding-agent-memory-leaking-api-keys-credentials\/"},"modified":"2026-09-30T01:27:21","modified_gmt":"2026-09-30T01:27:21","slug":"coding-agent-memory-leaking-api-keys-credentials","status":"publish","type":"post","link":"https:\/\/feedsta.ai\/blog\/coding-agent-memory-leaking-api-keys-credentials\/","title":{"rendered":"Coding agent memory is leaking API keys and credentials in plain text"},"content":{"rendered":"<p>API keys, database passwords, and confidential documents are sitting in plain text inside the memory layers of coding agents, and most enterprises have no governance over what gets written there. A focused audit of that memory surfaces the same hidden exposure that opening a memory bank revealed during red-team work: sensitive data that organizations had worked hard to keep out of source control.<\/p>\n<p>The findings come from red-team work on memory-enabled coding agents, where opening the memory bank revealed sensitive data that organizations had worked hard to keep out of source control. Developers feed API keys, credentials, and sensitive documents into these agents, and those agents push much of that information into long-term memory. All of that material now floats around in plain text on developer workstations, in cloud memory services, and in markdown files, undoing a lot of the work that goes into a secure software development lifecycle.<\/p>\n<h2>What is ending up in agent memory?<\/h2>\n<p>Sensitive data developers feed into the agent, including API keys, credentials and documents meant for a single task.<\/p>\n<ul>\n<li>API keys tied to production systems<\/li>\n<li>Database passwords and other credentials<\/li>\n<li>Sensitive documents the developer pasted for a single task<\/li>\n<li>Outputs and notes written into markdown files that are not protected<\/li>\n<\/ul>\n<p>None of this is encrypted at rest in the same way a secrets manager would be, and none of it has the audit trail a secrets manager produces. That gap is the core of the problem.<\/p>\n<h2>How does memory poisoning work in practice?<\/h2>\n<p>Memory poisoning means slipping attacker-controlled content into an agent&#8217;s memory so that future sessions behave the way the attacker wants. The entry points that matter today are plugins, skills, and Model Context Protocol (MCP) integrations. Most people find something that looks valuable and plug it in without doing a careful read-through. The user base skews toward people who have never coded before and are now using coding agents to build something, which means the bar for social engineering is low.<\/p>\n<p>A typical lure looks like a &#8220;too good to be true&#8221; plugin or skill, for example a claimed Claude Code plugin glitch that promises unlimited tokens even on the free plan. The attacker designs the extension to scan through local agent memory, pull out any credentials it finds, and report those keys, tokens, and other sensitive items back to an API endpoint under the attacker&#8217;s control. The extension is the delivery vehicle, the memory is the target, and a trusting user is the bridge between the two.<\/p>\n<h2>What should the first hour of a memory incident look like?<\/h2>\n<p>When an incident involves an agent with memory, the most useful trace in the first hour is the origin of the poisoned memory. Containment decisions depend on knowing where the memory came from: was it planted through an MCP server, returned inside a tool call response, or written by an insider? Each origin points to a different blast radius and a different kill chain.<\/p>\n<p>The bigger lesson is upstream. Most of the regret in a memory incident is not about what failed to be preserved, it is about what was allowed into the memory system in the first place. The same logic that argues for blocking phishing emails before they reach inboxes argues for filtering poisoned memories before they are persisted. That is the design goal behind the OWASP reference project Memory Guard, which focuses on detection and filtering rather than on post-incident forensics.<\/p>\n<h2>Why does access control on agent memory lag behind the rest of security?<\/h2>\n<p>Most agent memory products handle the simple case: an agent session for one user will not leverage memories stored by another user. Where the industry falls short is the harder cases: team-based memory, graduated levels of access, and the policies a security team would expect from a database or an API. The techniques for fine-grained access control on structured data are well understood in application security, database security, and API security, but most agent memory products cannot do those things yet.<\/p>\n<p>That gap matters because enterprise buyers know what they want. They have lived with role-based access control (RBAC), attribute-based access control (ABAC), and other mature models for years, and they expect comparable controls on agent memory. The product market has not caught up.<\/p>\n<h2>What should a CISO check this quarter?<\/h2>\n<p>Run at least an informal audit of the agent memory solutions in the organization. Two findings are likely. First, there is no governance over what is being used as agent memory. Leadership may believe no agent memory is in use, yet developers have plugged in random, unvetted solutions on their local workstations or on a small shared server somewhere. Second, the amount of highly sensitive information sitting in plain text, ready for exfiltration, is much larger than expected: leaked keys, database passwords, and confidential business information, plus more that nobody has inventoried.<\/p>\n<p>The audit&#8217;s value is in spotting the security gap and getting it closed before anyone else finds it.<\/p>\n<h2>FAQ<\/h2>\n<h3>What is stored in coding agent memory?<\/h3>\n<p>Coding agents store a wide range of developer inputs in long-term memory, including API keys, database passwords, credentials, and sensitive documents. That material often ends up in plain text on developer workstations, in cloud memory services, and in markdown files.<\/p>\n<h3>How does memory poisoning target coding agents?<\/h3>\n<p>Attackers plant malicious memories through plugins, skills, and MCP integrations, often using social engineering aimed at newer users. A common lure is a &#8220;too good to be true&#8221; extension that scans agent memory for credentials and reports any keys, tokens, or sensitive items it finds back to the attacker.<\/p>\n<h3>What should a CISO do first about agent memory risk?<\/h3>\n<p>Run an informal audit of every agent memory solution in use across the organization. The audit typically reveals two problems: no governance over what developers have installed, and large amounts of sensitive data sitting in plain text inside agent memory stores.<\/p>\n<h2>SEOScanPro<\/h2>\n<p><a href=\"https:\/\/seoscanpro.ai\/seo-audit-tool\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" data-src=\"https:\/\/seoscanpro.ai\/shots\/site-audit-v4.webp\" alt=\"The SEOScanPro site audit report\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" \/><\/a><\/p>\n<p>SEOScanPro has the site audit tool runs a full technical audit of a site and shows the measured result behind every check. <a href=\"https:\/\/seoscanpro.ai\/seo-audit-tool\" target=\"_blank\" rel=\"noopener\">Open the site audit tool<\/a>.<\/p>\n<p><script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"What is stored in coding agent memory?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Coding agents store a wide range of developer inputs in long-term memory, including API keys, database passwords, credentials, and sensitive documents. That material often ends up in plain text on developer workstations, in cloud memory services, and in markdown files.\"}},{\"@type\":\"Question\",\"name\":\"How does memory poisoning target coding agents?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Attackers plant malicious memories through plugins, skills, and MCP integrations, often using social engineering aimed at newer users. A common lure is a \\\"too good to be true\\\" extension that scans agent memory for credentials and reports any keys, tokens, or sensitive items it finds back to the attacker.\"}},{\"@type\":\"Question\",\"name\":\"What should a CISO do first about agent memory risk?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Run an informal audit of every agent memory solution in use across the organization. The audit typically reveals two problems: no governance over what developers have installed, and large amounts of sensitive data sitting in plain text inside agent memory stores.\"}}]}]}<\/script><\/p>\n<hr style=\"margin:2.5em 0 1em;opacity:.35\" \/>\n<p style=\"font-size:.85em;opacity:.7\">This article summarizes reporting from <a href=\"https:\/\/www.helpnetsecurity.com\/2026\/09\/28\/chris-latimer-vectorize-agent-memory-security\/\" target=\"_blank\" rel=\"nofollow noopener\">helpnetsecurity.com<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Security research finds API keys, credentials, and documents stored in plain text inside coding agent memory, with a call for CISOs to audit agent memory this<\/p>\n","protected":false},"author":1,"featured_media":1861,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"rank_math_title":"Coding agent memory leaks API keys and credentials","rank_math_description":"Security research finds API keys, credentials, and documents stored in plain text inside coding agent memory, with a call for CISOs to audit agent memory this","rank_math_focus_keyword":"coding agent memory","rank_math_canonical_url":"","rank_math_facebook_title":"","rank_math_facebook_description":"","rank_math_twitter_title":"","rank_math_twitter_description":"","rank_math_robots":[],"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1862","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai-news"],"_links":{"self":[{"href":"https:\/\/feedsta.ai\/blog\/wp-json\/wp\/v2\/posts\/1862","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/feedsta.ai\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/feedsta.ai\/blog\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/feedsta.ai\/blog\/wp-json\/wp\/v2\/comments?post=1862"}],"version-history":[{"count":1,"href":"https:\/\/feedsta.ai\/blog\/wp-json\/wp\/v2\/posts\/1862\/revisions"}],"predecessor-version":[{"id":1863,"href":"https:\/\/feedsta.ai\/blog\/wp-json\/wp\/v2\/posts\/1862\/revisions\/1863"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/feedsta.ai\/blog\/wp-json\/wp\/v2\/media\/1861"}],"wp:attachment":[{"href":"https:\/\/feedsta.ai\/blog\/wp-json\/wp\/v2\/media?parent=1862"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/feedsta.ai\/blog\/wp-json\/wp\/v2\/categories?post=1862"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/feedsta.ai\/blog\/wp-json\/wp\/v2\/tags?post=1862"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}