<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://cve.radiocsirt.org/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-10-07T13:13:05.133572+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>csirt@opendfir.org</email>
  </author>
  <link href="https://cve.radiocsirt.org" rel="alternate"/>
  <generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator>
  <subtitle>Contains only the most 10 recent entries.</subtitle>
  <entry>
    <id>https://cve.radiocsirt.org/vuln/euvd-2026-322091</id>
    <title>EUVD-2026-322091</title>
    <updated>2026-10-07T13:13:05.180739+00:00</updated>
    <content>EUVD-2026-322091</content>
    <link href="https://cve.radiocsirt.org/vuln/euvd-2026-322091"/>
  </entry>
  <entry>
    <id>https://cve.radiocsirt.org/vuln/fkie_cve-2026-47066</id>
    <title>fkie_cve-2026-47066</title>
    <updated>2026-10-07T13:13:05.180786+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p>Loop with Unreachable Exit Condition ('Infinite Loop') vulnerability in benoitc hackney allows Excessive Allocation. The Alt-Svc response header parser in src/hackney_altsvc.erl does not guarantee forward progress. When parse_token/2 receives a non-token, non-whitespace, non-comma byte (e.g. !, @, =, ;), it returns the input unchanged. skip_comma/1 also returns the buffer unchanged when the first byte is not a comma. parse_entries/2 then recurses with identical data, creating a tight infinite tail-recursive loop that pins a scheduler at 100% CPU. The calling process never returns.</p>
<p>The entry point parse_and_cache/3 is called synchronously in the connection process on every HTTP response. A single-byte Alt-Svc: ! response header is sufficient to trigger the hang; the header is fully controlled by any HTTP origin the client connects to.</p>
<p>This issue affects hackney: from 2.0.0-beta.1 before 4.0.1.</p></div>
    </content>
    <link href="https://cve.radiocsirt.org/vuln/fkie_cve-2026-47066"/>
  </entry>
  <entry>
    <id>https://cve.radiocsirt.org/vuln/ghsa-6cp8-v795-jr2j</id>
    <title>GHSA-6cp8-v795-jr2j — Hackney has an infinite loop on non-token byte at start of an Alt-Svc entry</title>
    <updated>2026-10-07T13:13:05.180832+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> Hex: hackney</p>
<p>### Summary</p>
<p>[CVE-2026-47066](https://nvd.nist.gov/vuln/detail/CVE-2026-47066) is an infinite loop (CWE-835) in hackney's Alt-Svc response header parser (`src/hackney_altsvc.erl`). When an HTTP server returns an `Alt-Svc` header whose value begins with a non-token byte (e.g. `!`, `@`, `=`, `;`), the parser enters a tight tail-recursive loop that pins an Erlang scheduler at 100% CPU and permanently hangs the calling connection process. Because the parser is invoked synchronously on every HTTP response, any attacker-controlled origin can trigger the hang with a single-byte header value.</p>
<p>### Details</p>
<p>**1. Parser dispatch**</p>
<p>`parse_and_cache/3` is called inside the hackney connection process on each HTTP response. It collects all `Alt-Svc` header values via `collect_altsvc_headers/1`, concatenates them, and passes the result to `parse/1`, which calls `parse_entries(Header, [])`.</p>
<p>**2. Failed token consumption**</p>
<p>`parse_entries/2` → `parse_entry/1` → `parse_protocol/1` → `parse_token(Data, &lt;&lt;&gt;&gt;)`. The function `parse_token/2` pattern-matches leading bytes: alphanumeric, `-`, `_`, whitespace, and comma all have explicit clauses. Any other byte (e.g. `!`) falls through to the catch-all:</p>
<p>```erlang
parse_token(Rest, &lt;&lt;&gt;&gt;) -&gt; {undefined, Rest}.
```</p>
<p>This returns the *input unchanged* — no byte is consumed.</p>
<p>**3. No-progress loop**</p>
<p>`parse_entry` propagates `{undefined, Rest}` back to `parse_entries/2`, which calls `skip_comma(Rest)`. Because the first byte is not `,`, `skip_comma` a…</p></div>
    </content>
    <link href="https://cve.radiocsirt.org/vuln/ghsa-6cp8-v795-jr2j"/>
  </entry>
</feed>
