<?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://db.gcve.eu/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-10-04T04:30:44.995321+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>info@gcve.eu</email>
  </author>
  <link href="https://db.gcve.eu" 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://db.gcve.eu/vuln/ghsa-h75p-j8xm-m278</id>
    <title>GHSA-h75p-j8xm-m278 — CoreDNS Loop Detection Denial of Service Vulnerability</title>
    <updated>2026-10-04T04:30:45.003970+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> Go: github.com/coredns/coredns</p>
<p>## Executive Summary</p>
<p>A Denial of Service vulnerability exists in CoreDNS's loop detection plugin that allows an attacker to crash the DNS server by sending specially crafted DNS queries. The vulnerability stems from the use of a predictable pseudo-random number generator (PRNG) for generating a secret query name, combined with a fatal error handler that terminates the entire process.</p>
<p>---
## Technical Details</p>
<p>### Vulnerability Description</p>
<p>The CoreDNS `loop` plugin is designed to detect forwarding loops by performing a self-test during server startup. The plugin generates a random query name (`qname`) using Go's `math/rand` package and sends an HINFO query to itself. If the server receives multiple matching queries, it assumes a forwarding loop exists and terminates.</p>
<p>**The vulnerability arises from two design flaws:**</p>
<p>1. **Predictable PRNG Seed**: The random number generator is seeded with `time.Now().UnixNano()`, making the generated qname predictable if an attacker knows the approximate server start time.</p>
<p>2. **Fatal Error Handler**: When the plugin detects what it believes is a loop (3+ matching HINFO queries), it calls `log.Fatalf()` which invokes `os.Exit(1)`, immediately terminating the process without cleanup or recovery.</p>
<p>### Affected Code</p>
<p>**File: `plugin/loop/setup.go`**
```go
// PRNG seeded with predictable timestamp
var r = rand.New(time.Now().UnixNano())</p>
<p>// Qname generation using two consecutive PRNG calls
func qname(zone string) string {
    l1 := strconv.…</p></div>
    </content>
    <link href="https://db.gcve.eu/vuln/ghsa-h75p-j8xm-m278"/>
  </entry>
</feed>
