{"id":"CVE-2026-12064","summary":"proto-default skips SSH verification","details":"When a user invokes curl using a schemeless URL combined with\n`--proto-default` sftp (or scp), a disconnect occurs between the tool layer\nand libcurl. The tool layer incorrectly infers the URL scheme, which\nerroneously bypasses the initialization of critical SSH security options like\nCURLOPT_SSH_HOST_PUBLIC_KEY_SHA256 and CURLOPT_SSH_KNOWNHOSTS. Conversely, the\nlibcurl runtime successfully honors CURLOPT_DEFAULT_PROTOCOL and establishes\nthe connection via SFTP/SCP as specified. Because the tool layer skipped the\nsecurity configuration, these SSH host verification options are silently\nomitted, causing curl to connect to an unverified SSH remote host without\nthrowing an error.","aliases":["CURL-CVE-2026-12064"],"modified":"2026-11-03T22:56:57.579130005Z","published":"2026-07-03T06:13:55.302Z","related":["SUSE-SU-2026:22553-1","SUSE-SU-2026:22582-1","SUSE-SU-2026:22709-1","SUSE-SU-2026:22889-1","SUSE-SU-2026:2925-1","SUSE-SU-2026:2926-1","SUSE-SU-2026:3043-1","SUSE-SU-2026:5068-1","SUSE-SU-2026:5069-1","SUSE-SU-2026:5071-1","openSUSE-SU-2026:11230-1","openSUSE-SU-2026:21272-1"],"database_specific":{"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/12xxx/CVE-2026-12064.json","cna_assigner":"curl","cwe_ids":["CWE-297"]},"references":[{"type":"WEB","url":"https://curl.se/docs/CVE-2026-12064.html"},{"type":"WEB","url":"https://curl.se/docs/CVE-2026-12064.json"},{"type":"WEB","url":"https://hackerone.com/reports/3797526"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/12xxx/CVE-2026-12064.json"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-12064"},{"type":"PACKAGE","url":"https://github.com/curl/curl.git"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/curl/curl","events":[{"introduced":"801bd5138ce31aa0d906fa4e2eabfc599d74e793"},{"fixed":"68720b4837284335b2d63cb358f8f6ce65f5bc55"}],"database_specific":{"extracted_events":[{"range":[{"introduced":"7.81.0"},{"fixed":"8.21.0"}],"source":"CPE_RANGE","cpe":"cpe:2.3:a:haxx:curl:*:*:*:*:*:*:*:*"}]}},{"type":"GIT","repo":"https://github.com/curl/curl.git","events":[{"introduced":"18270893abdb19f0ca170c118f8a2847dbd304be"},{"fixed":"ab3bb8cd8be8f9d4acb97da0418abc279182041e"}],"database_specific":{"extracted_events":[{"strategy":"StandardRange","range":[{"introduced":"18270893abdb19f0ca170c118f8a2847dbd304be"},{"fixed":"ab3bb8cd8be8f9d4acb97da0418abc279182041e"}],"source":"AFFECTED_FIELD"}]}}],"versions":["7.81.0","7.82.0","7.83.0","7.83.1","7.84.0","7.85.0","7.86.0","7.87.0","7.88.0","7.88.1","8.0.0","8.0.1","8.1.0","8.1.1","8.1.2","8.10.0","8.10.1","8.11.0","8.11.1","8.12.0","8.12.1","8.13.0","8.14.0","8.14.1","8.15.0","8.16.0","8.17.0","8.18.0","8.19.0","8.2.0","8.2.1","8.20.0","8.3.0","8.4.0","8.5.0","8.6.0","8.7.0","8.7.1","8.8.0","8.9.0","8.9.1","rc-8_21_0-3","rc-8_21_0-2","rc-8_21_0-1","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","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"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-12064.json","vanir_signatures":[{"id":"CVE-2026-12064-b3eb1e8d","signature_type":"Function","signature_version":"v1","source":"https://github.com/curl/curl.git/commit/ab3bb8cd8be8f9d4acb97da0418abc279182041e","target":{"file":"src/config2setopts.c","function":"url_proto_and_rewrite"},"deprecated":false,"digest":{"length":1136,"function_hash":"93882114240828177653085948016490702110"}},{"deprecated":false,"digest":{"threshold":0.9,"line_hashes":["140522849194369262228739833591374391075","47558339863403131453033268292745221021","15975670465097192282932354355781322912","220902106392793621708295317072227537429","198975573407202876764184453290488326371","3746734021152446245522935287251443430","170664250380509585141008070840604764918","161765996811876613295849122885315630101","5374207038386086385366965339124772674","261071834960052502162471400348777792193","315214669734780166251393141450779423952","11348971201187702211989874254882715935","304598240625625498609896974683940486911","176332074864481965282682475802544330239","61413842227513765548216582872062936189","152095212190975018695576316498032629201","12824638474895083873042971640073707981","147131897269297204095220721174340290043","201687314332511709623400018059706721695","304787371272254069598680308305763126609","293436386607034365026241199574672026404","169057705388842471260387887033403810014","136995815859804498330318491255401917183","48843095567586818894551844502984755450","119204995110705058858166647734024530825"]},"id":"CVE-2026-12064-d5619c82","signature_type":"Line","signature_version":"v1","source":"https://github.com/curl/curl.git/commit/ab3bb8cd8be8f9d4acb97da0418abc279182041e","target":{"file":"src/config2setopts.c"}}],"vanir_signatures_modified":"2026-10-28T11:03:07Z"}}],"schema_version":"1.9.2","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"}]}