<?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/" xmlns:webfeeds="http://webfeeds.org/rss/1.0"><channel><title>Ml-Logger (&lt;= Commit Acf255bade5be6ad88d90735c8367b28cbe3a743) - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/ml-logger--commit-acf255bade5be6ad88d90735c8367b28cbe3a743/</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>Fri, 16 Oct 2026 19:44:16 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/ml-logger--commit-acf255bade5be6ad88d90735c8367b28cbe3a743/feed.xml" rel="self" type="application/rss+xml"/><image><url>https://feed.craftedsignal.io/favicon-32x32.png</url><title>CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/</link><width>32</width><height>32</height></image><webfeeds:icon>https://feed.craftedsignal.io/favicon.svg</webfeeds:icon><item><title>Unauthenticated Arbitrary File Read in ml-logger via CVE-2025-10952</title><link>https://feed.craftedsignal.io/briefs/2026-10-ml-logger-afr/</link><pubDate>Fri, 16 Oct 2026 19:44:16 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-10-ml-logger-afr/</guid><description>An unauthenticated arbitrary file read vulnerability (CVE-2025-10952) in the ml-logger stream_handler allows remote attackers to enumerate and exfiltrate sensitive files from the host filesystem.</description><content:encoded><![CDATA[<p>CVE-2025-10952 is a critical vulnerability residing in the <code>ml-logger</code> Python library, specifically within the <code>stream_handler</code> component of <code>ml_logger/server.py</code>. The flaw stems from improper input validation where the <code>key</code> parameter, provided via JSON request body, is passed directly to file read operations without adequate sanitization or path restriction checks. An unauthenticated attacker can exploit this by sending specially crafted paths, such as those utilizing double leading slashes (e.g., <code>//root/.ssh/id_rsa</code>), to bypass intended directory constraints. This enables the attacker to read arbitrary files accessible by the system user running the <code>ml-logger</code> process. A functional proof-of-concept exploit is publicly available, enabling unauthenticated file enumeration via the <code>/glob</code> endpoint followed by arbitrary file exfiltration through the <code>/stream</code> endpoint.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>Attacker identifies a target exposing the <code>ml-logger</code> API, typically on port 8081.</li>
<li>Attacker sends a POST request to the <code>/glob</code> endpoint to enumerate the filesystem and identify sensitive files.</li>
<li>Attacker parses the JSON response from the <code>/glob</code> endpoint to locate high-value targets like SSH keys, configuration files, or credentials.</li>
<li>Attacker constructs a malicious request to the <code>/stream</code> endpoint, embedding the targeted file path into the <code>key</code> JSON field.</li>
<li>Attacker prepends double slashes (e.g., <code>//etc/shadow</code>) to the file path to bypass the application's path normalization logic.</li>
<li>The <code>ml-logger</code> service retrieves the requested file from the disk and transmits the content to the attacker in the response body.</li>
<li>Attacker saves the exfiltrated content, such as a private SSH key, to their local machine.</li>
<li>Attacker uses the stolen credentials to establish persistent access or move laterally within the victim environment.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation allows unauthenticated remote attackers to read sensitive files from the underlying host filesystem. This poses a severe risk of credential theft, including the acquisition of SSH private keys, environment variables, and configuration files containing secrets. If the <code>ml-logger</code> service is running with elevated privileges, the impact extends to full system compromise. The vulnerability affects all versions of <code>geyang/ml-logger</code> up to commit <code>acf255bade5be6ad88d90735c8367b28cbe3a743</code>.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Implement an authentication-enabled reverse proxy or API gateway in front of all <code>ml-logger</code> instances to restrict access to trusted sources.</li>
<li>Deploy the Sigma rule below to detect path traversal attempts targeting the <code>ml-logger</code> endpoints.</li>
<li>Restrict the operating system user account running <code>ml-logger</code> to the minimum necessary permissions to prevent access to sensitive files like <code>~/.ssh/</code> or <code>/etc/shadow</code>.</li>
<li>Upgrade to a patched version of <code>ml-logger</code> as soon as the vendor provides a formal release addressing the vulnerability.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>arbitrary-file-read</category><category>path-traversal</category><category>webserver</category></item></channel></rss>