LWN: Comments on "Fedora considers curl-minimal" https://lwn.net/Articles/887313/ This is a special feed containing comments posted to the individual LWN article titled "Fedora considers curl-minimal". en-us Thu, 09 Oct 2025 14:36:44 +0000 Thu, 09 Oct 2025 14:36:44 +0000 https://www.rssboard.org/rss-specification lwn@lwn.net Bootstrap problem https://lwn.net/Articles/897353/ https://lwn.net/Articles/897353/ paulj <div class="FormattedComment"> They are not dead. There are large companies with such setups.<br> </div> Thu, 09 Jun 2022 10:25:04 +0000 IDNs https://lwn.net/Articles/888597/ https://lwn.net/Articles/888597/ mirabilos <div class="FormattedComment"> You are missing two things.<br> <p> One, the attack surface of IDNs will be gone from cURL, which I believe is the actual point of this exercise.<br> Two, the presence or absence of IDN support can be done independent of cURL or other tools, and even be added to only a subset of system images.<br> </div> Sun, 20 Mar 2022 10:33:13 +0000 IDNs https://lwn.net/Articles/888589/ https://lwn.net/Articles/888589/ zdzichu <div class="FormattedComment"> So instead of curl being linked with libidn, you will have punyencode linked with it. libidn is still on your system. In the big picture, you have not shrinked your system image (which is the point of curl-minimal exercise).<br> </div> Sun, 20 Mar 2022 08:04:04 +0000 IDNs https://lwn.net/Articles/888584/ https://lwn.net/Articles/888584/ mirabilos <div class="FormattedComment"> Instead of having tools automatically support IDNs, with the exception of GUI tools that directly take typed user input (and even there, different solutions might be better), I’d rather have a CLI tool to punyencode things which you can then call like: curl http://$(punyencode &quot;$domain&quot;)/path/file<br> </div> Sun, 20 Mar 2022 05:29:57 +0000 Fedora considers curl-minimal https://lwn.net/Articles/888474/ https://lwn.net/Articles/888474/ cypherpunks2 <div class="FormattedComment"> The security argument is that the protocol implementations may have security vulnerabilities, not that the protocols themselves are not secure by design. FTP is insecure in that it is unencrypted and poorly authenticated, but it is not (necessarily) insecure in that it&#x27;s easy to find an RCE in the code.<br> </div> Sat, 19 Mar 2022 01:23:34 +0000 Fedora considers curl-minimal https://lwn.net/Articles/887928/ https://lwn.net/Articles/887928/ amacater <div class="FormattedComment"> Curl is the &quot;Oh dear, if that&#x27;s the recommended way to get components for [Kubernetes/Open Stack/any other popular program], it&#x27;s bound to be a world of hurt putting it all together&quot; moment for me.<br> <p> Maybe I&#x27;ve been insulated by living with distributions for too long but it&#x27;s also very much a &quot;don&#x27;t trust anything that asks you to curl/wget stuff from random &#x27;Net addresses&quot; syndrome, I&#x27;m afraid.<br> </div> Tue, 15 Mar 2022 15:11:37 +0000 Fedora considers curl-minimal https://lwn.net/Articles/887866/ https://lwn.net/Articles/887866/ Paf <div class="FormattedComment"> Given curls use in scripts and other tools used in installers, etc, I feel comfortable saying the user survey is massively *unrepresentative* of use.<br> <p> Those interested enough in curl to take the survey are vastly more likely to use weird protocols.<br> <p> In essence we see it has two lives:<br> A basic system component which is worked in to the fabric of other things, in which role it uses HTTP, HTTPS, and FTP to get stuff from the internet<br> A Swiss army utility protocol fiddler/translator for developers and admins<br> <p> It doesn’t seem crazy these would be separate packages, given the risks posed to the (much larger) first group, and the minor burden introduced for the second group who know how to deal with it.<br> </div> Tue, 15 Mar 2022 12:29:26 +0000 Fedora considers curl-minimal https://lwn.net/Articles/887858/ https://lwn.net/Articles/887858/ Wol <div class="FormattedComment"> Interesting you mention &quot;Inform 7&quot; - especially as it was written by a Graham Nelson.<br> <p> Because one of the names of the Pick data access language was &quot;English&quot;, another was &quot;Inform&quot;. And it may have (although I don&#x27;t think so) been written by Don Nelson, one of the architects of Pick.<br> <p> (It was called English, because it is similar to English, and likewise it allows pretty complex query logic. &quot;Without gouging your eyes out&quot; as you so eloquently put it - and as I&#x27;m now finding with my SQL programming at work ...)<br> <p> Cheers,<br> Wol<br> </div> Tue, 15 Mar 2022 08:11:41 +0000 Fedora considers curl-minimal https://lwn.net/Articles/887857/ https://lwn.net/Articles/887857/ PengZheng <div class="FormattedComment"> It&#x27;s no surprise to me that the biggest user of curl is backend developer (page 4 of <a href="https://daniel.haxx.se/media/curl-user-poll-2021-analysis.pdf">https://daniel.haxx.se/media/curl-user-poll-2021-analysis...</a>). It will be a big surprise to most users (and programs using libcurl) that the &quot;swiss army knife&quot; has only 4 built-in protocols.<br> <p> A safe default setting should be enough solving the mentioned problem.<br> </div> Tue, 15 Mar 2022 08:07:58 +0000 Fedora considers curl-minimal https://lwn.net/Articles/887852/ https://lwn.net/Articles/887852/ NYKevin <div class="FormattedComment"> <font class="QuotedText">&gt; programming languages do less of that or pay a price for it.</font><br> <p> See for example Inform 7, which is specifically intended to look like English (and is therefore extremely prone to all sorts of weird parsing issues, but OTOH it has support for fairly complex English predicates, meaning you can do logic programming without gouging your eyes out).<br> </div> Tue, 15 Mar 2022 03:34:57 +0000 Fedora considers curl-minimal https://lwn.net/Articles/887844/ https://lwn.net/Articles/887844/ bagder <div class="FormattedComment"> Let me repeat myself:<br> <p> &quot;which defaults to HTTP, HTTPS, FTP and FTPS&quot;<br> </div> Mon, 14 Mar 2022 22:10:14 +0000 Fedora considers curl-minimal https://lwn.net/Articles/887833/ https://lwn.net/Articles/887833/ bagder <div class="FormattedComment"> The curl project asks its users about these things in its annual survey. While that then is self-reported it certainly isn&#x27;t an unquestionable truth, but probably the best what-features-in-curl-is-used numbers you can get.<br> <p> The 2021 survey analysis is linked to from here: <a href="https://daniel.haxx.se/blog/2021/07/05/curl-user-survey-2021/">https://daniel.haxx.se/blog/2021/07/05/curl-user-survey-2...</a><br> </div> Mon, 14 Mar 2022 18:45:12 +0000 Fedora considers curl-minimal https://lwn.net/Articles/887814/ https://lwn.net/Articles/887814/ Paf <div class="FormattedComment"> It’s just incredible to me that people seem to be arguing in favor of never deprecating *anything* by default in an internet facing program. Sure, the selected list seems too broad, possibly much too broad, but the idea that “respecting developer power” should trump anything else…. Or the repeated - in the comments here - detailed arguments about binary size, which the article and thread make clear is a non-concern…. It’s fun to have every protocol ever, sure, but if you want that it’s one package install away. One of the absolute best ways to reduce burden and improve security is *removing stuff*. Code that doesn’t exist has no bugs.<br> <p> As for the Fedora thread, the idea that everyone is going to “unbreak Fedora by installing full curl”…. No, if the protocol list is reasonable (I agree this removal is too broad), 99+% of users (including developers) will *never notice there was a change*.<br> <p> How many of you can honestly say you’ve needed curl to support something other than HTTP, HTTPS, FTP, SFTP, NTLM, brotli, and (I guess?) TFTP in the last decade? (IDN gets a pass for reasons cited in the article.) Not for fun - actually needed.<br> </div> Mon, 14 Mar 2022 15:00:52 +0000 Fedora considers curl-minimal https://lwn.net/Articles/887815/ https://lwn.net/Articles/887815/ rwmj <div class="FormattedComment"> More likely if someone installs something not in Fedora and they have curl-minimal they&#x27;ll be wondering why the package they just installed doesn&#x27;t work.<br> </div> Mon, 14 Mar 2022 14:55:41 +0000 Fedora considers curl-minimal https://lwn.net/Articles/887813/ https://lwn.net/Articles/887813/ Paf <div class="FormattedComment"> An option which no doubt is rigorously set by all users at all times. “Options” for doing the secure thing are borderline meaningless in most situations unless they’re shipped on by default.<br> </div> Mon, 14 Mar 2022 14:47:52 +0000 Fedora considers curl-minimal https://lwn.net/Articles/887812/ https://lwn.net/Articles/887812/ Paf <div class="FormattedComment"> That’s not true at all. Curl is a regular - if horrifying - component of scripts.<br> <p> And this isn’t “reducing developers power”. There’s literally going to be a “with ancient unused protocols fully intact” version *also packaged by Fedora*. For our theoretical developer, ‘fixing’ curl so it can support Gopher again is one brief command away.<br> </div> Mon, 14 Mar 2022 14:45:45 +0000 Fedora considers curl-minimal https://lwn.net/Articles/887811/ https://lwn.net/Articles/887811/ Paf <div class="FormattedComment"> We could do that if we’re “serious about security”, or, being equally serious about security, we could do this. And then if someone ever installs something that isn’t packaged by Fedora, they would *also* benefit from this change if it doesn’t use that option correctly.<br> <p> Yes, if we handle our footguns *correctly*, there’s no issue. There’s ongoing overhead and risk from their existence, but obviously, handled correctly, they’re fine. If they’re completely unnecessary - like most, though not all, of these protocols clearly are - we could also *stop shipping them by default*.<br> </div> Mon, 14 Mar 2022 14:43:37 +0000 Fedora considers curl-minimal https://lwn.net/Articles/887735/ https://lwn.net/Articles/887735/ rahulsundaram <div class="FormattedComment"> <font class="QuotedText">&gt; I love that spoken language grammar is easier to understand to us in terms of programming language syntax.</font><br> <p> Spoken language has a lot more amguity that humans can parse based on context, programming languages do less of that or pay a price for it.<br> </div> Sun, 13 Mar 2022 12:03:51 +0000 Fedora considers curl-minimal https://lwn.net/Articles/887695/ https://lwn.net/Articles/887695/ rolandog <div class="FormattedComment"> I love that spoken language grammar is easier to understand to us in terms of programming language syntax.<br> </div> Sat, 12 Mar 2022 07:44:21 +0000 Fedora considers curl-minimal https://lwn.net/Articles/887690/ https://lwn.net/Articles/887690/ PengZheng <div class="FormattedComment"> CURL is mainly used by developers (or not?). <br> It really makes no sense to reduce developers&#x27; power.<br> </div> Sat, 12 Mar 2022 04:24:17 +0000 Fedora considers curl-minimal https://lwn.net/Articles/887675/ https://lwn.net/Articles/887675/ HenrikH <div class="FormattedComment"> Add to this that curl is much easier to script for SFTP upload/download since one does not have to mess around with expect scripts and what not.<br> </div> Fri, 11 Mar 2022 18:51:04 +0000 Fedora considers curl-minimal https://lwn.net/Articles/887645/ https://lwn.net/Articles/887645/ bagder <div class="FormattedComment"> <font class="QuotedText">&gt; Even if a program is using a URL with an http scheme (i.e. protocol), the (possibly malicious) server could redirect to a different URL with a different protocol entirely, which would then invoke that code in curl if it is present</font><br> <p> That was true until curl 7.65.2, released on Jul 17 2019. Since then there&#x27;s a separate option for setting which protocols curl accepts redirects to, which defaults to HTTP, HTTPS, FTP and FTPS.<br> <p> / Daniel<br> </div> Fri, 11 Mar 2022 14:11:48 +0000 Fedora considers curl-minimal https://lwn.net/Articles/887585/ https://lwn.net/Articles/887585/ tao <div class="FormattedComment"> No. &quot;with [...] disabled&quot;<br> <p> &quot;with&quot; refers to the enumeration of items, &quot;disabled&quot; applies to that selection.<br> <p> Think of it in programming terms:<br> <p> &quot;with&quot; item in [dict, gopher, ...]; do<br> &quot;disable&quot; item<br> done<br> </div> Fri, 11 Mar 2022 13:19:39 +0000 Fedora considers curl-minimal https://lwn.net/Articles/887584/ https://lwn.net/Articles/887584/ jake <div class="FormattedComment"> <font class="QuotedText">&gt; `curl-minimal`+`libcurl-minimal` are compiled with various</font><br> <font class="QuotedText">&gt; semi-obsolete protocols and infrequently-used features disabled:</font><br> <p> the wording is a little confusing, as the &#x27;disabled&#x27; at the end is somehow easy to miss (or at least i did too at first), but the minimal versions have various protocols and features *disabled*, thus not present in those builds.<br> <p> jake<br> </div> Fri, 11 Mar 2022 13:15:42 +0000 Fedora considers curl-minimal https://lwn.net/Articles/887576/ https://lwn.net/Articles/887576/ andika <div class="FormattedComment"> I&#x27;m confused<br> <p> <a href="https://lwn.net/ml/fedora-devel/CA+voJeWtucz4WFZN6kLU2PKCkhVKy773H42kv6AvUcN=FC21sg@mail.gmail.com/">https://lwn.net/ml/fedora-devel/CA+voJeWtucz4WFZN6kLU2PKC...</a> said initially:<br> The &quot;minimal&quot; variants provide only a subset of protocols (HTTP, HTTPS, FTP).<br> <p> then later said:<br> `curl-minimal`+`libcurl-minimal` are compiled with various<br> semi-obsolete protocols and infrequently-used features disabled:<br> DICT, GOPHER, IMAP, LDAP, LDAPS, MQTT, NTLM, POP3, RTSP, SMB, SMTP,<br> SFTP, SCP, TELNET, TFTP, brotli compression, IDN2 names.<br> <p> does he really mean to say:<br> `curl-minimal`+`libcurl-minimal` are compiled **without** various<br> semi-obsolete protocols and infrequently-used features disabled:<br> DICT, GOPHER, IMAP, LDAP, LDAPS, MQTT, NTLM, POP3, RTSP, SMB, SMTP,<br> SFTP, SCP, TELNET, TFTP, brotli compression, IDN2 names.<br> <p> ?<br> </div> Fri, 11 Mar 2022 08:33:14 +0000 Fedora considers curl-minimal https://lwn.net/Articles/887575/ https://lwn.net/Articles/887575/ taladar <div class="FormattedComment"> It seems very strange to remove many protocols in active use as well as IDN &quot;for security reasons&quot; and yet leave the underspecified, unencrypted mess that is FTP in there.<br> </div> Fri, 11 Mar 2022 08:17:55 +0000 Fedora considers curl-minimal https://lwn.net/Articles/887571/ https://lwn.net/Articles/887571/ jalla <div class="FormattedComment"> MS still ships with native FTPS support, feels a bit silly to leave that one out. The rest have proper clients (like scp) that should likely be preferred instead.<br> </div> Fri, 11 Mar 2022 02:09:25 +0000 Bootstrap problem https://lwn.net/Articles/887509/ https://lwn.net/Articles/887509/ zdzichu <div class="FormattedComment"> I had such setup on one of the past workplaces. We used locally running &quot;cntlm&quot; proxy.<br> </div> Thu, 10 Mar 2022 15:55:24 +0000 Fedora considers curl-minimal https://lwn.net/Articles/887486/ https://lwn.net/Articles/887486/ smoogen <div class="FormattedComment"> The problem with auditing is the same as saying upstream should make curl modular. Someone has to step up and do the work and no one has (mainly because you then have to interact with N upstreams who may not see it as something they want to do either.) This seems to be the inevitable &#x27;ok so no one has that energy, what can we do?&#x27; compromise. <br> </div> Thu, 10 Mar 2022 14:43:01 +0000 Fedora considers curl-minimal https://lwn.net/Articles/887444/ https://lwn.net/Articles/887444/ rwmj <div class="FormattedComment"> It&#x27;s not how curl works now and curl already has an API for limiting protocols. I would suggest discussing any plans with upstream curl.<br> </div> Thu, 10 Mar 2022 11:52:44 +0000 Fedora considers curl-minimal https://lwn.net/Articles/887443/ https://lwn.net/Articles/887443/ SLi <div class="FormattedComment"> How is determining it globally worse than having the option to have either curl-minimal or curl-full installed? To me, it seems it would provide the best of both worlds, and you could also provide an API for interested clients to say &quot;I want to enable support for Gopher&quot;.<br> </div> Thu, 10 Mar 2022 11:35:50 +0000 Bootstrap problem https://lwn.net/Articles/887439/ https://lwn.net/Articles/887439/ james Are non-transparent proxies with NTLM authentication really that dead? A system behind one of them is not going to be able to dnf install anything if it can't authenticate (dnf uses libcurl). Thu, 10 Mar 2022 10:46:50 +0000 Fedora considers curl-minimal https://lwn.net/Articles/887435/ https://lwn.net/Articles/887435/ jengelh <div class="FormattedComment"> There is a limit to practicality. Some considerations:<br> <p> * Providing both curl and curl-mini variants may reduce the container by 100KB, but now you have added at least 500KB to your mirrors.<br> * Some software has so many build dependencies that, indeed, it may make sense to build a -mini variant and then another standard variant. openSUSE does that to a few select packages to cut down on overall project build time and/or reducing build cycle lengths. libcurl is not among those, because it is not nearly as dependency-heavy as e.g. systemd.<br> * xkcd.com/1172<br> * The overhead of ELF is so damn high these days. ~14 KB for an &quot;int main(){}&quot; built with standard compilers and options plus strip. Splitting libcurl into multiple component libraries hence raises the disk usage for at least one case. Your RPM/DEB database would have to process more entries perhaps (because now libcurl4 and libcurl-gopher4). ld-linux.so would have to deal with more libraries, load times getting worse. You really don&#x27;t want to end up like samba-libs either, do you!?<br> * I predict that most people will probably end up with the full curl installed for one reason or another, and the security argument gets weak.<br> * The &quot;url&quot; implementation of many a browser has probably a lot more fat than curl. If only firefox and chromium would use libcurl instead of handstrung solutions, that might, overall, be a better outcome. Don&#x27;t try to make the small smaller, make the large smaller.<br> </div> Thu, 10 Mar 2022 09:49:19 +0000 Fedora considers curl-minimal https://lwn.net/Articles/887433/ https://lwn.net/Articles/887433/ rwmj <div class="FormattedComment"> You cannot determine this list globally. There&#x27;s already a mechanism in libcurl to limit protocols that can be used (CURLOPT_PROTOCOLS). It has to be invoked by the programs linking to it since they are the only thing that know what protocols they&#x27;re expecting to use.<br> </div> Thu, 10 Mar 2022 09:03:22 +0000 Fedora considers curl-minimal https://lwn.net/Articles/887430/ https://lwn.net/Articles/887430/ rwmj <div class="FormattedComment"> If we are really serious about attack surface we should audit Fedora programs that use libcurl and make sure they are using CURLOPT_PROTOCOLS (<a href="https://curl.se/libcurl/c/CURLOPT_PROTOCOLS.html">https://curl.se/libcurl/c/CURLOPT_PROTOCOLS.html</a>), because that is the only way to ensure that unwanted/exploitable curl modules are not invoked by redirects.<br> </div> Thu, 10 Mar 2022 09:01:09 +0000 Fedora considers curl-minimal https://lwn.net/Articles/887427/ https://lwn.net/Articles/887427/ SLi <div class="FormattedComment"> I&#x27;m curious, why does it seem to be about size instead of the attack surface as explicitly stated?<br> </div> Thu, 10 Mar 2022 08:53:57 +0000 Fedora considers curl-minimal https://lwn.net/Articles/887426/ https://lwn.net/Articles/887426/ SLi <div class="FormattedComment"> It doesn&#x27;t seem to even be what&#x27;s compiled in but what&#x27;s enabled by default. Perhaps there could be a configuration file in which you can enable protocols you need one by one (and disable ones enabled by default)?<br> </div> Thu, 10 Mar 2022 08:52:43 +0000 Fedora considers curl-minimal https://lwn.net/Articles/887425/ https://lwn.net/Articles/887425/ rwmj <div class="FormattedComment"> This is exactly right. If curl was modular upstream then we could have an interesting discussion about which of the modules to include in base Fedora. But nothing would be broken - if a package was expecting to use, say, telnet it could depend on libcurl-telnet so installing the package would install the extra curl module.<br> <p> As you say it requires work upstream. No one has stepped up to do that.<br> <p> FWIW we already went through this process with fio (Jens Axboe&#x27;s Flexible I/O tester) which used to link all of its backends together, but now uses modules (&quot;engines&quot;), and we then changed the packaging in Fedora to use it: <a href="https://src.fedoraproject.org/rpms/fio/blob/rawhide/f/fio.spec#_69">https://src.fedoraproject.org/rpms/fio/blob/rawhide/f/fio...</a><br> </div> Thu, 10 Mar 2022 08:48:06 +0000 Fedora considers curl-minimal https://lwn.net/Articles/887424/ https://lwn.net/Articles/887424/ rwmj <div class="FormattedComment"> It seems clear to me that the driver for this is some pointless competition where everyone tries to claim the crown of having the smallest base container. But container layers get cached - you only download them once - disks are cheap and networks are getting better. This isn&#x27;t something we need.<br> </div> Thu, 10 Mar 2022 08:42:23 +0000 Fedora considers curl-minimal https://lwn.net/Articles/887420/ https://lwn.net/Articles/887420/ jd <div class="FormattedComment"> Correct me if I&#x27;m wrong, but the real problem seems to be that the protocols are compiled in, as opposed to being something external that is dynamically loaded.<br> <p> If they&#x27;re dynamically loaded, then you would only have one version of any given binary, users can decide exactly what protocols they want to install and protocols that are known to be in an uncertain state can be labeled as such.<br> <p> This moves responsibility from the distros to the curl maintainer, which means we don&#x27;t have different distros running in different directions and nobody really knowing what they&#x27;re installing.<br> <p> Of course, that&#x27;s a lot more work than just compiling the code twice, but it only has to be done the one time whereas protocol selection and recompiling would have to be done every time there&#x27;s a code change. Not that this happens much with curl.<br> </div> Thu, 10 Mar 2022 08:40:39 +0000