{"id":"CVE-2026-66034","summary":"libssh2 Heap Out-of-Bounds Read via publickey subsystem","details":"libssh2 through 1.11.1, fixed in commit a13bb6c, contains a missing bounds check vulnerability that allows a malicious SSH server to trigger an arbitrary-length heap out-of-bounds read and a free of an uninitialized pointer via the publickey subsystem. In libssh2_publickey_list_fetch(), the version 1 response parser reads a server-controlled comment_len value and advances the parse pointer without verifying sufficient bytes remain in the buffer, causing the out-of-bounds read to leak heap pointers from adjacent allocations defeating ASLR, followed by heap allocator state corruption when the error cleanup path frees an uninitialized pointer from a non-zeroed realloc() region.","modified":"2026-09-14T18:26:51.529566913Z","published":"2026-07-24T16:42:18.764Z","related":["SUSE-SU-2026:23049-1","SUSE-SU-2026:23187-1","SUSE-SU-2026:23214-1","SUSE-SU-2026:23225-1","SUSE-SU-2026:23245-1","SUSE-SU-2026:3525-1","SUSE-SU-2026:3526-1","SUSE-SU-2026:3541-1","SUSE-SU-2026:4095-1","openSUSE-SU-2026:11454-1","openSUSE-SU-2026:21549-1"],"database_specific":{"cwe_ids":["CWE-125","CWE-908"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/66xxx/CVE-2026-66034.json","cna_assigner":"VulnCheck"},"references":[{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/66xxx/CVE-2026-66034.json"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-66034"},{"type":"ADVISORY","url":"https://www.vulncheck.com/advisories/libssh2-heap-out-of-bounds-read-via-publickey-subsystem"},{"type":"FIX","url":"https://github.com/libssh2/libssh2/commit/a13bb6c773f0d55ad1628cede57e99803cd898d9"},{"type":"FIX","url":"https://github.com/libssh2/libssh2/pull/2202"},{"type":"PACKAGE","url":"https://github.com/libssh2/libssh2"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/libssh2/libssh2","events":[{"introduced":"0"},{"fixed":"a13bb6c773f0d55ad1628cede57e99803cd898d9"}],"database_specific":{"source":["CPE_RANGE","REFERENCES"],"cpe":"cpe:2.3:a:libssh2:libssh2:*:*:*:*:*:*:*:*","extracted_events":[{"introduced":"0"},{"last_affected":"1.11.1"}]}}],"versions":["libssh2-1.11.1","libssh2-1.11.0","libssh2-1.10.0","libssh2-1.9.0","libssh2-1.8.0","libssh2-1.7.0","libssh2-1.6.0","libssh2-1.5.0","libssh2-1.4.3","libssh2-1.4.2","libssh2-1.4.1","libssh2-1.4.0","libssh2-1.3.0","libssh2-1.2.9","libssh2-1.2.8","libssh2-1.2.7","libssh2-1.2.6","libssh2-1.2.5","libssh2-1.2.4","libssh2-1.2.3","libssh2-1.2.1","libssh2-1.2","RELEASE.1.1","RELEASE.1.0","RELEASE.0.18","RELEASE.0.17","RELEASE.0.16","RELEASE.0.15","beforenb2-0.14","beforenb-0.14","RELEASE.0.14","RELEASE.0.13","RELEASE.0.12","RELEASE.0.11","RELEASE.0.10","RELEASE.0.8","RELEASE.0.7","RELEASE.0.6","RELEASE.0.5","RELEASE.0.3","RELEASE.0.1"],"database_specific":{"source":"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2026-66034.json","vanir_signatures_modified":"2026-08-18T18:40:04Z","vanir_signatures":[{"signature_type":"Line","signature_version":"v1","source":"https://github.com/libssh2/libssh2/commit/a13bb6c773f0d55ad1628cede57e99803cd898d9","target":{"file":"src/publickey.c"},"deprecated":false,"digest":{"line_hashes":["198481373953367669992453397832490020519","66084080692611109197706311857865589381","134017591480821814493369121025966465961","128392399449835096795509536162118460613"],"threshold":0.9},"id":"CVE-2026-66034-206f3d26"},{"digest":{"function_hash":"211152041484863357591819924214302562789","length":9907},"id":"CVE-2026-66034-c7cfc643","signature_type":"Function","signature_version":"v1","source":"https://github.com/libssh2/libssh2/commit/a13bb6c773f0d55ad1628cede57e99803cd898d9","target":{"file":"src/publickey.c","function":"libssh2_publickey_list_fetch"},"deprecated":false}]}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N"}]}