← Back to Feed CACHED · 2026-06-30 15:20:27 · CACHE_KEY CVE-2026-36478
CVE-2026-36478 · CWE-400 · Disclosed 2026-06-26

An issue in Technitium DNS Server v

ASSESSED — NOISGATE V0.5
Vendor
Reassessed
Verdict:
Do you agree?
01 · The Real Story

A resource-exhaustion flaw in a hobbyist-favorite DNS server that crashes the daemon when poked the right way

CVE-2026-36478 is a CWE-400 *uncontrolled resource consumption* bug in Technitium DNS Server v14.3 and earlier, residing in DnsServerApp.exe, DnsServerApp.dll, and TechnitiumLibrary.Net/Dns/DnsClient.cs. A remote attacker sends crafted DNS traffic that drives CPU/memory/socket exhaustion, knocking the resolver process over. No authentication, no user interaction — just network reachability to UDP/53 or TCP/53. Fixed in v15 (released April 2026).

Vendor severity of HIGH 7.5 is technically defensible under CVSS3.1 — pure availability impact, network-reachable, no auth. But CVSS over-weights every internet-reachable DoS. Reality check: Technitium is a niche self-hosted resolver (homelabs, small ISPs, privacy enthusiasts), not Knot/BIND/Unbound at carrier scale. For an enterprise fleet, the realistic blast radius is one or two boxes losing DNS until the watchdog restarts them. MEDIUM is the honest call.

"Unauthenticated DoS against a niche self-hosted DNS server. Real but narrow — patch on the 365-day window unless it's your resolver."
02 · The Attack Path

4 steps from start to impact.

STEP 01

Locate a reachable Technitium resolver

Attacker fingerprints DNS servers via version.bind CHAOS queries or Technitium's distinctive web-admin banner on TCP/5380. Shodan/Censys both index Technitium installs by HTTP title. Public-facing deployments are uncommon outside hobbyist setups.
Conditions required:
  • Network reachability to UDP/53 or TCP/53
  • Target running Technitium ≤ v14.3
Where this breaks in practice:
  • Most enterprises run BIND/Unbound/Windows DNS, not Technitium
  • Public-facing recursive resolvers are firewalled or rate-limited at the perimeter
Detection/coverage: Shodan dorking via http.title:"Technitium DNS" returns the exposed surface; internal exposure invisible to external scanners.
STEP 02

Craft the malformed/abusive query stream

Based on the affected file DnsClient.cs, the bug likely lives in recursive-client handling — malformed responses or amplification loops from attacker-controlled authoritative servers. PoC tooling would be a custom Python dnspython script or scapy packet generator. No public PoC has surfaced as of 2026-06-30.
Conditions required:
  • Ability to send arbitrary DNS payloads
  • Optionally: control of an authoritative nameserver to feed poisoned responses back
Where this breaks in practice:
  • Crafted payload details not yet public — exploitation requires reversing the v14.3 → v15 diff
  • Egress filtering on outbound DNS limits poisoned-response paths
Detection/coverage: DNS-aware IDS (Suricata, Zeek) will flag anomalous query patterns but not the specific payload until a signature lands.
STEP 03

Trigger resource exhaustion

Repeated queries pin CPU or exhaust memory/sockets in the .NET process. The DnsServerApp daemon hangs or crashes. Systemd/Windows service manager may auto-restart, but during the restart window the resolver is offline.
Conditions required:
  • Sustained query volume from attacker
  • No upstream rate-limit / RRL
Where this breaks in practice:
  • Response Rate Limiting and per-source query caps blunt the flood
  • Anycast or HA pairs mask single-node failure
Detection/coverage: Process restart loops in service logs; SNMP/Prometheus CPU spike alerts; DNS query-latency SLO breach.
STEP 04

Sustain the outage

Attacker maintains the traffic to keep the daemon dead. Downstream clients fail-open to secondary DNS or fail-closed entirely depending on resolver list ordering. Tooling: a looped hping3 / custom socket sender — no named exploit released.
Conditions required:
  • Attacker bandwidth budget
  • No effective filtering between source and resolver
Where this breaks in practice:
  • Most environments have ≥2 resolvers; clients silently fail over
  • Cloud DNS (Route53, Cloudflare, Google 8.8.8.8) typically configured as secondary
Detection/coverage: DNS-resolution failure SLOs in the monitoring stack catch this in minutes.
03 · Intelligence Metadata

The supporting signals.

In-the-wild exploitationNone observed as of 2026-06-30. No vendor IR notes, no GreyNoise tag, no public incident reports.
Proof-of-conceptNo public PoC. CVE published 2026-06-26 by MITRE; reporter unattributed in the public record.
EPSS0.00409 — bottom-quartile exploitation likelihood over next 30 days.
KEVNot listed. CISA has not added this CVE to the Known Exploited Vulnerabilities catalog.
CVSS 3.1 vectorAV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H — network, no auth, *availability-only impact*. Translation: it's a DoS, not RCE.
Affected versionsTechnitium DNS Server ≤ v14.3, including the v14.x line.
Fixed versionv15.0 (blog post April 2026). Upgrade is in-place via the standard installer.
Exposure footprintShodan/Censys queries on the Technitium admin banner show a few thousand exposed installs globally — overwhelmingly homelabs and small VPS deployments, not enterprise fleets.
DisclosureReserved 2026-04-06, published 2026-06-26 by MITRE. CWE-400 Uncontrolled Resource Consumption.
ReporterNot attributed in MITRE record; vendor changelog credits internal review for v15 hardening work.
04 · The Call

noisgate verdict.

Final Verdict
DOWNGRADED to MEDIUM (5.3/10)

The single most decisive factor is availability-only impact on a niche resolver with no high-value-role variant — there is no confidentiality/integrity exposure, no auth bypass, no fleet pivot, just a process that needs restarting. Technitium is not deployed in carrier-grade, AD-integrated, or identity-critical roles in any meaningful enterprise count, so even the worst plausible blast radius is one host losing DNS until watchdog recovery.

HIGH vendor severity is overweighted for this DoS class
MEDIUM exploitation difficulty pending PoC release
HIGH negligible enterprise footprint for Technitium

Why this verdict

  • Availability-only: CVSS C:N/I:N/A:H — no data theft, no code execution, no privilege escalation. Restart restores service.
  • Niche product: Technitium ranks well below BIND, Unbound, Windows DNS, and PowerDNS in enterprise installed base. The affected population in most Fortune 2000 fleets is zero or rounding error.
  • No public PoC, no KEV, EPSS 0.41%: zero indicators of imminent mass exploitation.
  • Role multiplier: Even in the high-value resolver role, the chain ends in *resolver unavailability* — not domain takeover, not cache poisoning, not RCE. Floor stays at MEDIUM because no documented variant escalates beyond DoS.
  • Friction: Most deployments have a secondary resolver configured; failover masks single-node outage.

Why not higher?

HIGH (vendor's call) over-indexes on the AV:N/PR:N/AC:L surface and ignores deployment reality — Technitium is not in critical infrastructure rotations, and the impact ceiling is service restart, not breach. Without RCE, cache poisoning, or auth bypass, this doesn't clear the HIGH bar in operational terms.

Why not lower?

LOW would be wrong because the bug is genuinely unauthenticated and network-reachable, and for the operators who *do* run Technitium as their primary resolver, an outage hits user-visible browsing/email. The 365-day backlog window applies, but this isn't pure documentation-only hygiene.

05 · Compensating Control

What to do — in priority order.

  1. Inventory for Technitium installs — Run an internal scan for the Technitium admin banner on TCP/5380 and version.bind CHAOS queries against your DNS estate. If you find zero installs (the likely outcome), document and close — no mitigation SLA applies under MEDIUM.
  2. Upgrade to v15 where present — Run the in-place v15 installer on any Technitium host found. No mitigation SLA per noisgate MEDIUM bucket — fold into the 365-day remediation window unless the box is your primary resolver, in which case schedule within the next change window.
  3. Restrict DNS service surface — If Technitium must remain, firewall UDP/53 and TCP/53 to known client ranges only; never expose recursive DNS to the public internet. Enable Response Rate Limiting in the Technitium settings panel.
  4. Add resolver redundancy — Configure every endpoint with a secondary resolver (cloud DNS or a second internal box on a different stack — e.g., Unbound) so single-process DoS does not cause user-visible outage.
What doesn't work
  • WAF / reverse proxy — DNS is UDP/53, not HTTP; web-layer controls are irrelevant.
  • EDR / antivirus signatures — no malicious binary lands on disk; this is a protocol-level resource exhaustion.
  • DNSSEC — protects response integrity, not server availability against malformed-query floods.
  • MFA on the admin panel — does nothing for the unauthenticated DNS port pathway.
06 · Verification

Crowdsourced verification payload.

Run on each Linux host suspected of running Technitium DNS Server, or against a remote target you administer. Invoke as sudo ./check-technitium.sh [optional-host] — defaults to localhost. Requires dig and either local filesystem access or admin-panel reachability on TCP/5380.

noisgate-verify.sh
BASHREAD-ONLYSAFE
#!/usr/bin/env bash
# noisgate verification — CVE-2026-36478 (Technitium DNS Server ≤ v14.3)
# Output: VULNERABLE / PATCHED / UNKNOWN
set -u

TARGET="${1:-127.0.0.1}"
FIXED_MAJOR=15

detect_version() {
  # Try the admin API banner first
  if command -v curl >/dev/null 2>&1; then
    ver=$(curl -s --max-time 5 "http://${TARGET}:5380/api/user/session/get" 2>/dev/null \
          | grep -oE '"version":"[0-9.]+"' | head -n1 | cut -d'"' -f4)
    [ -n "${ver:-}" ] && { echo "$ver"; return 0; }
  fi
  # Fallback: local install dir
  for p in /opt/technitium/dns /etc/dns; do
    if [ -f "$p/config/version.txt" ]; then
      cat "$p/config/version.txt"; return 0
    fi
  done
  # Fallback: CHAOS query
  if command -v dig >/dev/null 2>&1; then
    v=$(dig @"$TARGET" version.bind CHAOS TXT +short +time=3 +tries=1 2>/dev/null | tr -d '"')
    [ -n "$v" ] && { echo "$v"; return 0; }
  fi
  return 1
}

VER=$(detect_version) || { echo "UNKNOWN — Technitium not detected on ${TARGET}"; exit 2; }

MAJOR=$(echo "$VER" | cut -d. -f1)
if ! [[ "$MAJOR" =~ ^[0-9]+$ ]]; then
  echo "UNKNOWN — could not parse version string: $VER"
  exit 2
fi

if [ "$MAJOR" -lt "$FIXED_MAJOR" ]; then
  echo "VULNERABLE — Technitium DNS Server v${VER} (≤ 14.3 affected; fix in v15+)"
  exit 1
else
  echo "PATCHED — Technitium DNS Server v${VER}"
  exit 0
fi
07 · Bottom Line

If you remember one thing.

TL;DR
Monday morning: scan your fleet for the Technitium admin banner on TCP/5380 and version.bind CHAOS queries. The realistic outcome is you find zero or a handful of homelab-style boxes. Per the noisgate mitigation SLA for MEDIUM, there is no mitigation deadline — go straight to the noisgate remediation SLA of ≤ 365 days to upgrade those hosts to v15. The one exception: if Technitium is the *primary* resolver for any production segment, treat the in-place v15 upgrade as a normal change-window task within the next 30 days and add a secondary resolver in the meantime. Don't burn cycles ahead of unpatched CRITICALs for this one.

Sources

  1. CVE-2026-36478 record (ThreatINT mirror)
  2. Technitium DnsServer CHANGELOG
  3. Technitium DNS Server v15 release blog
  4. Technitium DnsServer GitHub
  5. CVE Details — Technitium DNS Server
  6. Technitium project home
  7. CWE-400 Uncontrolled Resource Consumption
  8. FIRST EPSS model
Peer Review

What defenders are saying.

Submit a review attribution: handle + country only
0 flags selected · stored anonymously
Validation Results

Crowdsourced verification outputs.

Results submitted by users who ran the verification payload against their environment.