<?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://cve.radiocsirt.org</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, 06 Oct 2026 19:18:57 +0000</lastBuildDate>
    <item>
      <title>CVE-2025-59152 — X-Forwarded-For Header Spoofing Bypasses Litestar Rate Limiting</title>
      <link>https://cve.radiocsirt.org/vuln/cve-2025-59152</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; litestar-org litestar&lt;/p&gt;
&lt;p&gt;Litestar is an Asynchronous Server Gateway Interface (ASGI) framework. In version 2.17.0, rate limits can be completely bypassed by manipulating the X-Forwarded-For header. This renders IP-based rate limiting ineffective against determined attackers. Litestar&amp;#39;s RateLimitMiddleware uses `cache_key_from_request()` to generate cache keys for rate limiting. When an X-Forwarded-For header is present, the middleware trusts it unconditionally and uses its value as part of the client identifier. Since clients can set arbitrary X-Forwarded-For values, each different spoofed IP creates a separate rate limit bucket. An attacker can rotate through different header values to avoid hitting any single bucket&amp;#39;s limit. This affects any Litestar application using RateLimitMiddleware with default settings, which likely includes most applications that implement rate limiting. Version 2.18.0 contains a patch for the vulnerability.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; litestar-org litestar&lt;/p&gt;
&lt;p&gt;Litestar is an Asynchronous Server Gateway Interface (ASGI) framework. In version 2.17.0, rate limits can be completely bypassed by manipulating the X-Forwarded-For header. This renders IP-based rate limiting ineffective against determined attackers. Litestar&amp;#39;s RateLimitMiddleware uses `cache_key_from_request()` to generate cache keys for rate limiting. When an X-Forwarded-For header is present, the middleware trusts it unconditionally and uses its value as part of the client identifier. Since clients can set arbitrary X-Forwarded-For values, each different spoofed IP creates a separate rate limit bucket. An attacker can rotate through different header values to avoid hitting any single bucket&amp;#39;s limit. This affects any Litestar application using RateLimitMiddleware with default settings, which likely includes most applications that implement rate limiting. Version 2.18.0 contains a patch for the vulnerability.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/cve-2025-59152</guid>
    </item>
    <item>
      <title>PYSEC-2026-1553 — Litestar X-Forwarded-For Header Spoofing Vulnerability Enables Rate Limit Evasion</title>
      <link>https://cve.radiocsirt.org/vuln/pysec-2026-1553</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: litestar&lt;/p&gt;
&lt;p&gt;While testing Litestar&amp;#39;s RateLimitMiddleware, I discovered that rate limits can be completely bypassed by manipulating the X-Forwarded-For header. This renders IP-based rate limiting ineffective against determined attackers.&lt;/p&gt;
&lt;p&gt;## The Problem&lt;/p&gt;
&lt;p&gt;Litestar&amp;#39;s RateLimitMiddleware uses `cache_key_from_request()` to generate cache keys for rate limiting. When an X-Forwarded-For header is present, the middleware trusts it unconditionally and uses its value as part of the client identifier.&lt;/p&gt;
&lt;p&gt;Since clients can set arbitrary X-Forwarded-For values, each different spoofed IP creates a separate rate limit bucket. An attacker can rotate through different header values to avoid hitting any single bucket&amp;#39;s limit.&lt;/p&gt;
&lt;p&gt;Looking at the relevant code in `litestar/middleware/rate_limit.py` around [line 127](https://github.com/litestar-org/litestar/blob/26f20ac6c52de2b4bf81161f7560c8bb4af6f382/litestar/middleware/rate_limit.py#L127), there&amp;#39;s no validation of proxy headers or configuration for trusted proxies.&lt;/p&gt;
&lt;p&gt;## Reproduction Steps&lt;/p&gt;
&lt;p&gt;Here&amp;#39;s a minimal test case&lt;/p&gt;
&lt;p&gt;```python
from litestar import Litestar, get
from litestar.middleware.rate_limit import RateLimitConfig
import uvicorn&lt;/p&gt;
&lt;p&gt;@get(&amp;#34;/api/data&amp;#34;)
def get_data() -&amp;gt; dict:
    return {&amp;#34;message&amp;#34;: &amp;#34;sensitive data&amp;#34;}&lt;/p&gt;
&lt;p&gt;rate_config = RateLimitConfig(rate_limit=(&amp;#34;minute&amp;#34;, 2))&lt;/p&gt;
&lt;p&gt;app = Litestar(
    route_handlers=[get_data],
    middleware=[rate_config.middleware]
)&lt;/p&gt;
&lt;p&gt;if __name__ == &amp;#34;__main__&amp;#34;:
    uvicorn.run(app, host=&amp;#34;0.0.0.0&amp;#34;, port=8000)
```&lt;/p&gt;
&lt;p&gt;Testing the bypass…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: litestar&lt;/p&gt;
&lt;p&gt;While testing Litestar&amp;#39;s RateLimitMiddleware, I discovered that rate limits can be completely bypassed by manipulating the X-Forwarded-For header. This renders IP-based rate limiting ineffective against determined attackers.&lt;/p&gt;
&lt;p&gt;## The Problem&lt;/p&gt;
&lt;p&gt;Litestar&amp;#39;s RateLimitMiddleware uses `cache_key_from_request()` to generate cache keys for rate limiting. When an X-Forwarded-For header is present, the middleware trusts it unconditionally and uses its value as part of the client identifier.&lt;/p&gt;
&lt;p&gt;Since clients can set arbitrary X-Forwarded-For values, each different spoofed IP creates a separate rate limit bucket. An attacker can rotate through different header values to avoid hitting any single bucket&amp;#39;s limit.&lt;/p&gt;
&lt;p&gt;Looking at the relevant code in `litestar/middleware/rate_limit.py` around [line 127](https://github.com/litestar-org/litestar/blob/26f20ac6c52de2b4bf81161f7560c8bb4af6f382/litestar/middleware/rate_limit.py#L127), there&amp;#39;s no validation of proxy headers or configuration for trusted proxies.&lt;/p&gt;
&lt;p&gt;## Reproduction Steps&lt;/p&gt;
&lt;p&gt;Here&amp;#39;s a minimal test case&lt;/p&gt;
&lt;p&gt;```python
from litestar import Litestar, get
from litestar.middleware.rate_limit import RateLimitConfig
import uvicorn&lt;/p&gt;
&lt;p&gt;@get(&amp;#34;/api/data&amp;#34;)
def get_data() -&amp;gt; dict:
    return {&amp;#34;message&amp;#34;: &amp;#34;sensitive data&amp;#34;}&lt;/p&gt;
&lt;p&gt;rate_config = RateLimitConfig(rate_limit=(&amp;#34;minute&amp;#34;, 2))&lt;/p&gt;
&lt;p&gt;app = Litestar(
    route_handlers=[get_data],
    middleware=[rate_config.middleware]
)&lt;/p&gt;
&lt;p&gt;if __name__ == &amp;#34;__main__&amp;#34;:
    uvicorn.run(app, host=&amp;#34;0.0.0.0&amp;#34;, port=8000)
```&lt;/p&gt;
&lt;p&gt;Testing the bypass…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/pysec-2026-1553</guid>
    </item>
  </channel>
</rss>
