{"id":"CURL-CVE-2026-9547","summary":"SSH improper host validation","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.","aliases":["CVE-2026-9547"],"modified":"2026-06-24T08:07:06.624753Z","published":"2026-06-24T08:00:00Z","database_specific":{"www":"https://curl.se/docs/CVE-2026-9547.html","issue":"https://hackerone.com/reports/3751712","package":"curl","affects":"lib","CWE":{"id":"CWE-297","desc":"Improper Validation of Certificate with Host Mismatch"},"severity":"Low","URL":"https://curl.se/docs/CVE-2026-9547.json","last_affected":"8.20.0"},"affected":[{"ranges":[{"type":"SEMVER","events":[{"introduced":"7.69.0"},{"fixed":"8.21.0"}]},{"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","curl-8_20_0","rc-8_20_0-3","rc-8_20_0-2","rc-8_20_0-1","curl-8_19_0","rc-8_19_0-3","rc-8_19_0-2","rc-8_19_0-1","curl-8_18_0","rc-8_18_0-3","rc-8_18_0-2","rc-8_18_0-1","curl-8_17_0","curl-8_16_0","curl-8_15_0","curl-8_14_1","curl-8_14_0","curl-8_13_0","curl-8_12_1","curl-8_12_0","curl-8_11_1","curl-8_11_0","curl-8_10_1","curl-8_10_0","curl-8_9_1","curl-8_9_0","curl-8_8_0","curl-8_7_1","curl-8_7_0","curl-8_6_0","curl-8_5_0","tiny-curl-8_4_0","curl-8_4_0","curl-8_3_0","curl-8_2_1","curl-8_2_0","curl-8_1_2","curl-8_1_1","curl-8_1_0","curl-8_0_1","curl-8_0_0","curl-7_88_1","curl-7_88_0","curl-7_87_0","curl-7_86_0","curl-7_85_0","curl-7_84_0","curl-7_83_1","curl-7_83_0","curl-7_82_0","curl-7_81_0","curl-7_80_0","curl-7_79_1","curl-7_79_0","curl-7_78_0","curl-7_77_0","curl-7_76_1","curl-7_76_0","curl-7_75_0","curl-7_74_0","curl-7_73_0","tiny-curl-7_72_0","curl-7_72_0","curl-7_71_1","curl-7_71_0","curl-7_70_0","curl-7_69_1","curl-7_69_0"],"database_specific":{"source":"https://curl.se/docs/CURL-CVE-2026-9547.json","vanir_signatures_modified":"2026-06-24T08:07:06Z","vanir_signatures":[{"source":"https://github.com/curl/curl.git/commit/0b8dbbc63c98777e4584cb9fbd71df3464008ad1","target":{"file":"lib/vssh/libssh.c","function":"myssh_is_known"},"signature_version":"v1","signature_type":"Function","deprecated":false,"id":"CURL-CVE-2026-9547-e5ddacc0","digest":{"function_hash":"171591672620915120098914005398439744356","length":4615}},{"source":"https://github.com/curl/curl.git/commit/0b8dbbc63c98777e4584cb9fbd71df3464008ad1","target":{"file":"lib/vssh/libssh.c"},"signature_version":"v1","signature_type":"Line","deprecated":false,"id":"CURL-CVE-2026-9547-ffd5c5b3","digest":{"threshold":0.9,"line_hashes":["19522727956082994505377891717732253881","17505745399782688697084999810884215111","65466782891270922555303879365870593631","39998244195617753293703183793609467932"]}}]}}],"schema_version":"1.7.5","credits":[{"name":"Joshua Rogers (Aisle Research)","type":"FINDER"},{"name":"Joshua Rogers (Aisle Research)","type":"REMEDIATION_DEVELOPER"}]}