<?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>Wed, 07 Oct 2026 14:10:09 +0000</lastBuildDate>
    <item>
      <title>GHSA-f4v5-65jj-pcr2 — Eclipse Jetty: Cross-Request Leakage for trailers on HTTP/1.1 keep-alive connections</title>
      <link>https://vulnerability.circl.lu/vuln/ghsa-f4v5-65jj-pcr2</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Maven: org.eclipse.jetty:jetty-server&lt;/p&gt;
&lt;p&gt;### Description&lt;/p&gt;
&lt;p&gt;&amp;gt; FINDING — MEDIUM (HTTP/1.1 keep-alive connections with trailers)
&amp;gt; HttpConnection._trailers Cross-Request Leakage (Never Reset Between Requests)
&amp;gt; 
&amp;gt; Location:
&amp;gt;   jetty-core/jetty-server/src/main/java/org/eclipse/jetty/server/internal/
&amp;gt;   HttpConnection.java:107, 1157-1161, 1170
&amp;gt; 
&amp;gt; Detail:
&amp;gt;   _trailers (line 107) is a connection-scoped HttpFields.Mutable field.
&amp;gt;   parsedTrailer() (line 1157) populates it when request N carries HTTP trailers.
&amp;gt;   messageComplete() (line 1170) checks &amp;#34;if (_trailers != null)&amp;#34; — evaluates true
&amp;gt;   from request N&amp;#39;s data — and stamps it onto request N+1.
&amp;gt; 
&amp;gt;   Grep confirms: ZERO occurrences of &amp;#34;_trailers = null&amp;#34; in entire HttpConnection.java.
&amp;gt; 
&amp;gt;   Scenario:
&amp;gt;     Request N:   POST /upload (trailers: X-Checksum: abc123)
&amp;gt;     Request N+1: GET  /data   (no trailers)
&amp;gt;     app: request.getTrailers() on N+1 → returns {X-Checksum: abc123} ← STALE
&amp;gt; 
&amp;gt;   Application logic branching on getTrailers() != null produces incorrect behavior.
&amp;gt;   Not cross-connection (same keep-alive connection only).
&amp;gt; 
&amp;gt;   More dangerous scenario: TOCTOU — trailer passes check, target swapped before use.&lt;/p&gt;
&lt;p&gt;### Workarounds
Do not rely on HTTP request trailers for security-sensitive logic, or disable persistent connections by closing the connection after each HTTP/1.1 request.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Maven: org.eclipse.jetty:jetty-server&lt;/p&gt;
&lt;p&gt;### Description&lt;/p&gt;
&lt;p&gt;&amp;gt; FINDING — MEDIUM (HTTP/1.1 keep-alive connections with trailers)
&amp;gt; HttpConnection._trailers Cross-Request Leakage (Never Reset Between Requests)
&amp;gt; 
&amp;gt; Location:
&amp;gt;   jetty-core/jetty-server/src/main/java/org/eclipse/jetty/server/internal/
&amp;gt;   HttpConnection.java:107, 1157-1161, 1170
&amp;gt; 
&amp;gt; Detail:
&amp;gt;   _trailers (line 107) is a connection-scoped HttpFields.Mutable field.
&amp;gt;   parsedTrailer() (line 1157) populates it when request N carries HTTP trailers.
&amp;gt;   messageComplete() (line 1170) checks &amp;#34;if (_trailers != null)&amp;#34; — evaluates true
&amp;gt;   from request N&amp;#39;s data — and stamps it onto request N+1.
&amp;gt; 
&amp;gt;   Grep confirms: ZERO occurrences of &amp;#34;_trailers = null&amp;#34; in entire HttpConnection.java.
&amp;gt; 
&amp;gt;   Scenario:
&amp;gt;     Request N:   POST /upload (trailers: X-Checksum: abc123)
&amp;gt;     Request N+1: GET  /data   (no trailers)
&amp;gt;     app: request.getTrailers() on N+1 → returns {X-Checksum: abc123} ← STALE
&amp;gt; 
&amp;gt;   Application logic branching on getTrailers() != null produces incorrect behavior.
&amp;gt;   Not cross-connection (same keep-alive connection only).
&amp;gt; 
&amp;gt;   More dangerous scenario: TOCTOU — trailer passes check, target swapped before use.&lt;/p&gt;
&lt;p&gt;### Workarounds
Do not rely on HTTP request trailers for security-sensitive logic, or disable persistent connections by closing the connection after each HTTP/1.1 request.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/ghsa-f4v5-65jj-pcr2</guid>
    </item>
  </channel>
</rss>
