{"schemaVersion":3,"id":"CVE-2025-15661","aliases":["ALPINE-CVE-2025-15661","RHSA-2026:30132","UBUNTU-CVE-2025-15661","DEBIAN-CVE-2025-15661","CGA-fxpr-mqvx-3x7p","CGA-hhf6-3cmc-vgf2","CGA-p3mq-3jmw-4pm2","CGA-pmm9-wx53-c9gm","CGA-qrg5-mhqc-83qg","CGA-wpw8-4hpq-pc6c"],"status":"published","duplicateOf":null,"title":null,"description":"libssh2 through 1.11.1, fixed in commit 2dae302, contains an out-of-bounds heap read vulnerability in the sftp_symlink() function in src/sftp.c that allows a malicious SSH server or man-in-the-middle attacker to disclose heap memory contents or cause a crash by sending a crafted SSH_FXP_NAME response. Attackers can supply a link_len value larger than the actual packet data in SSH_FXP_NAME responses for SFTP READLINK and REALPATH operations, triggering a heap buffer over-read of up to target_len minus one bytes due to the missing validation of available packet buffer size before the memcpy operation.","dates":{"published":"2026-06-18T20:18:29.475Z","modified":"2026-09-24T14:17:17.482Z","reserved":null,"kevAdded":[],"kevDue":[]},"cvss":{"headline":{"score":8.3,"severity":"high","version":"4.0","versionLabel":"v4.0","source":"CVE.org","vector":"CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:L/VI:N/VA:H/SC:N/SI:N/SA:N","computed":false,"selection":"backend-summary"},"metrics":[{"version":"4.0","versionLabel":"v4.0","source":"CVE.org","score":8.3,"severity":"high","vector":"CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:L/VI:N/VA:H/SC:N/SI:N/SA:N","exploitability":null,"impact":null,"computed":false},{"version":"3.1","versionLabel":"v3.1","source":"CVE.org","score":6.5,"severity":"medium","vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:H","exploitability":null,"impact":null,"computed":false},{"version":"3.1","versionLabel":"v3.1","source":"OSV · Alpine","score":6.5,"severity":"medium","vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:H","exploitability":5.6,"impact":7,"computed":true},{"version":"3.1","versionLabel":"v3.1","source":"OSV · Red hat","score":6.5,"severity":"medium","vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:H","exploitability":5.6,"impact":7,"computed":true},{"version":"4.0","versionLabel":"v4.0","source":"OSV · Ubuntu","score":8.3,"severity":"high","vector":"CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:L/VI:N/VA:H/SC:N/SI:N/SA:N","exploitability":null,"impact":null,"computed":true},{"version":"3.1","versionLabel":"v3.1","source":"OSV · Ubuntu","score":6.5,"severity":"medium","vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:H","exploitability":5.6,"impact":7,"computed":true},{"version":"3.1","versionLabel":"v3.1","source":"OSV · Debian","score":6.5,"severity":"medium","vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:H","exploitability":5.6,"impact":7,"computed":true},{"version":"4.0","versionLabel":"v4.0","source":"OSV · Wolfi","score":8.3,"severity":"high","vector":"CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:L/VI:N/VA:H/SC:N/SI:N/SA:N","exploitability":null,"impact":null,"computed":true},{"version":"4.0","versionLabel":"v4.0","source":"OSV · Chainguard","score":8.3,"severity":"high","vector":"CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:L/VI:N/VA:H/SC:N/SI:N/SA:N","exploitability":null,"impact":null,"computed":true},{"version":"4.0","versionLabel":"v4.0","source":"NVD","score":8.3,"severity":"high","vector":"CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:L/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","exploitability":null,"impact":null,"computed":false},{"version":"3.1","versionLabel":"v3.1","source":"NVD","score":6.5,"severity":"medium","vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:H","exploitability":null,"impact":null,"computed":false}]},"epss":{"probability":0.00648,"percentile":0.50093,"severity":"low","asOf":"2026-10-19T00:00:00.000Z","change":{"pp":0,"baselineDate":"2026-09-19T00:00:00.000Z","baselineScore":0.00648},"history":[{"date":"2026-09-14T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-09-15T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-09-16T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-09-17T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-09-18T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-09-19T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-09-20T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-09-21T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00648,"percentile":0.50093}],"last30":[{"date":"2026-09-19T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-09-20T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-09-21T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00648,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00648,"percentile":0.50093}]},"kev":{"state":"not-listed","entries":[],"listedCount":0,"totalCatalogs":3,"catalogs":[{"source":"cisa","label":"CISA","listed":false,"entry":null},{"source":"enisa","label":"ENISA","listed":false,"entry":null},{"source":"circl","label":"CIRCL","listed":false,"entry":null}]},"ransomware":{"state":"none-recorded","sources":[]},"exploits":[],"exploitCount":0,"weaknesses":[{"id":"CWE-125","name":"Out-of-bounds Read","description":"The product reads data past the end, or before the beginning, of the intended buffer.","type":"weakness","status":"Draft","abstraction":"Base","likelihoodOfExploit":null,"url":"https://cwe.mitre.org/data/definitions/125.html"}],"affected":[{"vendor":"alpine","product":"rust","name":"rust","label":"rust","ecosystem":"Alpine Linux","cpePart":null,"purl":"pkg:apk/alpine/rust","purlType":"apk","versions":[{"text":"< 1.96.1-r0","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 1.96.1-r0","eol":null,"hubHref":null},{"vendor":"chainguard","product":"libssh2","name":"libssh2","label":"libssh2","ecosystem":"Chainguard","cpePart":null,"purl":"pkg:apk/chainguard/libssh2","purlType":"apk","versions":[{"text":"< 1.11.1-r7","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 1.11.1-r7","eol":null,"hubHref":null},{"vendor":"chainguard","product":"libssh2-dev","name":"libssh2-dev","label":"libssh2-dev","ecosystem":"Chainguard","cpePart":null,"purl":"pkg:apk/chainguard/libssh2-dev","purlType":"apk","versions":[{"text":"< 1.11.1-r7","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 1.11.1-r7","eol":null,"hubHref":null},{"vendor":"chainguard","product":"libssh2-doc","name":"libssh2-doc","label":"libssh2-doc","ecosystem":"Chainguard","cpePart":null,"purl":"pkg:apk/chainguard/libssh2-doc","purlType":"apk","versions":[{"text":"< 1.11.1-r7","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 1.11.1-r7","eol":null,"hubHref":null},{"vendor":"wolfi","product":"libssh2","name":"libssh2","label":"libssh2","ecosystem":"Wolfi","cpePart":null,"purl":"pkg:apk/wolfi/libssh2","purlType":"apk","versions":[{"text":"< 1.11.1-r7","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 1.11.1-r7","eol":null,"hubHref":null},{"vendor":"wolfi","product":"libssh2-dev","name":"libssh2-dev","label":"libssh2-dev","ecosystem":"Wolfi","cpePart":null,"purl":"pkg:apk/wolfi/libssh2-dev","purlType":"apk","versions":[{"text":"< 1.11.1-r7","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 1.11.1-r7","eol":null,"hubHref":null},{"vendor":"wolfi","product":"libssh2-doc","name":"libssh2-doc","label":"libssh2-doc","ecosystem":"Wolfi","cpePart":null,"purl":"pkg:apk/wolfi/libssh2-doc","purlType":"apk","versions":[{"text":"< 1.11.1-r7","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 1.11.1-r7","eol":null,"hubHref":null},{"vendor":"debian","product":"libssh2","name":"libssh2","label":"libssh2","ecosystem":"Debian","cpePart":null,"purl":"pkg:deb/debian/libssh2","purlType":"deb","versions":[{"text":"< 1.10.0-3+deb12u1","noFixRecorded":false,"fixedIn":null},{"text":"< 1.11.1-1+deb13u1","noFixRecorded":false,"fixedIn":null},{"text":"< 1.11.1-4","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 1.10.0-3+deb12u1 | < 1.11.1-1+deb13u1 | < 1.11.1-4","eol":null,"hubHref":null},{"vendor":"ubuntu","product":"libssh2","name":"libssh2","label":"libssh2","ecosystem":"Ubuntu","cpePart":null,"purl":"pkg:deb/ubuntu/libssh2","purlType":"deb","versions":[{"text":"All versions","noFixRecorded":true,"fixedIn":null},{"text":"< 1.11.0-4.1ubuntu0.24.04.2","noFixRecorded":false,"fixedIn":null},{"text":"< 1.11.1-1ubuntu0.25.10.2","noFixRecorded":false,"fixedIn":null},{"text":"< 1.11.1-1ubuntu0.26.04.2","noFixRecorded":false,"fixedIn":null}],"versionsText":"All versions (No fix recorded) | < 1.11.0-4.1ubuntu0.24.04.2 | < 1.11.1-1ubuntu0.25.10.2 | < 1.11.1-1ubuntu0.26.04.2","eol":null,"hubHref":null},{"vendor":"libssh2","product":"libssh2","name":"libssh2","label":"libssh2","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"≤ 1.11.1","noFixRecorded":false,"fixedIn":null}],"versionsText":"≤ 1.11.1","eol":null,"hubHref":"/vendor/libssh2/libssh2"},{"vendor":"redhat","product":"libssh2","name":"libssh2","label":"libssh2","ecosystem":"Red Hat","cpePart":null,"purl":"pkg:rpm/redhat/libssh2","purlType":"rpm","versions":[{"text":"< 0:1.11.1-9.hum1","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 0:1.11.1-9.hum1","eol":null,"hubHref":null},{"vendor":"redhat","product":"libssh2-devel","name":"libssh2-devel","label":"libssh2-devel","ecosystem":"Red Hat","cpePart":null,"purl":"pkg:rpm/redhat/libssh2-devel","purlType":"rpm","versions":[{"text":"< 0:1.11.1-9.hum1","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 0:1.11.1-9.hum1","eol":null,"hubHref":null},{"vendor":"redhat","product":"libssh2-docs","name":"libssh2-docs","label":"libssh2-docs","ecosystem":"Red Hat","cpePart":null,"purl":"pkg:rpm/redhat/libssh2-docs","purlType":"rpm","versions":[{"text":"< 0:1.11.1-9.hum1","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 0:1.11.1-9.hum1","eol":null,"hubHref":null}],"affectedCount":13,"eol":{"hasEol":false,"count":0},"references":[{"url":"https://github.com/libssh2/libssh2/pull/1705","label":"github.com/libssh2/libssh2/pull/1705","hostname":"github.com","tags":["Issue Tracking","ARTICLE","REPORT","Patch"]},{"url":"https://github.com/libssh2/libssh2/pull/1717","label":"github.com/libssh2/libssh2/pull/1717","hostname":"github.com","tags":["Issue Tracking","ARTICLE","REPORT","Patch"]},{"url":"https://github.com/libssh2/libssh2/commit/2dae3024897e1898d389835151f4e9606227721d","label":"github.com/libssh2/libssh2/commit/2dae3024897e1898d389835151f4e9606227721d","hostname":"github.com","tags":["Patch","ARTICLE","FIX"]},{"url":"https://www.vulncheck.com/advisories/libssh2-heap-buffer-over-read-via-sftp-symlink-in-sftp-c","label":"www.vulncheck.com/advisories/libssh2-heap-buffer-over-read-via-sftp-symlink-in-sftp-c","hostname":"www.vulncheck.com","tags":["Third Party Advisory","ARTICLE","REPORT","Advisory"]},{"url":"https://security.alpinelinux.org/vuln/CVE-2025-15661","label":"security.alpinelinux.org/vuln/CVE-2025-15661","hostname":"security.alpinelinux.org","tags":["Advisory"]},{"url":"https://access.redhat.com/errata/RHSA-2026:30132","label":"access.redhat.com/errata/RHSA-2026:30132","hostname":"access.redhat.com","tags":["Advisory"]},{"url":"https://images.redhat.com/","label":"images.redhat.com","hostname":"images.redhat.com","tags":["ARTICLE"]},{"url":"https://access.redhat.com/security/cve/CVE-2025-15661","label":"access.redhat.com/security/cve/CVE-2025-15661","hostname":"access.redhat.com","tags":["REPORT"]},{"url":"https://access.redhat.com/security/updates/classification/","label":"access.redhat.com/security/updates/classification/","hostname":"access.redhat.com","tags":["ARTICLE"]},{"url":"https://security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_30132.json","label":"security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_30132.json","hostname":"security.access.redhat.com","tags":["Advisory"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2490586","label":"bugzilla.redhat.com/show_bug.cgi?id=2490586","hostname":"bugzilla.redhat.com","tags":["REPORT"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2025-15661","label":"www.cve.org/CVERecord?id=CVE-2025-15661","hostname":"www.cve.org","tags":["Advisory","REPORT"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2025-15661","label":"nvd.nist.gov/vuln/detail/CVE-2025-15661","hostname":"nvd.nist.gov","tags":["Advisory","Oval"]},{"url":"https://ubuntu.com/security/CVE-2025-15661","label":"ubuntu.com/security/CVE-2025-15661","hostname":"ubuntu.com","tags":["REPORT"]},{"url":"https://ubuntu.com/security/notices/USN-8486-1","label":"ubuntu.com/security/notices/USN-8486-1","hostname":"ubuntu.com","tags":["Advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2025-15661","label":"security-tracker.debian.org/tracker/CVE-2025-15661","hostname":"security-tracker.debian.org","tags":["Advisory"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/15xxx/CVE-2025-15661.json","label":"github.com/CVEProject/cvelistV5/tree/main/cves/2025/15xxx/CVE-2025-15661.json","hostname":"github.com","tags":["Advisory"]},{"url":"https://github.com/libssh2/libssh2","label":"github.com/libssh2/libssh2","hostname":"github.com","tags":["PACKAGE"]}],"lineage":{"upstream":[],"downstream":["MGASA-2026-0273","OPENSUSE-SU-2026:11109-1","OPENSUSE-SU-2026:21549-1","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"],"duplicates":[],"related":["CGA-8JMM-6JHF-G3MP","OPENSUSE-SU-2026:11109-1","OPENSUSE-SU-2026:21549-1","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","USN-8486-1"]},"timeline":[{"kind":"published","date":"2026-06-18T20:18:29.475Z","label":"Published","detail":"Vulnerability first disclosed.","source":null},{"kind":"modified","date":"2026-09-24T14:17:17.482Z","label":"Last modified","detail":"Vulnerability information updated.","source":null}],"risk":{"score":33,"level":"medium","profile":"Default","thresholds":{"critical":75,"high":50,"medium":25,"low":10}},"meta":{"dataAsOf":"2026-10-20T03:43:45.708Z","stale":false,"partial":false}}