<?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>Sat, 24 Oct 2026 23:42:31 +0000</lastBuildDate>
    <item>
      <title>GHSA-663m-7x7m-g4fw — Sliver: Unauthenticated Memory Exhaustion Denial of Service in Sliver HTTP(S) Listener PNG Decoder</title>
      <link>https://db.gcve.eu/vuln/ghsa-663m-7x7m-g4fw</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Go: github.com/BishopFox/sliver&lt;/p&gt;
&lt;p&gt;### Summary
Sliver is vulnerable to a Denial of Service (DOS) attack because there is no cap in the size of a PNG file that can be sent to an open http listener and there is a small amount of possible nonces. This vulnerability lets the attacker completely max out the RAM of the machine running server, leading to a complete loss of availability. 
### Details&lt;/p&gt;
&lt;p&gt;The first vulnerability is that the amount of possible nonces is 65,537. This is found in `server/encoders/encoders.go`
```go
const (
    EncoderModulus = uint64(65537)
)
```&lt;/p&gt;
&lt;p&gt;The second vulnerability is there is no limit to how many pixels the PNG encoder will accept from an unauthenticated user. This is found in:
`util/encoders/images.go`&lt;/p&gt;
&lt;p&gt;```go
func (p PNGEncoder) Encode(data []byte) ([]byte, error) {
    img := imageFromBytes(data)
    var buf bytes.Buffer
    encoder.Encode(&amp;amp;buf, img)
    return buf.Bytes(), nil
}&lt;/p&gt;
&lt;p&gt;func (p PNGEncoder) Decode(data []byte) ([]byte, error) {
    buf := bytes.NewBuffer(data)
    img, err := png.Decode(buf)
    if err != nil { return nil, err }
    return bytesFromImage(img), nil
}
```&lt;/p&gt;
&lt;p&gt;### PoC
The first step to reproduce this vulnerability is building a docker container to make sure no harm is caused.&lt;/p&gt;
&lt;p&gt;Get the latest version of Sliver (Currently 1.7.3)
```bash
git clone https://github.com/BishopFox/sliver.git
```&lt;/p&gt;
&lt;p&gt;Build the Docker container:
```bash
cd sliver
docker build -t sliver-test:local -f Dockerfile .
```&lt;/p&gt;
&lt;p&gt;Run the Docker container with a memory cap for example 4GB:
```bash
docke…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Go: github.com/BishopFox/sliver&lt;/p&gt;
&lt;p&gt;### Summary
Sliver is vulnerable to a Denial of Service (DOS) attack because there is no cap in the size of a PNG file that can be sent to an open http listener and there is a small amount of possible nonces. This vulnerability lets the attacker completely max out the RAM of the machine running server, leading to a complete loss of availability. 
### Details&lt;/p&gt;
&lt;p&gt;The first vulnerability is that the amount of possible nonces is 65,537. This is found in `server/encoders/encoders.go`
```go
const (
    EncoderModulus = uint64(65537)
)
```&lt;/p&gt;
&lt;p&gt;The second vulnerability is there is no limit to how many pixels the PNG encoder will accept from an unauthenticated user. This is found in:
`util/encoders/images.go`&lt;/p&gt;
&lt;p&gt;```go
func (p PNGEncoder) Encode(data []byte) ([]byte, error) {
    img := imageFromBytes(data)
    var buf bytes.Buffer
    encoder.Encode(&amp;amp;buf, img)
    return buf.Bytes(), nil
}&lt;/p&gt;
&lt;p&gt;func (p PNGEncoder) Decode(data []byte) ([]byte, error) {
    buf := bytes.NewBuffer(data)
    img, err := png.Decode(buf)
    if err != nil { return nil, err }
    return bytesFromImage(img), nil
}
```&lt;/p&gt;
&lt;p&gt;### PoC
The first step to reproduce this vulnerability is building a docker container to make sure no harm is caused.&lt;/p&gt;
&lt;p&gt;Get the latest version of Sliver (Currently 1.7.3)
```bash
git clone https://github.com/BishopFox/sliver.git
```&lt;/p&gt;
&lt;p&gt;Build the Docker container:
```bash
cd sliver
docker build -t sliver-test:local -f Dockerfile .
```&lt;/p&gt;
&lt;p&gt;Run the Docker container with a memory cap for example 4GB:
```bash
docke…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/ghsa-663m-7x7m-g4fw</guid>
    </item>
  </channel>
</rss>
