<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Apm — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/apm/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata. Fed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Mon, 18 May 2026 13:27:19 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/apm/feed.xml" rel="self" type="application/rss+xml"/><item><title>APM CLI Symlink Vulnerability Leads to File Content Disclosure (CVE-2026-45539)</title><link>https://feed.craftedsignal.io/briefs/2026-05-apm-symlink-disclosure/</link><pubDate>Mon, 18 May 2026 13:27:19 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-05-apm-symlink-disclosure/</guid><description>A vulnerability in the `apm-cli` tool allows a malicious APM package to include symlinks that, when installed, can lead to file-content disclosure, by dereferencing symlinks under `.apm/prompts/` and `.apm/agents/` during `apm install`, and copying host-local file contents into the project tree.</description><content:encoded><![CDATA[<p>A vulnerability exists in the <code>apm-cli</code> tool (versions 0.5.4 through 0.12.4) where symbolic links within APM packages are mishandled during the installation process. Specifically, when an APM package containing symlinks under the <code>.apm/prompts/</code> or <code>.apm/agents/</code> directories is installed, the <code>apm install</code> command dereferences these symlinks. This leads to the contents of the linked files being copied into the project&rsquo;s deployment directories. This vulnerability, identified as CVE-2026-45539, allows a malicious APM package author to potentially disclose sensitive file contents from the system running the <code>apm install</code> command if the user running the command has read access to them. The issue stems from the <code>PromptIntegrator</code> and <code>AgentIntegrator</code> classes, which lack proper symlink handling.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>Attacker creates a malicious APM package.</li>
<li>The package includes a symbolic link within the <code>.apm/agents/</code> or <code>.apm/prompts/</code> directory. The symlink points to a sensitive file on the victim&rsquo;s system (e.g., <code>/etc/shadow</code> or <code>/proc/self/environ</code>).</li>
<li>The attacker publishes this malicious package to a repository or otherwise distributes it to victims.</li>
<li>Victim adds the malicious package as a dependency in their <code>apm.yml</code> file.</li>
<li>Victim runs the <code>apm install</code> command.</li>
<li>The <code>apm install</code> command clones the package and, due to vulnerable code in <code>PromptIntegrator</code> or <code>AgentIntegrator</code>, dereferences the symbolic link.</li>
<li>The content of the file pointed to by the symlink is copied into the victim project&rsquo;s deployment directories (e.g., <code>.github/</code>, <code>.claude/</code>).</li>
<li>The attacker gains access to the disclosed file content, potentially leading to credential theft or other unauthorized access.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of this vulnerability (CVE-2026-45539) leads to arbitrary file content disclosure. An attacker can craft a malicious APM package to read and exfiltrate the content of any file readable by the user running the <code>apm install</code> command. The observed result is that the files in the deploy directories will contain the content of the linked file. This could include sensitive information like environment variables, configuration files, or even credentials. This allows the attacker to perform lateral movement or privilege escalation within the victim&rsquo;s environment.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Apply the recommended fix provided in the advisory by routing affected finders through the existing safe helper (<code>BaseIntegrator.find_files_by_glob()</code>) to mitigate CVE-2026-45539.</li>
<li>Deploy the Sigma rule &ldquo;Detect APM CLI Installation with Suspicious Symlink Targets&rdquo; to identify attempts to exploit this vulnerability via <code>process_creation</code> logs.</li>
<li>Implement the optional defense-in-depth measures suggested in the advisory, such as raising an exception on <code>source.is_symlink()</code> within <code>copy_prompt</code>, <code>copy_agent</code>, <code>_write_codex_agent</code>, and <code>_write_windsurf_agent_skill</code> functions.</li>
<li>Treat any symlink under a dependency&rsquo;s <code>.apm/</code> tree as a security finding during scanning.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>symlink</category><category>file-disclosure</category><category>apm-cli</category><category>dependency-confusion</category></item></channel></rss>