diff --git a/config/rootfiles/common/curl b/config/rootfiles/common/curl
index 4559aaaa8..362e047e2 100644
--- a/config/rootfiles/common/curl
+++ b/config/rootfiles/common/curl
@@ -19,7 +19,6 @@ usr/lib/libcurl.so.4
 usr/lib/libcurl.so.4.8.0
 #usr/lib/pkgconfig/libcurl.pc
 #usr/share/aclocal/libcurl.m4
-#usr/share/man/man1/curl-config.1
 #usr/share/man/man1/curl.1
 #usr/share/man/man3/CURLINFO_ACTIVESOCKET.3
 #usr/share/man/man3/CURLINFO_APPCONNECT_TIME.3
@@ -30,6 +29,7 @@ usr/lib/libcurl.so.4.8.0
 #usr/share/man/man3/CURLINFO_CONDITION_UNMET.3
 #usr/share/man/man3/CURLINFO_CONNECT_TIME.3
 #usr/share/man/man3/CURLINFO_CONNECT_TIME_T.3
+#usr/share/man/man3/CURLINFO_CONN_ID.3
 #usr/share/man/man3/CURLINFO_CONTENT_LENGTH_DOWNLOAD.3
 #usr/share/man/man3/CURLINFO_CONTENT_LENGTH_DOWNLOAD_T.3
 #usr/share/man/man3/CURLINFO_CONTENT_LENGTH_UPLOAD.3
@@ -61,6 +61,7 @@ usr/lib/libcurl.so.4.8.0
 #usr/share/man/man3/CURLINFO_PROXYAUTH_AVAIL.3
 #usr/share/man/man3/CURLINFO_PROXY_ERROR.3
 #usr/share/man/man3/CURLINFO_PROXY_SSL_VERIFYRESULT.3
+#usr/share/man/man3/CURLINFO_QUEUE_TIME_T.3
 #usr/share/man/man3/CURLINFO_REDIRECT_COUNT.3
 #usr/share/man/man3/CURLINFO_REDIRECT_TIME.3
 #usr/share/man/man3/CURLINFO_REDIRECT_TIME_T.3
@@ -90,6 +91,8 @@ usr/lib/libcurl.so.4.8.0
 #usr/share/man/man3/CURLINFO_TLS_SSL_PTR.3
 #usr/share/man/man3/CURLINFO_TOTAL_TIME.3
 #usr/share/man/man3/CURLINFO_TOTAL_TIME_T.3
+#usr/share/man/man3/CURLINFO_USED_PROXY.3
+#usr/share/man/man3/CURLINFO_XFER_ID.3
 #usr/share/man/man3/CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE.3
 #usr/share/man/man3/CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE.3
 #usr/share/man/man3/CURLMOPT_MAXCONNECTS.3
@@ -159,6 +162,7 @@ usr/lib/libcurl.so.4.8.0
 #usr/share/man/man3/CURLOPT_DOH_SSL_VERIFYPEER.3
 #usr/share/man/man3/CURLOPT_DOH_SSL_VERIFYSTATUS.3
 #usr/share/man/man3/CURLOPT_DOH_URL.3
+#usr/share/man/man3/CURLOPT_ECH.3
 #usr/share/man/man3/CURLOPT_EGDSOCKET.3
 #usr/share/man/man3/CURLOPT_ERRORBUFFER.3
 #usr/share/man/man3/CURLOPT_EXPECT_100_TIMEOUT_MS.3
@@ -301,6 +305,7 @@ usr/lib/libcurl.so.4.8.0
 #usr/share/man/man3/CURLOPT_PROXY_TLSAUTH_USERNAME.3
 #usr/share/man/man3/CURLOPT_PROXY_TRANSFER_MODE.3
 #usr/share/man/man3/CURLOPT_PUT.3
+#usr/share/man/man3/CURLOPT_QUICK_EXIT.3
 #usr/share/man/man3/CURLOPT_QUOTE.3
 #usr/share/man/man3/CURLOPT_RANDOM_FILE.3
 #usr/share/man/man3/CURLOPT_RANGE.3
@@ -326,6 +331,7 @@ usr/lib/libcurl.so.4.8.0
 #usr/share/man/man3/CURLOPT_SEEKDATA.3
 #usr/share/man/man3/CURLOPT_SEEKFUNCTION.3
 #usr/share/man/man3/CURLOPT_SERVER_RESPONSE_TIMEOUT.3
+#usr/share/man/man3/CURLOPT_SERVER_RESPONSE_TIMEOUT_MS.3
 #usr/share/man/man3/CURLOPT_SERVICE_NAME.3
 #usr/share/man/man3/CURLOPT_SHARE.3
 #usr/share/man/man3/CURLOPT_SOCKOPTDATA.3
@@ -335,6 +341,8 @@ usr/lib/libcurl.so.4.8.0
 #usr/share/man/man3/CURLOPT_SOCKS5_GSSAPI_SERVICE.3
 #usr/share/man/man3/CURLOPT_SSH_AUTH_TYPES.3
 #usr/share/man/man3/CURLOPT_SSH_COMPRESSION.3
+#usr/share/man/man3/CURLOPT_SSH_HOSTKEYDATA.3
+#usr/share/man/man3/CURLOPT_SSH_HOSTKEYFUNCTION.3
 #usr/share/man/man3/CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.3
 #usr/share/man/man3/CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256.3
 #usr/share/man/man3/CURLOPT_SSH_KEYDATA.3
@@ -442,6 +450,7 @@ usr/lib/libcurl.so.4.8.0
 #usr/share/man/man3/curl_global_init.3
 #usr/share/man/man3/curl_global_init_mem.3
 #usr/share/man/man3/curl_global_sslset.3
+#usr/share/man/man3/curl_global_trace.3
 #usr/share/man/man3/curl_mime_addpart.3
 #usr/share/man/man3/curl_mime_data.3
 #usr/share/man/man3/curl_mime_data_cb.3
@@ -459,6 +468,7 @@ usr/lib/libcurl.so.4.8.0
 #usr/share/man/man3/curl_multi_assign.3
 #usr/share/man/man3/curl_multi_cleanup.3
 #usr/share/man/man3/curl_multi_fdset.3
+#usr/share/man/man3/curl_multi_get_handles.3
 #usr/share/man/man3/curl_multi_info_read.3
 #usr/share/man/man3/curl_multi_init.3
 #usr/share/man/man3/curl_multi_perform.3
@@ -471,6 +481,7 @@ usr/lib/libcurl.so.4.8.0
 #usr/share/man/man3/curl_multi_strerror.3
 #usr/share/man/man3/curl_multi_timeout.3
 #usr/share/man/man3/curl_multi_wait.3
+#usr/share/man/man3/curl_multi_waitfds.3
 #usr/share/man/man3/curl_multi_wakeup.3
 #usr/share/man/man3/curl_pushheader_byname.3
 #usr/share/man/man3/curl_pushheader_bynum.3
@@ -495,6 +506,7 @@ usr/lib/libcurl.so.4.8.0
 #usr/share/man/man3/curl_ws_recv.3
 #usr/share/man/man3/curl_ws_send.3
 #usr/share/man/man3/libcurl-easy.3
+#usr/share/man/man3/libcurl-env-dbg.3
 #usr/share/man/man3/libcurl-env.3
 #usr/share/man/man3/libcurl-errors.3
 #usr/share/man/man3/libcurl-multi.3
diff --git a/lfs/curl b/lfs/curl
index a4fa21b1c..edb9a8201 100644
--- a/lfs/curl
+++ b/lfs/curl
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2023  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2024  IPFire Team  <info@ipfire.org>                     #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 8.2.1
+VER        = 8.8.0
 
 THISAPP    = curl-$(VER)
 DL_FILE    = $(THISAPP).tar.xz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_BLAKE2 = 77c0b067935397afb3961378f2fe349fa988c6379c1ab7437c5d5f967710b2e9ba7aec91df8fe58a8b26c00c0164d4db9bd095ca27d1bf52b768c8d83cc0ecaf
+$(DL_FILE)_BLAKE2 = c14903bad4cbd1752a5335afa6bcc78be1a484692fce0e0a6c2061963e0e6b4e56defb8332cef32d0dbddb481ad0443b71faf3a52a6e9d945c89ecbce373d2a3
 
 install : $(TARGET)
 
@@ -70,7 +70,6 @@ $(subst %,%_BLAKE2,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
 	@$(PREBUILD)
 	@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar xf $(DIR_DL)/$(DL_FILE)
-	cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/curl-8.4.0-fb4415d8aee6c1045be932a34fe6107c2f5ed147.patch
 	cd $(DIR_APP) && ./configure \
 		--prefix=/usr \
 		--disable-ipv6 \
diff --git a/src/patches/curl-8.4.0-fb4415d8aee6c1045be932a34fe6107c2f5ed147.patch b/src/patches/curl-8.4.0-fb4415d8aee6c1045be932a34fe6107c2f5ed147.patch
deleted file mode 100644
index 0de35055f..000000000
--- a/src/patches/curl-8.4.0-fb4415d8aee6c1045be932a34fe6107c2f5ed147.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From fb4415d8aee6c1045be932a34fe6107c2f5ed147 Mon Sep 17 00:00:00 2001
-From: Jay Satiro <raysatiro@yahoo.com>
-Date: Wed, 11 Oct 2023 07:34:19 +0200
-Subject: [PATCH] socks: return error if hostname too long for remote resolve
-
-Prior to this change the state machine attempted to change the remote
-resolve to a local resolve if the hostname was longer than 255
-characters. Unfortunately that did not work as intended and caused a
-security issue.
-
-Bug: https://curl.se/docs/CVE-2023-38545.html
-
-diff --git a/lib/socks.c b/lib/socks.c
-index c492d663c4738..a7b5ab07e47d0 100644
---- a/lib/socks.c
-+++ b/lib/socks.c
-@@ -587,9 +587,9 @@ static CURLproxycode do_SOCKS5(struct Curl_cfilter *cf,
- 
-     /* RFC1928 chapter 5 specifies max 255 chars for domain name in packet */
-     if(!socks5_resolve_local && hostname_len > 255) {
--      infof(data, "SOCKS5: server resolving disabled for hostnames of "
--            "length > 255 [actual len=%zu]", hostname_len);
--      socks5_resolve_local = TRUE;
-+      failf(data, "SOCKS5: the destination hostname is too long to be "
-+            "resolved remotely by the proxy.");
-+      return CURLPX_LONG_HOSTNAME;
-     }
- 
-     if(auth & ~(CURLAUTH_BASIC | CURLAUTH_GSSAPI))
-@@ -903,7 +903,7 @@ static CURLproxycode do_SOCKS5(struct Curl_cfilter *cf,
-       }
-       else {
-         socksreq[len++] = 3;
--        socksreq[len++] = (char) hostname_len; /* one byte address length */
-+        socksreq[len++] = (unsigned char) hostname_len; /* one byte length */
-         memcpy(&socksreq[len], sx->hostname, hostname_len); /* w/o NULL */
-         len += hostname_len;
-       }
