<?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>Elixir - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/tags/elixir/</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, 10 Jul 2026 00:08:28 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/tags/elixir/feed.xml" rel="self" type="application/rss+xml"/><item><title>Tesla Elixir Client Decompression Bomb (CVE-2026-48594)</title><link>https://feed.craftedsignal.io/briefs/2026-07-tesla-decompression-bomb/</link><pubDate>Fri, 10 Jul 2026 00:08:28 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-07-tesla-decompression-bomb/</guid><description>A critical vulnerability, CVE-2026-48594, in the Tesla Elixir HTTP client library allows an attacker to cause a denial of service by serving a specially crafted HTTP response with multiple `content-encoding` headers that, when processed by vulnerable versions (0.6.0 through 1.18.2) of the client using `Tesla.Middleware.DecompressResponse` or `Tesla.Middleware.Compression`, leads to exponential memory expansion and application crashes.</description><content:encoded><![CDATA[<p>A high-severity vulnerability, tracked as CVE-2026-48594, exists in the Tesla Elixir HTTP client library, specifically affecting versions 0.6.0 through 1.18.2. This flaw, dubbed a &quot;decompression bomb,&quot; can be exploited by an attacker who controls a server that a vulnerable Tesla client contacts, or via a redirect. The vulnerability arises when the <code>Tesla.Middleware.DecompressResponse</code> or <code>Tesla.Middleware.Compression</code> middleware component eagerly decompresses HTTP response bodies without any size limits. An attacker can craft a minuscule gzip-encoded payload coupled with multiple <code>content-encoding</code> headers (e.g., <code>gzip, gzip, gzip, gzip</code>), which, upon recursive decompression, expands exponentially into gigabytes of data on the BEAM heap. This excessive memory consumption inevitably leads to the client application crashing or freezing, effectively causing a denial of service. Defenders must ensure that applications utilizing the affected <code>tesla</code> library are patched to version 1.18.3 or later to mitigate this risk.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An attacker gains control of a server or compromises a legitimate server that a victim's Tesla client application is likely to contact.</li>
<li>The attacker configures the server to serve a specially crafted HTTP response.</li>
<li>The crafted response includes a tiny gzip-compressed payload that is designed to expand significantly upon decompression.</li>
<li>Crucially, the response features multiple <code>content-encoding</code> headers, such as <code>gzip, gzip, gzip, gzip</code>, to trigger recursive decompression.</li>
<li>A legitimate application, running an affected <code>tesla</code> library version (0.6.0 to 1.18.2) and configured with <code>Tesla.Middleware.DecompressResponse</code> or <code>Tesla.Middleware.Compression</code>, makes an HTTP request to the attacker-controlled server.</li>
<li>The <code>tesla</code> client receives the malicious HTTP response from the attacker's server.</li>
<li>The <code>decompress_body/2</code> function within the <code>tesla</code> middleware attempts to decompress the response recursively for each <code>content-encoding</code> token, without any output size validation.</li>
<li>This process exponentially inflates the small payload into gigabytes of data within the BEAM heap, exhausting the application's memory resources and causing it to crash or freeze, resulting in a denial of service.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>The impact of CVE-2026-48594 is a denial of service (DoS) for any application utilizing the affected <code>tesla</code> client library (versions 0.6.0 through 1.18.2) with the <code>Tesla.Middleware.DecompressResponse</code> or <code>Tesla.Middleware.Compression</code> middleware. The attacker's objective is to render the targeted application unusable by forcing it to consume all available memory. A successful attack can lead to application downtime, data processing failures, and disruption of critical services, potentially affecting any sector relying on Elixir applications performing HTTP requests with the vulnerable middleware. This vulnerability carries a high severity CVSS v4.0 score of 8.2.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li><strong>Patch CVE-2026-48594</strong> by upgrading the <code>erlang/tesla</code> package to version 1.18.3 or later immediately.</li>
<li>Review applications for the inclusion of <code>Tesla.Middleware.DecompressResponse</code> or <code>Tesla.Middleware.Compression</code> in their Tesla middleware pipeline. If present, ensure they are running patched versions.</li>
<li>Implement application-level monitoring for abnormal and sudden increases in memory consumption by Elixir applications, especially those making outbound HTTP requests, to detect potential exploitation attempts.</li>
</ul>
]]></content:encoded><category domain="severity">medium</category><category domain="type">advisory</category><category>resource-exhaustion</category><category>denial-of-service</category><category>library-vulnerability</category><category>elixir</category></item><item><title>Tesla Elixir HTTP Client Header Leak via Case-Sensitive Redirect Filtering (CVE-2026-48595)</title><link>https://feed.craftedsignal.io/briefs/2026-07-tesla-header-leak/</link><pubDate>Fri, 10 Jul 2026 00:07:45 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-07-tesla-header-leak/</guid><description>A vulnerability in the `Tesla.Middleware.FollowRedirects` component of the `tesla` Elixir HTTP client library allows `Authorization` headers to be leaked during cross-origin redirects due to a case-sensitive comparison, enabling an attacker controlling a redirect destination to receive bearer tokens or other credentials from applications using `tesla` versions 0.6.0 through 1.18.2.</description><content:encoded><![CDATA[<p>A high-severity vulnerability, CVE-2026-48595, has been identified in the <code>tesla</code> Elixir HTTP client library, specifically within its <code>Tesla.Middleware.FollowRedirects</code> component. This flaw impacts versions 0.6.0 up to, but not including, 1.18.3. The middleware is designed to strip sensitive <code>Authorization</code> headers when following cross-origin redirects to prevent credential leakage. However, its internal filter performs a case-sensitive comparison against a lowercase string <code>&quot;authorization&quot;</code>. Because <code>tesla</code> preserves header keys exactly as supplied, applications using the RFC 7235 canonical casing (<code>&quot;Authorization&quot;</code>) bypass this filter entirely. Consequently, if an application sends a request with an <code>Authorization</code> header using canonical casing and is redirected to an attacker-controlled origin, sensitive credentials like bearer tokens can be inadvertently leaked to the attacker. This poses a significant risk to applications relying on <code>tesla</code> for secure HTTP communications.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An attacker establishes control over a web server or service capable of issuing HTTP <code>302</code> redirects to an arbitrary, attacker-controlled domain (e.g., a malicious server, a redirect-open service, or a compromised upstream server).</li>
<li>A victim application, using the <code>tesla</code> Elixir HTTP client library (version 0.6.0 through 1.18.2) with <code>Tesla.Middleware.FollowRedirects</code> enabled, constructs an outbound HTTP request.</li>
<li>The victim application includes an <code>Authorization</code> header with canonical casing (e.g., <code>{&quot;Authorization&quot;, &quot;Bearer &lt;token&gt;&quot;}</code>) for authentication in its request.</li>
<li>The victim application sends its request to an endpoint, which the attacker can influence to issue an HTTP <code>302</code> (or similar redirect status code) pointing to the attacker-controlled domain.</li>
<li>The <code>Tesla.Middleware.FollowRedirects</code> component within the victim application attempts to filter sensitive headers before automatically following the redirect.</li>
<li>Due to a case-sensitive comparison logic (<code>&quot;authorization&quot;</code> vs. <code>&quot;Authorization&quot;</code>), the middleware fails to identify and strip the canonical <code>Authorization</code> header from the outgoing request.</li>
<li>The <code>tesla</code> client follows the redirect and inadvertently includes the sensitive <code>Authorization</code> header, complete with its bearer token or other credentials, in the request to the attacker-controlled domain, leading to credential theft.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>The vulnerability carries a high severity (CVSS v4.0: 8.2). Any application utilizing <code>tesla</code> versions 0.6.0 through 1.18.2 with <code>Tesla.Middleware.FollowRedirects</code> and supplying non-lowercase <code>Authorization</code> headers is at risk. Successful exploitation results in the leakage of sensitive credentials, such as bearer tokens, to an attacker-controlled endpoint. This can lead to unauthorized access to systems or data, session hijacking, and further compromise of the victim's environment, directly impacting the confidentiality and integrity of affected applications and their users.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Prioritize upgrading the <code>tesla</code> Elixir HTTP client library to version 1.18.3 or later immediately to remediate CVE-2026-48595.</li>
<li>If immediate patching is not possible, implement the recommended workaround by normalizing all <code>Authorization</code> header keys to lowercase (e.g., <code>&quot;authorization&quot;</code>) before passing them to <code>tesla</code> via <code>Tesla.put_header/3</code> or <code>Tesla.Middleware.Headers</code>.</li>
<li>Review application code for the usage of <code>Tesla.Middleware.FollowRedirects</code> and how <code>Authorization</code> headers are set to identify potentially vulnerable instances.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>credential-access</category><category>exfiltration</category><category>vulnerability</category><category>elixir</category><category>http-client</category></item><item><title>Tesla HTTP Client Library Vulnerable to Atom Exhaustion Leading to Denial of Service (CVE-2026-48597)</title><link>https://feed.craftedsignal.io/briefs/2026-07-tesla-atom-exhaustion/</link><pubDate>Fri, 10 Jul 2026 00:07:00 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-07-tesla-atom-exhaustion/</guid><description>A high-severity denial-of-service vulnerability (CVE-2026-48597) in the `Tesla.Adapter.Mint` component of the Elixir Tesla HTTP client library, affecting versions 1.3.0 through 1.18.2, allows an unauthenticated attacker to crash the underlying BEAM VM by supplying untrusted URL schemes, leading to atom exhaustion.</description><content:encoded><![CDATA[<p>An unauthenticated attacker can trigger a remote denial-of-service (DoS) condition in applications utilizing the <code>erlang/tesla</code> HTTP client library, specifically when configured with <code>Tesla.Adapter.Mint</code>. This vulnerability, identified as CVE-2026-48597, affects Tesla versions from 1.3.0 up to 1.18.2. The flaw stems from <code>Tesla.Adapter.Mint.open_conn/2</code> passing untrusted URL schemes directly to <code>String.to_atom/1</code> without validation. As BEAM (Erlang Virtual Machine) atoms are permanent and its atom table has a finite capacity of approximately 1,048,576 entries, repeatedly supplying unique, non-standard URL schemes (e.g., <code>atk1://</code>, <code>atk2://</code>) causes the VM to continuously mint new atoms. This eventually exhausts the atom table, leading to an immediate crash of the Elixir/Erlang VM and consequently, the affected application. This attack requires no special privileges beyond the ability to send HTTP requests to a vulnerable application endpoint that processes user-supplied URLs or leverages <code>Tesla.Middleware.FollowRedirects</code>.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An attacker identifies an application using <code>erlang/tesla</code> versions 1.3.0 through 1.18.2 with <code>Tesla.Adapter.Mint</code> configured, and which exposes an endpoint that processes user-supplied URLs (e.g., a webhook relay, link preview service, or SSRF-style proxy) or includes <code>Tesla.Middleware.FollowRedirects</code> in its pipeline.</li>
<li>The attacker sends an HTTP request to the vulnerable application, including a URL with a novel, non-standard scheme (e.g., <code>atk1://attacker.com/path</code>) in a parameter that the application forwards to the Tesla HTTP client.</li>
<li>The <code>Tesla.Adapter.Mint.open_conn/2</code> function receives this untrusted URL and extracts the scheme (e.g., &quot;atk1&quot;).</li>
<li>The extracted scheme is passed directly to <code>String.to_atom/1</code>, which creates and interns a new, permanent atom in the BEAM VM's atom table.</li>
<li>Although the <code>Mint</code> library subsequently rejects the connection attempt due to the unrecognized scheme, the newly created atom persists in the VM's global atom table.</li>
<li>The attacker repeats steps 2-5, sending approximately 1,000,000 requests, each with a distinct and previously unused URL scheme (e.g., <code>atk2://</code>, <code>atk3://</code>, etc.).</li>
<li>Upon reaching the BEAM VM's atom table capacity limit (roughly 1,048,576 entries), the <code>String.to_atom/1</code> call fails, leading to a fatal error that crashes the entire Elixir/Erlang VM.</li>
<li>The application hosting the Tesla client becomes unavailable, resulting in a remote denial-of-service condition.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>This high-severity vulnerability (CVSS v4.0: 8.2) allows an unauthenticated attacker to remotely trigger a complete denial of service for any application using <code>erlang/tesla</code> versions 1.3.0 through 1.18.2 with the <code>Tesla.Adapter.Mint</code> adapter. The attack results in a crash of the underlying BEAM Virtual Machine, making the affected application entirely unavailable. No specific victim count or targeted sectors have been publicly identified, but any Elixir application fitting the criteria that processes untrusted URL input is at risk.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Patch <code>erlang/tesla</code> to version 1.18.3 or later immediately to remediate CVE-2026-48597.</li>
<li>Review any application features that forward untrusted URLs through <code>Tesla.Adapter.Mint</code> and implement robust input validation or allow-listing for URL schemes before passing them to the Tesla client.</li>
<li>If <code>Tesla.Middleware.FollowRedirects</code> is used in conjunction with untrusted inputs, ensure that redirect targets are properly validated and schemes are restricted to <code>http(s)</code> to prevent exploitation via malicious <code>Location</code> headers.</li>
</ul>
]]></content:encoded><category domain="severity">medium</category><category domain="type">advisory</category><category>denial-of-service</category><category>elixir</category><category>erlang</category><category>vulnerability</category><category>web-application</category></item><item><title>Mint HTTP/2 Client Vulnerable to Unbounded CONTINUATION Frame Accumulation (CVE-2026-49754)</title><link>https://feed.craftedsignal.io/briefs/2026-07-mint-http2-continuation-flood/</link><pubDate>Thu, 09 Jul 2026 23:21:55 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-07-mint-http2-continuation-flood/</guid><description>A malicious or compromised HTTP/2 server can exploit CVE-2026-49754 in the Elixir Mint HTTP/2 client by sending an endless chain of CONTINUATION frames without an END_HEADERS flag, leading to unbounded memory accumulation, process exhaustion, and remote unauthenticated denial-of-service.</description><content:encoded><![CDATA[<p>The Elixir Mint HTTP/2 client is vulnerable to a denial-of-service attack (CVE-2026-49754) due to an unbounded accumulation of <code>CONTINUATION</code> header-block fragments. This vulnerability, disclosed by GHSA, allows a malicious or compromised HTTP/2 server to exhaust the client's memory. By streaming an endless sequence of <code>CONTINUATION</code> frames following an initial <code>HEADERS</code> frame that lacks the <code>END_HEADERS</code> flag, an attacker can drive the client's process memory to arbitrary size. This flaw affects Mint versions prior to 1.9.0 and requires no specific client-side configuration, making the default Mint client susceptible. A single connection to an attacker-controlled HTTP/2 endpoint is sufficient to trigger memory exhaustion and ultimately crash the BEAM process, resulting in a remote, unauthenticated denial-of-service.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>A victim application using the Elixir Mint HTTP/2 client establishes an HTTP/2 connection to a server.</li>
<li>The client sends an HTTP/2 <code>HEADERS</code> frame as part of a request to the server.</li>
<li>An attacker-controlled or compromised HTTP/2 server receives the client's request.</li>
<li>The malicious server responds to the client's request by sending a <code>HEADERS</code> frame on stream 1, deliberately setting <code>flags = 0</code> (omitting <code>END_HEADERS</code> and <code>END_STREAM</code>) and including an empty header-block fragment.</li>
<li>The malicious server then continuously streams <code>CONTINUATION</code> frames on stream 1, each with <code>flags = 0</code> and a payload up to the peer-advertised <code>SETTINGS_MAX_FRAME_SIZE</code>, never setting <code>END_HEADERS</code>.</li>
<li>The Mint client's HTTP/2 receive path, specifically the <code>'Elixir.Mint.HTTP2':handle_continuation/3</code> function, continuously appends these <code>CONTINUATION</code> fragments to the <code>conn.headers_being_processed</code> buffer.</li>
<li>Due to the absence of per-stream size caps or <code>CONTINUATION</code> frame-count caps, the client's process memory grows linearly and uncontrollably with the incoming flood of <code>CONTINUATION</code> frames.</li>
<li>The unbounded memory growth eventually leads to memory exhaustion and an Out-Of-Memory (OOM) error, causing the entire Elixir BEAM process running the Mint client to crash, resulting in a denial-of-service.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>The successful exploitation of CVE-2026-49754 results in a remote, unauthenticated denial-of-service against any application utilizing the Elixir Mint HTTP/2 client to connect to an untrusted or attacker-influenced server. A single connection is sufficient for an attacker to drive the client's memory to an arbitrary size, leading to the crash of the underlying BEAM process. This can incapacitate critical services or applications relying on Mint for HTTP/2 communication, causing significant operational disruption and data unavailability. The default Mint configuration is vulnerable, requiring no specific client-side opt-in for exploitation. The vulnerability has been scored CVSS v4.0 8.2 (HIGH).</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade the Elixir Mint library to version 1.9.0 or later to patch CVE-2026-49754.</li>
<li>If immediate patching is not possible, restrict Mint to HTTP/1 for connections to untrusted servers by passing <code>protocols: [:http1]</code> to <code>'Elixir.Mint.HTTP':connect/4</code> to avoid the vulnerable HTTP/2 receive path, as outlined in the workarounds.</li>
</ul>
]]></content:encoded><category domain="severity">medium</category><category domain="type">advisory</category><category>http/2</category><category>denial-of-service</category><category>vulnerability</category><category>elixir</category><category>mint</category></item><item><title>Mint HTTP/2 Client Unbounded Stream Map Growth Denial-of-Service (CVE-2026-48862)</title><link>https://feed.craftedsignal.io/briefs/2026-07-mint-dos/</link><pubDate>Thu, 09 Jul 2026 23:21:09 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-07-mint-dos/</guid><description>A malicious or compromised HTTP/2 server can exploit CVE-2026-48862 in Mint HTTP/2 clients by flooding them with PUSH_PROMISE frames and withholding corresponding HEADERS, leading to unbounded memory consumption and denial-of-service.</description><content:encoded><![CDATA[<p>Elixir-Mint HTTP/2 client versions 0.2.0 through 1.8.x are vulnerable to a remote, unauthenticated denial-of-service attack, identified as CVE-2026-48862. A hostile or compromised HTTP/2 server can leverage this vulnerability by sending an excessive number of <code>PUSH_PROMISE</code> frames without following up with the matching <code>HEADERS</code>. Mint's client, by default, accepts <code>PUSH_PROMISE</code> frames and inserts entries into an internal connection stream map without properly enforcing the <code>max_concurrent_streams</code> limit, causing the map to grow indefinitely. This unbounded growth leads to linear memory consumption within the client process, eventually resulting in an out-of-memory (OOM) crash and denying service. This vulnerability affects any application using Mint as an HTTP/2 client, especially those connecting to untrusted or attacker-influenced servers, such as web backends, webhook delivery systems, and proxy components.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>A malicious or compromised HTTP/2 server establishes a long-lived HTTP/2 connection with a vulnerable Mint client.</li>
<li>The Mint client sends its initial request <code>HEADERS</code> for a specific odd stream ID.</li>
<li>The malicious server captures the client's request stream ID.</li>
<li>The malicious server then sends a rapid flood of <code>PUSH_PROMISE</code> frames, each associated with the client's request stream ID.</li>
<li>Each <code>PUSH_PROMISE</code> frame specifies a new, unique even stream ID and carries a minimal HPACK-encoded header block.</li>
<li>The Mint client processes each <code>PUSH_PROMISE</code> frame, adding a <code>:reserved_remote</code> entry into its <code>conn.streams</code> map for every promised stream ID without consulting <code>max_concurrent_streams</code>.</li>
<li>The malicious server intentionally withholds the corresponding response <code>HEADERS</code> for all the promised stream IDs.</li>
<li>As the <code>conn.streams</code> map grows linearly with each unfulfilled <code>PUSH_PROMISE</code> frame, the Mint client's process consumes an increasing amount of memory until it crashes due to an Out-Of-Memory (OOM) error.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of CVE-2026-48862 results in a remote, unauthenticated denial-of-service against any process utilizing Mint as an HTTP/2 client when connecting to an untrusted or attacker-controlled server. Since HTTP/2 server push is enabled by default in Mint, no specific application opt-in is required for the vulnerability to be exploitable. Affected systems include outbound HTTP/2 clients in web backends, webhook delivery services, data scrapers, federated components, and proxy services that interact with external HTTP/2 origins. An attacker can crash the client process, rendering the service unavailable and potentially requiring manual intervention to restore.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade all affected Mint HTTP/2 clients to version 1.9.0 or newer immediately to mitigate CVE-2026-48862.</li>
<li>For systems that cannot be immediately upgraded, disable HTTP/2 server push on connections to untrusted servers by explicitly passing <code>client_settings: [enable_push: false]</code> to the <code>'Elixir.Mint.HTTP':connect/4</code> function as a workaround for CVE-2026-48862.</li>
</ul>
]]></content:encoded><category domain="severity">medium</category><category domain="type">advisory</category><category>denial-of-service</category><category>http/2</category><category>elixir</category><category>client-side</category><category>vulnerability</category></item></channel></rss>