CVE-2026-78662:
Docker 취약성 분석 및 완화
개요
CVE-2026-78662 is a denial-of-service vulnerability in the golang.org/x/crypto/ssh package (Go's extended cryptography library) caused by unbounded flooding of an SSH channel's incomingRequests queue before the channel is fully established. A malicious SSH peer can exploit this to deadlock the entire SSH connection. All versions of golang.org/x/crypto/ssh prior to 0.56.0 are affected. It carries a CVSS v3.1 base score of 7.5 (High) and is classified under CWE-770 (Allocation of Resources Without Limits or Throttling) (Feedly, OSV).
기술적 세부 사항
The root cause (CWE-770) lies in how the SSH multiplexer (mux) handles channels registered in its chanList before they are fully established. Prior to the fix, a channel was added to chanList immediately upon registration but was not yet usable — yet handlePacket would still process incoming request packets for it, allowing an attacker to flood the channel's incomingRequests channel buffer and cause a deadlock across the entire SSH connection. The fix introduces an atomic established state flag; handlePacket now silently drops all packets except open confirmation or failure until the channel transitions to the established state, preventing blocking without tearing down the connection. The attack requires no authentication and no user interaction, making it automatable over the network (Feedly, Go Issue, Go CL).
영향
A malicious SSH peer can deadlock an affected SSH connection entirely, resulting in a denial-of-service condition for any application using golang.org/x/crypto/ssh versions before 0.56.0. While the CVSS score reflects a High confidentiality impact (likely due to the connection state being exposed or disrupted), the primary real-world impact is availability — legitimate SSH sessions and services relying on this library can be rendered unresponsive. There is no direct integrity or data exfiltration impact identified (Feedly, OSV).
악용 가능성
No public proof-of-concept exploit code or in-the-wild exploitation has been reported as of the disclosure date. The NVD SSVC assessment classifies exploitation as "none" currently, and the EPSS score is approximately 0.17%, indicating a low near-term exploitation probability. The vulnerability is automatable (no authentication or user interaction required), which lowers the barrier for abuse if a PoC were to emerge. It is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog (Feedly, OSV).
착취 단계
- Identify target: Locate services using
golang.org/x/crypto/sshversions prior to 0.56.0 (e.g., SSH servers, Go-based automation tools, CI/CD agents). - Initiate SSH connection: Establish a TCP connection to the target SSH service and begin the SSH handshake to reach the point where channel negotiation occurs.
- Register a channel: Send an SSH channel open request (
SSH_MSG_CHANNEL_OPEN) to cause the server to register a new channel in itschanListbefore it is established. - Flood incomingRequests: Before the channel open confirmation is processed (i.e., while the channel is in an unestablished state), rapidly send a large volume of SSH channel request packets (
SSH_MSG_CHANNEL_REQUEST) targeting the newly registered channel. - Trigger deadlock: The unbounded
incomingRequestsbuffer fills up, causinghandlePacketto block indefinitely, deadlocking the entire SSH connection multiplexer and denying service to all legitimate users of that connection (Go Issue, Go CL).
타협의 징후
- Network: Unusually high volume of SSH channel request packets (
SSH_MSG_CHANNEL_REQUEST) sent to a target before channel establishment completes; connections that initiate but never complete normal SSH session activity. - Logs: Application logs showing SSH connections hanging or timing out without completing; Go runtime goroutine dumps indicating blocked goroutines in
handlePacketor channel receive operations withingolang.org/x/crypto/ssh. - Process: SSH-dependent Go services becoming unresponsive or exhibiting high goroutine counts without corresponding CPU activity, suggesting deadlock conditions.
완화 및 해결 방법
Upgrade golang.org/x/crypto to version 0.56.0 or later, which introduces the atomic established state fix that causes handlePacket to drop pre-establishment packets without blocking. There is no known configuration-based workaround; upgrading is the only remediation. Developers should update their go.mod dependencies and rebuild affected binaries. Network-level controls (e.g., rate-limiting SSH connections from untrusted peers) may reduce exposure but do not eliminate the vulnerability (Go CL, OSV, golang-announce).
커뮤니티 반응
The vulnerability was announced via the golang-announce mailing list and tracked in the Go vulnerability database. Community discussion on oss-security mailing lists noted the issue shortly after disclosure. No major vendor statements or notable researcher commentary beyond the official Go project fix have been identified at this time (golang-announce, oss-sec).
추가 자료
리눅스 배포판 수정 현황
주요 리눅스 배포판과 그 릴리스 전반에 걸친 가용성을 수정하세요.
bookworm
golang-go.crypto
sid
golang-go.crypto: 1:0.56.0-1
trixie
golang-go.crypto
bionic (esm-infra)
golang-defaults
devel
golang-1.23
focal (esm-apps)
golang-1.20
focal (esm-infra)
golang-defaults
jammy
golang-1.17
jammy (esm-apps)
golang-1.20
noble
golang-1.21
noble (esm-apps)
golang-1.21
근원: 이 보고서는 AI를 사용하여 생성되었습니다.
관련 Docker 취약점:
무료 취약성 평가
클라우드 보안 태세를 벤치마킹합니다
9개의 보안 도메인에서 클라우드 보안 관행을 평가하여 위험 수준을 벤치마킹하고 방어의 허점을 식별합니다.
추가 Wiz 리소스
맞춤형 데모 받기
맞춤형 데모 신청하기
"내가 본 최고의 사용자 경험은 클라우드 워크로드에 대한 완전한 가시성을 제공합니다."
"Wiz는 클라우드 환경에서 무슨 일이 일어나고 있는지 볼 수 있는 단일 창을 제공합니다."
"우리는 Wiz가 무언가를 중요한 것으로 식별하면 실제로 중요하다는 것을 알고 있습니다."