{"api_version":"1","generated_at":"2026-09-03T03:55:54+00:00","cve":"CVE-2026-78662","urls":{"html":"https://cve.report/CVE-2026-78662","api":"https://cve.report/api/cve/CVE-2026-78662.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-78662","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-78662"},"summary":{"title":"Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh","description":"Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection.","state":"PUBLISHED","assigner":"Go","published_at":"2026-09-02 20:17:37","updated_at":"2026-09-02 20:17:37"},"problem_types":["CWE-770: Allocation of Resources Without Limits or Throttling"],"metrics":[],"references":[{"url":"https://go.dev/cl/826504","name":"https://go.dev/cl/826504","refsource":"security@golang.org","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://go.dev/issue/81316","name":"https://go.dev/issue/81316","refsource":"security@golang.org","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://groups.google.com/g/golang-announce/c/1y3fb2np35U","name":"https://groups.google.com/g/golang-announce/c/1y3fb2np35U","refsource":"security@golang.org","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://pkg.go.dev/vuln/GO-2026-6354","name":"https://pkg.go.dev/vuln/GO-2026-6354","refsource":"security@golang.org","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-78662","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-78662","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"golang.org/x/crypto","product":"golang.org/x/crypto/ssh","version":"affected 0.56.0 semver","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[{"source":"CNA","value":"Will Mortensen","lang":"en"}],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"collectionURL":"https://pkg.go.dev","defaultStatus":"unaffected","packageName":"golang.org/x/crypto/ssh","product":"golang.org/x/crypto/ssh","programRoutines":[{"name":"channel.handlePacket"},{"name":"channel.responseMessageReceived"},{"name":"channel.Accept"},{"name":"Dial"},{"name":"NewClientConn"},{"name":"NewControlClientConn"},{"name":"NewServerConn"}],"vendor":"golang.org/x/crypto","versions":[{"lessThan":"0.56.0","status":"affected","version":"0","versionType":"semver"}]}],"credits":[{"lang":"en","value":"Will Mortensen"}],"descriptions":[{"lang":"en","value":"Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection."}],"problemTypes":[{"descriptions":[{"description":"CWE-770: Allocation of Resources Without Limits or Throttling","lang":"en"}]}],"providerMetadata":{"dateUpdated":"2026-09-02T19:37:05.741Z","orgId":"1bb62c36-49e3-4200-9d77-64a1400537cc","shortName":"Go"},"references":[{"url":"https://go.dev/issue/81316"},{"url":"https://go.dev/cl/826504"},{"url":"https://groups.google.com/g/golang-announce/c/1y3fb2np35U"},{"url":"https://pkg.go.dev/vuln/GO-2026-6354"}],"title":"Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh"}},"cveMetadata":{"assignerOrgId":"1bb62c36-49e3-4200-9d77-64a1400537cc","assignerShortName":"Go","cveId":"CVE-2026-78662","datePublished":"2026-09-02T19:37:05.741Z","dateReserved":"2026-08-24T23:36:15.738Z","dateUpdated":"2026-09-02T19:37:05.741Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-09-02 20:17:37","lastModifiedDate":"2026-09-02 20:17:37","problem_types":["CWE-770: Allocation of Resources Without Limits or Throttling"],"metrics":[],"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"78662","Ordinal":"1","Title":"Prevent DoS on deadlocked undecided channel in golang.org/x/cryp","CVE":"CVE-2026-78662","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"78662","Ordinal":"1","NoteData":"Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection.","Type":"Description","Title":"Prevent DoS on deadlocked undecided channel in golang.org/x/cryp"}]}}}