CURL-CVE-2026-87865

Source
https://curl.se/docs/CVE-2026-87865.html
Import Source
https://curl.se/docs/CURL-CVE-2026-87865.json
JSON Data
https://api.osv.dev/v1/vulns/CURL-CVE-2026-87865
Aliases
  • CVE-2026-87865
Published
2026-10-14T08:00:00Z
Modified
2026-10-14T19:02:59Z
Summary
knownhost callback mismatches key as missing
Details

When libcurl uses libssh2 with a hashed known_hosts file, an unrelated initial entry can cause host key validation to report a key mismatch as a missing key to the CURLOPT_SSH_KEYFUNCTION callback.

Database specific
{
    "CWE":  {
        "desc":  "Improper Certificate Validation",
        "id":  "CWE-295"
    },
    "URL":  "https://curl.se/docs/CVE-2026-87865.json",
    "affects":  "both",
    "issue":  "https://hackerone.com/reports/3975408",
    "last_affected":  "8.22.0",
    "package":  "curl",
    "severity":  "Low",
    "www":  "https://curl.se/docs/CVE-2026-87865.html"
}
Credits
    • Bobbeh Rhino - FINDER
    • Bobbeh Rhino - REMEDIATION_DEVELOPER

Affected packages

Git / github.com/curl/curl.git

Affected ranges

Type
SEMVER
Events
Introduced
7.69.1
Fixed
8.14.3
Introduced
8.15.0
Fixed
8.16.2
Introduced
8.17.0
Fixed
8.20.2
Introduced
8.21.0
Fixed
8.23.0
Type
GIT
Repo
https://github.com/curl/curl.git
Events

Affected versions

7.*
7.69.1
7.70.0
7.71.0
7.71.1
7.72.0
7.73.0
7.74.0
7.75.0
7.76.0
7.76.1
7.77.0
7.78.0
7.79.0
7.79.1
7.80.0
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.*
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.21.0
8.22.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
Other
curl-7_69_1
curl-7_70_0
curl-7_71_0
curl-7_71_1
curl-7_72_0
curl-7_73_0
curl-7_74_0
curl-7_75_0
curl-7_76_0
curl-7_76_1
curl-7_77_0
curl-7_78_0
curl-7_79_0
curl-7_79_1
curl-7_80_0
curl-7_81_0
curl-7_82_0
curl-7_83_0
curl-7_83_1
curl-7_84_0
curl-7_85_0
curl-7_86_0
curl-7_87_0
curl-7_88_0
curl-7_88_1
curl-8_0_0
curl-8_0_1
curl-8_10_0
curl-8_10_1
curl-8_11_0
curl-8_11_1
curl-8_12_0
curl-8_12_1
curl-8_13_0
curl-8_14_0
curl-8_14_1
curl-8_15_0
curl-8_16_0
curl-8_17_0
curl-8_18_0
curl-8_19_0
curl-8_1_0
curl-8_1_1
curl-8_1_2
curl-8_20_0
curl-8_21_0
curl-8_22_0
curl-8_2_0
curl-8_2_1
curl-8_3_0
curl-8_4_0
curl-8_5_0
curl-8_6_0
curl-8_7_0
curl-8_7_1
curl-8_8_0
curl-8_9_0
curl-8_9_1
rc-8_18_0-1
rc-8_18_0-2
rc-8_18_0-3
rc-8_19_0-1
rc-8_19_0-2
rc-8_19_0-3
rc-8_20_0-1
rc-8_20_0-2
rc-8_20_0-3
rc-8_21_0-1
rc-8_21_0-2
rc-8_21_0-3
rc-8_22_0-1
rc-8_22_0-2
rc-8_22_0-3
tiny-curl-7_72_0
tiny-curl-8_4_0

Database specific

source
"https://curl.se/docs/CURL-CVE-2026-87865.json"
vanir_signatures
[
    {
        "deprecated":  false,
        "digest":  {
            "line_hashes":  [
                "5702662798046728584313952421750973160",
                "202534345375092530488621442962458175438",
                "263912510949158082883963750255407488814",
                "205112045761851138696299861521993606695",
                "37685542541009928423447540252806687242",
                "75407180318704451699303769443305508093"
            ],
            "threshold":  0.9
        },
        "id":  "CURL-CVE-2026-87865-683de849",
        "signature_type":  "Line",
        "signature_version":  "v1",
        "source":  "https://github.com/curl/curl.git/commit/323c184b6bdf5b1988a10c0a61560666e1588149",
        "target":  {
            "file":  "lib/vssh/libssh2.c"
        }
    },
    {
        "deprecated":  false,
        "digest":  {
            "function_hash":  "50640757737372994581328470495395855929",
            "length":  2789
        },
        "id":  "CURL-CVE-2026-87865-91a95df3",
        "signature_type":  "Function",
        "signature_version":  "v1",
        "source":  "https://github.com/curl/curl.git/commit/323c184b6bdf5b1988a10c0a61560666e1588149",
        "target":  {
            "file":  "lib/vssh/libssh2.c",
            "function":  "ssh_force_knownhost_key_type"
        }
    }
]
vanir_signatures_modified
"2026-10-14T19:02:59Z"