<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://vulnerability.circl.lu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Tue, 29 Sep 2026 06:22:17 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-34830 — Rack: Rack::Sendfile regex injection via HTTP_X_ACCEL_MAPPING header allows arbitrary file reads through nginx</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-34830</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; rack&lt;/p&gt;
&lt;p&gt;Rack is a modular Ruby web server interface. Prior to versions 2.2.23, 3.1.21, and 3.2.6, Rack::Sendfile#map_accel_path interpolates the value of the X-Accel-Mapping request header directly into a regular expression when rewriting file paths for X-Accel-Redirect. Because the header value is not escaped, an attacker who can supply X-Accel-Mapping to the backend can inject regex metacharacters and control the generated X-Accel-Redirect response header. In deployments using Rack::Sendfile with x-accel-redirect, this can allow an attacker to cause nginx to serve unintended files from configured internal locations. This issue has been patched in versions 2.2.23, 3.1.21, and 3.2.6.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; rack&lt;/p&gt;
&lt;p&gt;Rack is a modular Ruby web server interface. Prior to versions 2.2.23, 3.1.21, and 3.2.6, Rack::Sendfile#map_accel_path interpolates the value of the X-Accel-Mapping request header directly into a regular expression when rewriting file paths for X-Accel-Redirect. Because the header value is not escaped, an attacker who can supply X-Accel-Mapping to the backend can inject regex metacharacters and control the generated X-Accel-Redirect response header. In deployments using Rack::Sendfile with x-accel-redirect, this can allow an attacker to cause nginx to serve unintended files from configured internal locations. This issue has been patched in versions 2.2.23, 3.1.21, and 3.2.6.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-34830</guid>
    </item>
    <item>
      <title>GHSA-qv7j-4883-hwh7 — Rack::Sendfile header-based X-Accel-Mapping regex injection enables unauthorized X-Accel-Redirect</title>
      <link>https://vulnerability.circl.lu/vuln/ghsa-qv7j-4883-hwh7</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; RubyGems: rack&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;`Rack::Sendfile#map_accel_path` interpolates the value of the `X-Accel-Mapping` request header directly into a regular expression when rewriting file paths for `X-Accel-Redirect`. Because the header value is not escaped, an attacker who can supply `X-Accel-Mapping` to the backend can inject regex metacharacters and control the generated `X-Accel-Redirect` response header.&lt;/p&gt;
&lt;p&gt;In deployments using `Rack::Sendfile` with `x-accel-redirect`, this can allow an attacker to cause nginx to serve unintended files from configured internal locations.&lt;/p&gt;
&lt;p&gt;## Details&lt;/p&gt;
&lt;p&gt;`Rack::Sendfile#map_accel_path` processes header-supplied mappings using logic equivalent to:&lt;/p&gt;
&lt;p&gt;```ruby
mapping.split(&amp;#39;,&amp;#39;).map(&amp;amp;:strip).each do |m|
  internal, external = m.split(&amp;#39;=&amp;#39;, 2).map(&amp;amp;:strip)
  new_path = path.sub(/\A#{internal}/i, external)
  return new_path unless path == new_path
end
```&lt;/p&gt;
&lt;p&gt;Here, `internal` comes from the `HTTP_X_ACCEL_MAPPING` request header and is inserted directly into a regular expression without escaping. This gives the header value regex semantics rather than treating it as a literal prefix.&lt;/p&gt;
&lt;p&gt;As a result, an attacker can supply metacharacters such as `.*` or capture groups to alter how the path substitution is performed. For example, a mapping such as:&lt;/p&gt;
&lt;p&gt;```http
X-Accel-Mapping: .*=/protected/secret.txt
```&lt;/p&gt;
&lt;p&gt;causes the entire source path to match and rewrites the redirect target to a clean attacker-chosen internal path.&lt;/p&gt;
&lt;p&gt;This differs from the documented behavior of the header-based mappin…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; RubyGems: rack&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;`Rack::Sendfile#map_accel_path` interpolates the value of the `X-Accel-Mapping` request header directly into a regular expression when rewriting file paths for `X-Accel-Redirect`. Because the header value is not escaped, an attacker who can supply `X-Accel-Mapping` to the backend can inject regex metacharacters and control the generated `X-Accel-Redirect` response header.&lt;/p&gt;
&lt;p&gt;In deployments using `Rack::Sendfile` with `x-accel-redirect`, this can allow an attacker to cause nginx to serve unintended files from configured internal locations.&lt;/p&gt;
&lt;p&gt;## Details&lt;/p&gt;
&lt;p&gt;`Rack::Sendfile#map_accel_path` processes header-supplied mappings using logic equivalent to:&lt;/p&gt;
&lt;p&gt;```ruby
mapping.split(&amp;#39;,&amp;#39;).map(&amp;amp;:strip).each do |m|
  internal, external = m.split(&amp;#39;=&amp;#39;, 2).map(&amp;amp;:strip)
  new_path = path.sub(/\A#{internal}/i, external)
  return new_path unless path == new_path
end
```&lt;/p&gt;
&lt;p&gt;Here, `internal` comes from the `HTTP_X_ACCEL_MAPPING` request header and is inserted directly into a regular expression without escaping. This gives the header value regex semantics rather than treating it as a literal prefix.&lt;/p&gt;
&lt;p&gt;As a result, an attacker can supply metacharacters such as `.*` or capture groups to alter how the path substitution is performed. For example, a mapping such as:&lt;/p&gt;
&lt;p&gt;```http
X-Accel-Mapping: .*=/protected/secret.txt
```&lt;/p&gt;
&lt;p&gt;causes the entire source path to match and rewrites the redirect target to a clean attacker-chosen internal path.&lt;/p&gt;
&lt;p&gt;This differs from the documented behavior of the header-based mappin…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/ghsa-qv7j-4883-hwh7</guid>
    </item>
  </channel>
</rss>
