summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2021-08-19 18:12:56 +0200
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2021-08-24 13:04:08 +0200
commit4d8fd88b9641fce81272f60f556543f713175403 (patch)
treede0d25c9dbf9b3571fccf0883d92340678c3c4e8
parent08c7dfd68e9d79edf4e9cfe405d7f234bcd12324 (diff)
downloadsystemd-249.4.tar.gz
import: turn off weird protocols in curlv249.4
Let's lock things down a bit and now allow curl's weirder protocols to be used with our use. i.e. stick to http:// + https:// + file:// and turn everything else off. (Gopher!) This is cde that interfaces with the network after all, and we better shouldn't support protocols needlessly that are much less tested. (Given that HTTP redirects (and other redirects) exist, this should give us a security benefit, since we will then be sure that noone can forward us to a weird protocol, which we never tested, and other people test neither) (cherry picked from commit 55b90ee00b78a449c8f187a5e8141f8ccb100bf4)
-rw-r--r--src/import/curl-util.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/import/curl-util.c b/src/import/curl-util.c
index ed2ac0a654..d6a16b4f57 100644
--- a/src/import/curl-util.c
+++ b/src/import/curl-util.c
@@ -256,6 +256,9 @@ int curl_glue_make(CURL **ret, const char *url, void *userdata) {
if (curl_easy_setopt(c, CURLOPT_LOW_SPEED_LIMIT, 30L) != CURLE_OK)
return -EIO;
+ if (curl_easy_setopt(c, CURLOPT_PROTOCOLS, CURLPROTO_HTTP|CURLPROTO_HTTPS|CURLPROTO_FILE) != CURLE_OK)
+ return -EIO;
+
*ret = TAKE_PTR(c);
return 0;
}