<?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>Dadrus — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/vendors/dadrus/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata — refreshed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Wed, 03 Jan 2024 12:00:00 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/vendors/dadrus/feed.xml" rel="self" type="application/rss+xml"/><item><title>Heimdall Authorization Bypass via Case-Sensitive URL-Encoded Slash Handling</title><link>https://feed.craftedsignal.io/briefs/2024-01-03-heimdall-url-encoding/</link><pubDate>Wed, 03 Jan 2024 12:00:00 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2024-01-03-heimdall-url-encoding/</guid><description>Heimdall versions before 0.17.14 are vulnerable to inconsistent path interpretation due to case-sensitive handling of URL-encoded slashes; when `allow_encoded_slashes` is set to `off` (the default), the lowercase `%2f` is not recognized, potentially leading to authorization bypass if the default rule is overly permissive and the upstream service interprets `%2f` as a path separator.</description><content:encoded><![CDATA[<p>Heimdall, a cloud-native access management proxy, is susceptible to an authorization bypass vulnerability due to its case-sensitive handling of URL-encoded slashes. Specifically, versions prior to 0.17.14 fail to properly process lowercase URL-encoded forward slashes (<code>%2f</code>) when the <code>allow_encoded_slashes</code> option is disabled, which is the default configuration. This discrepancy arises because, while percent-encoding should be case-insensitive, Heimdall only recognizes the uppercase <code>%2F</code>. This inconsistency can be exploited if an attacker crafts requests with lowercase encoded slashes that Heimdall doesn&rsquo;t normalize, while upstream services do. This can result in the application of an unintended default rule (if configured permissively), leading to unauthorized access to protected resources. The vulnerability is mitigated by ensuring secure default configurations or proper input validation.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>The attacker identifies a Heimdall instance enforcing access control policies.</li>
<li>The attacker crafts a malicious HTTP request targeting a protected resource, such as <code>/admin/secret</code>.</li>
<li>The attacker replaces the forward slash in the request path with a lowercase URL-encoded slash (<code>%2f</code>), resulting in a request like <code>/admin%2fsecret</code>.</li>
<li>The request reaches the Heimdall instance. Due to the case-sensitive handling of URL-encoded slashes, Heimdall does not normalize the <code>%2f</code>.</li>
<li>Heimdall fails to match the request to the intended access control rule (e.g., a rule matching <code>/admin/**</code>).</li>
<li>Heimdall executes the default rule, which, if misconfigured to be overly permissive (allowing anonymous access), grants access.</li>
<li>The request is forwarded to the upstream service.</li>
<li>The upstream service interprets <code>%2f</code> as a forward slash, effectively processing the request as <code>/admin/secret</code>, granting the attacker unauthorized access to the protected resource.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of this vulnerability allows an attacker to bypass intended access control policies, potentially leading to unauthorized access to sensitive data, modification of restricted resources, or invocation of privileged functionality. Depending on the exposed functionality and the configuration of the upstream service, this could also lead to privilege escalation. The number of victims and sectors targeted depend heavily on the deployment and configuration of Heimdall instances.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade to Heimdall version 0.17.14 or later to address the case-sensitive handling of URL-encoded slashes.</li>
<li>Avoid using the <code>--insecure</code> or <code>--insecure-skip-secure-default-rule-enforcement</code> flags during Heimdall configuration, as these flags weaken security posture.</li>
<li>Configure the default rule in Heimdall to implement a &ldquo;deny by default&rdquo; policy to minimize the risk of unintended access.</li>
<li>Implement input validation at layers in front of Heimdall (e.g., in proxies like Traefik) to reject HTTP paths containing encoded slashes, providing an additional layer of defense.</li>
<li>If using JWTs, include the ID of the rule expected to be executed and verify that value in the project&rsquo;s service.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>heimdall</category><category>authorization-bypass</category><category>url-encoding</category></item><item><title>Heimdall Host Matching Case-Sensitivity Vulnerability</title><link>https://feed.craftedsignal.io/briefs/2024-01-02-heimdall-case-sensitivity/</link><pubDate>Tue, 02 Jan 2024 12:00:00 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2024-01-02-heimdall-case-sensitivity/</guid><description>Heimdall performs case-sensitive host matching, which can lead to policy bypass because HTTP hostnames are case-insensitive, potentially leading to unauthorized access, data modification, or privilege escalation if the request host is part of the rule.</description><content:encoded><![CDATA[<p>Heimdall, a Go-based access management system, is susceptible to a case-sensitivity vulnerability in its host matching mechanism. HTTP hostnames are case-insensitive, but Heimdall performs host matching in a case-sensitive manner. Discovered and reported in April 2026, this discrepancy can result in Heimdall failing to match a rule for a request host that differs only in letter casing. Version 0.16.0 and later enforce secure defaults and refuse to start with an &ldquo;allow all&rdquo; configuration unless explicitly disabled using flags like <code>--insecure-skip-secure-default-rule-enforcement</code> or <code>--insecure</code>. The vulnerability affects Heimdall versions prior to 0.17.14 and can be exploited if rule matching relies on the request host, potentially leading to unintended access control bypass.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>The attacker identifies a Heimdall instance with host-based access control rules.</li>
<li>The attacker identifies a specific rule where the host is used for access control (e.g., <code>admin.example.com</code>).</li>
<li>The attacker crafts an HTTP request with a <code>Host</code> header that differs only in casing (e.g., <code>Admin.Example.Com</code>).</li>
<li>Heimdall fails to match the intended rule due to the case-sensitive comparison.</li>
<li>If no default rule is configured, Heimdall returns a &ldquo;404 Not Found&rdquo; error.</li>
<li>If a permissive default rule is configured (e.g., allowing anonymous access, which is discouraged since v0.16.0), Heimdall executes this default rule.</li>
<li>The attacker gains unauthorized access to resources or functionality that should be protected by the intended rule.</li>
<li>The attacker exploits the gained access to modify data, invoke functionality, or escalate privileges depending on the exposed functionality.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Bypassing access control policies enforced by Heimdall can lead to unauthorized access to sensitive data, modification of critical information, or invocation of restricted functionality. Depending on the exposed functionality, this could also lead to privilege escalation. The severity of the impact depends heavily on the misconfiguration of Heimdall&rsquo;s rules, particularly the presence of overly permissive default rules. Successful exploitation can compromise the confidentiality, integrity, and availability of the protected application or service.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Normalize request hosts to lowercase in layers in front of Heimdall to mitigate the case sensitivity issue.</li>
<li>Avoid configuring permissive default rules. Remove or disable the <code>--insecure</code> or <code>--insecure-skip-secure-default-rule-enforcement</code> flags.</li>
<li>When using the <code>regex</code> type for host matching, define expressions in a case-insensitive manner (e.g., <code>(?i)^admin\.example\.com$</code>).</li>
<li>Upgrade to Heimdall version 0.17.14 or later to patch the vulnerability directly.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>defense-evasion</category><category>policy-bypass</category><category>access-control</category></item><item><title>Heimdall Authorization Bypass via Path Normalization Mismatch</title><link>https://feed.craftedsignal.io/briefs/2024-01-02-heimdall-auth-bypass/</link><pubDate>Tue, 02 Jan 2024 12:00:00 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2024-01-02-heimdall-auth-bypass/</guid><description>Heimdall is vulnerable to an authorization bypass due to a path normalization mismatch between Heimdall and downstream components, potentially leading to unauthorized access and privilege escalation.</description><content:encoded><![CDATA[<p>Heimdall, a cloud-native security proxy, is susceptible to an authorization bypass vulnerability. This issue arises from a discrepancy in how Heimdall handles request paths compared to downstream components. Specifically, Heimdall performs rule matching on the raw, non-normalized request path, while downstream components might normalize dot-segments (e.g., <code>/user/../admin</code>) according to RFC 3986. This can lead to Heimdall authorizing a request based on the raw path, whereas the downstream service processes a different, normalized path, potentially bypassing intended access controls. The vulnerability affects Heimdall versions prior to 0.17.14. Exploitation is possible when using wildcards in rule matching without further constraints. This could allow attackers to access restricted resources or functionalities.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>Attacker crafts a malicious HTTP request with a path containing dot-segments (e.g., <code>/public/../user/resource</code>).</li>
<li>The request is sent to the Heimdall proxy.</li>
<li>Heimdall performs rule matching on the raw, non-normalized path (<code>/public/../user/resource</code>).</li>
<li>Heimdall incorrectly matches the request to a less restrictive rule, such as a rule for <code>/public/**</code>, due to the initial <code>/public</code> segment.</li>
<li>Heimdall authorizes the request based on the matched rule, potentially allowing anonymous access.</li>
<li>The request is forwarded to the downstream service.</li>
<li>The downstream service normalizes the request path to <code>/user/resource</code>.</li>
<li>The downstream service processes the request as <code>/user/resource</code>, bypassing the intended access controls for that resource, possibly leading to data access or privilege escalation.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of this vulnerability allows attackers to bypass access control policies enforced by Heimdall. This can lead to unauthorized access to sensitive data, modification of restricted data, invocation of privileged functionality without proper authentication or authorization, and in certain configurations, escalation of privileges. The number of potential victims depends on the deployment and configuration of Heimdall within affected environments.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Apply the available patch to upgrade Heimdall to version 0.17.14 or later to remediate the vulnerability.</li>
<li>Implement HTTP path normalization or rejection of HTTP paths containing relative path expressions in layers in front of Heimdall, as suggested in the advisory.</li>
<li>Deploy the Sigma rule provided below to detect suspicious HTTP requests containing dot-segments (..) in the request path.</li>
<li>Configure your proxies (e.g., Envoy) to normalize paths, as described in the advisory.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>authorization-bypass</category><category>path-normalization</category><category>cloud</category></item></channel></rss>