# curl 8.17.0 - Product: curl (https://whatsnew.fyi/product/curl) - Vendor: curl - Date: 2025-11-05 - Version: 8.17.0 - Original notes: https://curl.se/ch/8.17.0.html - Permalink: https://whatsnew.fyi/product/curl/releases/8.17.0 - Labels: Platforms: Desktop What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **removed** — Drop Heimdal support - **removed** — Drop the winbuild build system - **removed** — Drop support for Kerberos FTP - **changed** — Increase libssh2 minimum requirement to 1.9.0 - **added** — Add notifications API to multi interface - **changed** — Expand progress display to use 6 characters per size - **added** — Support Apple SecTrust configurations for SSL - **added** — Add --knownhosts option - **removed** — Drop support for wolfSSH - **added** — Make %header{} able to output all occurrences of a header in write-out - **fixed** — Fix leak in ares tracing - **fixed** — Use the duped hostname pointer for all calls in asyn-ares - **fixed** — Clear timeout when done in asyn-thrdd resolver - **fixed** — When resolving failed, persist error in c-ares - **fixed** — Accept zero length argument to base64_encode - **fixed** — Re-enable large read-ahead with aws-lc v1.61.0 - **fixed** — Set FD_CLOEXEC on all sockets opened in cf-socket - **fixed** — Fix hostname move on connection reuse - **fixed** — Prevent integer overflow in maxconnects calculation - **fixed** — Make default CURLOPT_MAXLIFETIME_CONN 24 hours curl / Docs / Releases / Changes in 8.17.0 Related: Daily Snapshots Source repo Release log Pending Release 🠰 8.16.0 all changes 8.18.0 🠲 #### Changes in 8.17.0 - November 5 2025 8.17.0 8.17.0 Changes: - build: drop Heimdal support - build: drop the winbuild build system - krb5: drop support for Kerberos FTP - libssh2: up the minimum requirement to 1.9.0 - multi: add notifications API - progress: expand to use 6 characters per size - ssl: support Apple SecTrust configurations - tool_getparam: add --knownhosts - vssh: drop support for wolfSSH - wcurl: import v2025.11.04 - write-out: make %header{} able to output *all* occurrences of a header Bugfixes: - ares: fix leak in tracing - asyn-ares: remove wrong comment about the callback argument - asyn-ares: use the duped hostname pointer for all calls - asyn-thrdd resolver: clear timeout when done - asyn-thrdd: drop pthread_cancel - autotools: add support for libgsasl auto-detection via pkg-config - autotools: capitalize Rustls in the log output - autotools: drop detection of ancient OpenSSL libs RSAglue and rsaref - autotools: fix duplicate UNIX and BSD flags in buildinfo.txt - autotools: fix silly mistake in clang detection for buildinfo.txt - autotools: make --enable-code-coverage support llvm/clang - autotools: merge `if`s in GnuTLS/OpenSSL feature detection - aws-lc: re-enable large read-ahead with v1.61.0 again - base64: accept zero length argument to base64_encode - build: address some -Weverything warnings, update picky warnings - build: avoid overriding system open and stat symbols - build: avoid overriding system symbols for fopen functions - build: avoid overriding system symbols for socket functions - build: show llvm/clang in platform flags and buildinfo.txt - c-ares: when resolving failed, persist error - cf-h2-proxy: break loop on edge case - cf-ip-happy: mention unix domain path, not port number - cf-socket: always check Curl_cf_socket_peek() return code - cf-socket: check params and remove accept procondition - cf-socket: make set_local_ip void, and remove failf() - cf-socket: set FD_CLOEXEC on all sockets opened - cf-socket: tweak a memcpy() to read better - cf-socket: use the right byte order for ports in bindlocal - cfilter: unlink and discard - cfilters: check return code from Curl_pollset_set_out_only() - checksrc: allow disabling warnings on FIXME/TODO comments - checksrc: catch banned functions when preceded by ( - checksrc: fix possible endless loop when detecting BANNEDFUNC - checksrc: fix possible endless loops in the banned function logic - checksrc: fix to handle ) predecing a banned function - checksrc: reduce directory-specific exceptions - CI.md: refresh - cmake/FindGSS: dedupe pkg-config module strings - cmake/FindGSS: drop wrong header check for GNU GSS - cmake/FindGSS: fix pkg-config fallback logic for CMake <3.16 - cmake/FindGSS: simplify/de-dupe lib setup - cmake/FindGSS: whitespace/formatting - cmake: add and use local FindGnuTLS module - cmake: add CURL_CODE_COVERAGE option - cmake: build the "all" examples source list dynamically - cmake: clang detection tidy-ups - cmake: drop exclamation in comment looking like a name - cmake: fix `HAVE_GNUTLS_SRP` detection after adding local FindGnuTLS module - cmake: fix building docs when the base directory contains .3 - cmake: fix Linux pre-fill `HAVE_POSIX_STRERROR_R` (when `_CURL_PREFILL=ON`) - cmake: fix Linux pre-fills for non-glibc (when `_CURL_PREFILL=ON`) - cmake: minor Heimdal flavour detection fix - cmake: pre-fill three more type sizes on Windows - cmake: say 'absolute path' in option descriptions and docs - cmake: support building some complicated examples, build them in CI - cmake: use modern alternatives for get_filename_component() - cmake: use more COMPILER_OPTIONS, LINK_OPTIONS / LINK_FLAGS - cmdline-docs: extended, clarified, refreshed - cmdline-opts/_PROGRESS.md: explain the suffixes - configure: add "-mt" for pthread support on HP-UX - conn: fix hostname move on connection reuse - co _[Truncated at 4000 characters — full notes: https://curl.se/ch/8.17.0.html]_