CVE-2020-24698

9.8 CRITICAL

📋 TL;DR

A double-free vulnerability in PowerDNS Authoritative when GSS-TSIG is enabled allows remote unauthenticated attackers to crash the service or potentially execute arbitrary code. This affects PowerDNS Authoritative servers with the experimental GSS-TSIG feature enabled. Attackers can exploit this by sending specially crafted DNS queries with GSS-TSIG signatures.

💻 Affected Systems

Products:
  • PowerDNS Authoritative
Versions: Through 4.3.0
Operating Systems: All platforms running PowerDNS Authoritative
Default Config Vulnerable: ✅ No
Notes: Only vulnerable when compiled with --enable-experimental-gss-tsig flag enabled. GSS-TSIG is an experimental feature not enabled by default.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Remote code execution leading to complete system compromise, data exfiltration, or use as a foothold for lateral movement.

🟠

Likely Case

Service crash causing DNS resolution outages and denial of service for dependent systems.

🟢

If Mitigated

No impact if GSS-TSIG is disabled or systems are patched/isolated.

🌐 Internet-Facing: HIGH - Remote unauthenticated exploitation with CVSS 9.8 score affecting internet-exposed DNS servers.
🏢 Internal Only: MEDIUM - Lower risk if internal DNS servers are behind firewalls, but still vulnerable to internal attackers.

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: MEDIUM

Exploitation requires crafting specific DNS queries with GSS-TSIG signatures. Public advisory includes technical details that could facilitate exploitation.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 4.3.1 and later

Vendor Advisory: https://doc.powerdns.com/authoritative/security-advisories/powerdns-advisory-2020-06.html

Restart Required: Yes

Instructions:

1. Upgrade PowerDNS Authoritative to version 4.3.1 or later. 2. Stop PowerDNS service. 3. Install updated package. 4. Restart PowerDNS service. 5. Verify service is running and responding to queries.

🔧 Temporary Workarounds

Disable GSS-TSIG feature

all

Disable the experimental GSS-TSIG feature if not required for your environment.

Recompile PowerDNS without --enable-experimental-gss-tsig flag
Ensure GSS-TSIG is not enabled in configuration

Network isolation

linux

Restrict access to PowerDNS servers to trusted networks only.

iptables -A INPUT -p udp --dport 53 -s trusted_network -j ACCEPT
iptables -A INPUT -p tcp --dport 53 -s trusted_network -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j DROP
iptables -A INPUT -p tcp --dport 53 -j DROP

🧯 If You Can't Patch

  • Disable GSS-TSIG feature immediately if enabled
  • Implement strict network controls to limit access to PowerDNS servers

🔍 How to Verify

Check if Vulnerable:

Check if PowerDNS is running with GSS-TSIG enabled: grep -i gss /etc/powerdns/pdns.conf or check compilation flags if source build.

Check Version:

pdns_server --version | grep -o 'PowerDNS Authoritative Server [0-9.]*'

Verify Fix Applied:

Verify PowerDNS version is 4.3.1 or later: pdns_server --version

📡 Detection & Monitoring

Log Indicators:

  • Unexpected crashes or restarts of pdns_server
  • Log entries showing malformed GSS-TSIG queries
  • High volume of queries with GSS-TSIG signatures from single sources

Network Indicators:

  • DNS queries with GSS-TSIG opcodes from unexpected sources
  • Traffic spikes to port 53/udp or 53/tcp

SIEM Query:

source="powerdns" AND ("crash" OR "segfault" OR "double free") OR (query_type="GSS-TSIG" AND count>threshold)

🔗 References

📤 Share & Export