public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/cpp-httplib] epel10: Update to 0.47.0 (rhbz#2481109, CVE-2026-46527, CVE-2026-45372, CVE-2026-45352)
@ 2026-06-24 16:48
0 siblings, 0 replies; only message in thread
From: @ 2026-06-24 16:48 UTC (permalink / raw)
To: git-commits
A new commit has been pushed.
Repo : rpms/cpp-httplib
Branch : epel10
Commit : f0825934b2b298840de2d4e26fce396e419206d5
Author : Petr Menšík <pemensik@redhat.com>
Date : 2026-06-24T12:19:18+02:00
Stats : +2/-2 in 2 file(s)
URL : https://src.fedoraproject.org/rpms/cpp-httplib/c/f0825934b2b298840de2d4e26fce396e419206d5?branch=epel10
Log:
Update to 0.47.0 (rhbz#2481109, CVE-2026-46527, CVE-2026-45372, CVE-2026-45352)
Security fixes
Fix TLS certificate chain verification bypass for IP-literal hosts on the Mbed TLS and wolfSSL backends: with server certificate verification enabled, SSLClient skipped chain validation entirely (any untrusted certificate with a matching IP SAN was accepted), and WebSocketClient on Mbed TLS skipped verification altogether. Chain verification now stays enabled for IP hosts, and certificate identity is verified post-handshake against IP SANs on all backends. SNI is no longer sent for IP hosts on Mbed TLS and wolfSSL, per RFC 6066
New features
Add Server::set_start_handler(): a callback invoked when the server is ready to accept connections, useful when running the server in a background thread (#2467)
Add Client/SSLClient/WebSocketClient::enable_system_ca(bool) to opt into loading system CA certificates alongside a custom CA. The default is unchanged: a custom CA remains exclusive. The setting carries over to clients created for HTTPS redirects (#2471)
Add WebSocketClient::set_hostname_addr_map() to connect to a specific IP address while keeping the original hostname for the handshake and certificate verification (#2463)
Behavior changes
The request body is now read after route matching and the pre-request handler, so both the regular handler and ContentReader paths behave the same: route matching → pre-request handler → body read → handler. A request rejected by the pre-request handler (e.g. failed per-route authentication via req.matched_route) no longer buffers the body at all. Note: code that referenced req.body or body-derived form fields inside the pre-request handler will now see an empty body; inspect headers, path, query parameters, or matched_route instead
WebSocketClient with a custom CA no longer merges system CA certificates (it previously always merged them). This matches SSLClient behavior; call enable_system_ca(true) to load system CA certificates alongside the custom CA
Range request headers are now ignored for streaming responses of unknown length instead of producing an invalid response (#2465)
Bug fixes
Fix SSLClient::set_ca_cert_store() breaking custom-CA exclusivity: system CA certificates were silently merged into the user-provided store, broadening the trust set. Also fix Client::load_ca_cert_store() not carrying CA certificates over to clients created for HTTPS redirects
Fix WebSocketClient dropping the query string from the URL during the upgrade handshake, so query parameters (e.g. auth tokens) are sent (#2468)
Fix a use-after-free when reconnecting a WebSocketClient after set_ca_cert_store(), and a memory leak in the Mbed TLS and wolfSSL set_ca_cert_store() backends
Fix MSVC warning C4309 (truncation of constant value) in SHA padding code (#2464)
Cast to unsigned char before ctype calls in is_hex and is_token_char to avoid undefined behavior with negative char values (#2469)
Source: https://github.com/yhirose/cpp-httplib/releases/tag/v0.47.0
Bug fixes
Fix Expect: 100-continue over TLS: the client decided whether to withhold the request body based on raw socket readability, but post-handshake TLS 1.3 records (e.g. session tickets) make the socket readable without any HTTP response, causing the body to be withheld and the request to fail with Failed to read connection. The client now decides by attempting to read the status line within the 100-continue timeout, and sends the body if none arrives (matching curl) (#2458, #2460)
Fix -Wmissing-field-initializers warnings on Windows by using {} instead of {0} for OVERLAPPED and ADDRINFOEXW initialization (#2459)
Source: https://github.com/yhirose/cpp-httplib/releases/tag/v0.46.1
Security
Fix proxy digest credential leak when an HTTPS origin returns 407 inside a CONNECT tunnel. The 401/407 retry is now gated on the response actually coming from a proxy hop (#2457)
New features
Add Client::set_no_proxy() for per-host proxy bypass. Accepts *, hostname suffix (dot-boundary rule), IPv4/IPv6 CIDR, and bare IP literals. Proxy-Authorization is suppressed for bypassed hosts, including across redirects (#2446, #2448)
Source: https://github.com/yhirose/cpp-httplib/releases/tag/v0.46.0
Bug fixes
Fix iOS build break caused by TARGET_OS_MAC being true on all Apple platforms (iOS, tvOS, watchOS). The Keychain enumeration path and Security.h include guards are now narrowed to TARGET_OS_OSX, and defining CPPHTTPLIB_USE_CERTS_FROM_MACOSX_KEYCHAIN on a non-macOS Apple platform now emits an explicit #error directing users to set_ca_cert_path() with a bundled CA file. Addresses #2454 (#2455)
Fix zstd detection in the installed httplibConfig.cmake so downstream projects that depend on the installed package correctly pick up zstd (#2453)
Improvements
Replace the deprecated SecTrustCopyAnchorCertificates (deprecated in macOS 13) with SecTrustSettingsCopyCertificates, iterating over the System, Admin, and User trust domains to retain equivalent anchor-certificate coverage (#2455)
Declare Server::stop() as noexcept, reflecting that the implementation does not throw (#2451)
CI / Internal
Add a best-effort BoringSSL CI job (Ubuntu and macOS) that builds BoringSSL from source and exercises cpp-httplib's existing OpenSSL backend path. SSLClientServerTest.TlsVerifyHostname is now backend-aware (BoringSSL is SAN-only per RFC 6125 §6.4.4), and the README notes BoringSSL as a best-effort variant with the C++14 and SAN-only caveats (#2456)
Add an iOS header parse check to CI to catch accidental use of macOS-only APIs or guards (e.g. TARGET_OS_MAC vs TARGET_OS_OSX) that would silently break iOS builds (#2455)
Source: https://github.com/yhirose/cpp-httplib/releases/tag/v0.45.1
---
diff --git a/cpp-httplib.spec b/cpp-httplib.spec
index d8ff192..d75ea00 100644
--- a/cpp-httplib.spec
+++ b/cpp-httplib.spec
@@ -18,7 +18,7 @@
%endif
Name: cpp-httplib
-Version: 0.38.0
+Version: 0.47.0
%forgemeta
Release: %autorelease
diff --git a/sources b/sources
index 0e7f0ee..639925f 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (cpp-httplib-0.38.0.tar.gz) = d8dfd5a447db4d6eb2a92c498af18cb3bf999ed43ef9a9552a8781f9c23597a3d178d2a15f5fa0afb68f2ec278080e6d4808cef5cfa68a8ed5f0c57b42bdbee7
+SHA512 (cpp-httplib-0.47.0.tar.gz) = dffde14997beef8b6f35f985d0865b2679f133a79a626df1d915c445b63108ef326becd31475751c78d02a1563ef0cff48ff646e47591e2e479b3bbc57d65d2d
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2026-06-24 16:48 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-06-24 16:48 [rpms/cpp-httplib] epel10: Update to 0.47.0 (rhbz#2481109, CVE-2026-46527, CVE-2026-45372, CVE-2026-45352)
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox