{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-9547","assignerOrgId":"2499f714-1537-4658-8207-48ae4bb9eae9","state":"PUBLISHED","assignerShortName":"curl","dateReserved":"2026-05-26T06:45:27.665Z","datePublished":"2026-07-03T06:18:44.499Z","dateUpdated":"2026-09-15T06:03:34.802Z"},"containers":{"cna":{"providerMetadata":{"orgId":"2499f714-1537-4658-8207-48ae4bb9eae9","shortName":"curl","dateUpdated":"2026-09-15T06:03:34.802Z"},"title":"SSH improper host validation","descriptions":[{"lang":"en","value":"When a libcurl-based application performs transfers via `SCP://` or `SFTP://`\nand utilizes the `CURLOPT_SSH_KEYFUNCTION` callback, it may silently accept an\nuntrusted server. This vulnerability occurs when a server presents a host key\ntype that does not match the specific key type already recorded for that host\nin the `known_hosts` file. Instead of rejecting the mismatch, the callback\nmechanism fails to properly enforce the restriction, allowing the connection\nto succeed without warning and risking a potential man-in-the-middle attack."}],"affected":[{"vendor":"curl","product":"curl","versions":[{"version":"7.69.0","status":"affected","versionType":"semver","lessThan":"8.14.2"},{"version":"8.15.0","status":"affected","versionType":"semver","lessThan":"8.16.1"},{"version":"8.17.0","status":"affected","versionType":"semver","lessThan":"8.20.1"}],"defaultStatus":"unaffected"},{"vendor":"curl","product":"curl","versions":[{"version":"507cf6a13db0375eadd4655b4c64710db29e9cf2","status":"affected","versionType":"git","lessThan":"0b8dbbc63c98777e4584cb9fbd71df3464008ad1"}],"defaultStatus":"unaffected","repo":"https://github.com/curl/curl.git"},{"vendor":"curl","product":"curl","versions":[{"version":"8.20.0","status":"affected"},{"version":"8.19.0","status":"affected"},{"version":"8.18.0","status":"affected"},{"version":"8.17.0","status":"affected"},{"version":"8.16.0","status":"affected"},{"version":"8.15.0","status":"affected"},{"version":"8.14.1","status":"affected"},{"version":"8.14.0","status":"affected"},{"version":"8.13.0","status":"affected"},{"version":"8.12.1","status":"affected"},{"version":"8.12.0","status":"affected"},{"version":"8.11.1","status":"affected"},{"version":"8.11.0","status":"affected"},{"version":"8.10.1","status":"affected"},{"version":"8.10.0","status":"affected"},{"version":"8.9.1","status":"affected"},{"version":"8.9.0","status":"affected"},{"version":"8.8.0","status":"affected"},{"version":"8.7.1","status":"affected"},{"version":"8.7.0","status":"affected"},{"version":"8.6.0","status":"affected"},{"version":"8.5.0","status":"affected"},{"version":"8.4.0","status":"affected"},{"version":"8.3.0","status":"affected"},{"version":"8.2.1","status":"affected"},{"version":"8.2.0","status":"affected"},{"version":"8.1.2","status":"affected"},{"version":"8.1.1","status":"affected"},{"version":"8.1.0","status":"affected"},{"version":"8.0.1","status":"affected"},{"version":"8.0.0","status":"affected"},{"version":"7.88.1","status":"affected"},{"version":"7.88.0","status":"affected"},{"version":"7.87.0","status":"affected"},{"version":"7.86.0","status":"affected"},{"version":"7.85.0","status":"affected"},{"version":"7.84.0","status":"affected"},{"version":"7.83.1","status":"affected"},{"version":"7.83.0","status":"affected"},{"version":"7.82.0","status":"affected"},{"version":"7.81.0","status":"affected"},{"version":"7.80.0","status":"affected"},{"version":"7.79.1","status":"affected"},{"version":"7.79.0","status":"affected"},{"version":"7.78.0","status":"affected"},{"version":"7.77.0","status":"affected"},{"version":"7.76.1","status":"affected"},{"version":"7.76.0","status":"affected"},{"version":"7.75.0","status":"affected"},{"version":"7.74.0","status":"affected"},{"version":"7.73.0","status":"affected"},{"version":"7.72.0","status":"affected"},{"version":"7.71.1","status":"affected"},{"version":"7.71.0","status":"affected"},{"version":"7.70.0","status":"affected"},{"version":"7.69.1","status":"affected"},{"version":"7.69.0","status":"affected"}],"defaultStatus":"unaffected"}],"references":[{"url":"https://curl.se/docs/CVE-2026-9547.json"},{"url":"https://curl.se/docs/CVE-2026-9547.html"},{"url":"https://hackerone.com/reports/3751712"}],"x_osv":{"schema_version":"1.5.0","id":"CURL-CVE-2026-9547","aliases":["CVE-2026-9547"],"summary":"SSH improper host validation","modified":"2026-09-07T10:34:51.00Z","database_specific":{"package":"curl","affects":"lib","URL":"https://curl.se/docs/CVE-2026-9547.json","www":"https://curl.se/docs/CVE-2026-9547.html","issue":"https://hackerone.com/reports/3751712","CWE":{"id":"CWE-297","desc":"Improper Validation of Certificate with Host Mismatch"},"last_affected":"8.20.0","severity":"Low"},"published":"2026-06-24T08:00:00.00Z","affected":[{"ranges":[{"type":"SEMVER","events":[{"introduced":"7.69.0"},{"fixed":"8.14.2"},{"introduced":"8.15.0"},{"fixed":"8.16.1"},{"introduced":"8.17.0"},{"fixed":"8.20.1"}]},{"type":"GIT","repo":"https://github.com/curl/curl.git","events":[{"introduced":"507cf6a13db0375eadd4655b4c64710db29e9cf2"},{"fixed":"0b8dbbc63c98777e4584cb9fbd71df3464008ad1"}]}],"versions":["8.20.0","8.19.0","8.18.0","8.17.0","8.16.0","8.15.0","8.14.1","8.14.0","8.13.0","8.12.1","8.12.0","8.11.1","8.11.0","8.10.1","8.10.0","8.9.1","8.9.0","8.8.0","8.7.1","8.7.0","8.6.0","8.5.0","8.4.0","8.3.0","8.2.1","8.2.0","8.1.2","8.1.1","8.1.0","8.0.1","8.0.0","7.88.1","7.88.0","7.87.0","7.86.0","7.85.0","7.84.0","7.83.1","7.83.0","7.82.0","7.81.0","7.80.0","7.79.1","7.79.0","7.78.0","7.77.0","7.76.1","7.76.0","7.75.0","7.74.0","7.73.0","7.72.0","7.71.1","7.71.0","7.70.0","7.69.1","7.69.0"]}],"credits":[{"name":"Joshua Rogers (Aisle Research)","type":"finder"},{"name":"Joshua Rogers (Aisle Research)","type":"remediation developer"}],"details":"When a libcurl-based application performs transfers via `SCP://` or `SFTP://`\nand utilizes the `CURLOPT_SSH_KEYFUNCTION` callback, it may silently accept an\nuntrusted server. This vulnerability occurs when a server presents a host key\ntype that does not match the specific key type already recorded for that host\nin the `known_hosts` file. Instead of rejecting the mismatch, the callback\nmechanism fails to properly enforce the restriction, allowing the connection\nto succeed without warning and risking a potential man-in-the-middle attack."},"problemTypes":[{"descriptions":[{"lang":"en","description":"Improper Validation of Certificate with Host Mismatch","cweId":"CWE-297","type":"CWE"}]}],"credits":[{"lang":"en","value":"Joshua Rogers (Aisle Research)","type":"finder"},{"lang":"en","value":"Joshua Rogers (Aisle Research)","type":"remediation developer"}],"x_generator":{"engine":"cvelib 1.8.0"}},"adp":[{"references":[{"url":"https://hackerone.com/reports/3751712","tags":["exploit"]}],"metrics":[{"cvssV3_1":{"scope":"UNCHANGED","version":"3.1","baseScore":7.4,"attackVector":"NETWORK","baseSeverity":"HIGH","vectorString":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N","integrityImpact":"HIGH","userInteraction":"NONE","attackComplexity":"HIGH","availabilityImpact":"NONE","privilegesRequired":"NONE","confidentialityImpact":"HIGH"}},{"other":{"type":"ssvc","content":{"timestamp":"2026-07-06T16:47:32.456534Z","id":"CVE-2026-9547","options":[{"Exploitation":"poc"},{"Automatable":"no"},{"Technical Impact":"total"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"title":"CISA ADP Vulnrichment","providerMetadata":{"orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","shortName":"CISA-ADP","dateUpdated":"2026-07-06T16:48:14.469Z"}}]}}