Bug 1305970 - --disable-epsv option ignored for IPv6 hosts
Summary: --disable-epsv option ignored for IPv6 hosts
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: curl
Version: 6.8
Hardware: Unspecified
OS: Unspecified
Target Milestone: rc
: ---
Assignee: Kamil Dudka
QA Contact: BaseOS QE Security Team
Depends On: 1305974
TreeView+ depends on / blocked
Reported: 2016-02-09 17:21 UTC by Martin Frodl
Modified: 2016-07-13 14:09 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
: 1305974 (view as bug list)
Last Closed: 2016-07-13 14:09:09 UTC
Target Upstream Version:

Attachments (Terms of Use)

System ID Private Priority Status Summary Last Updated
Red Hat Bugzilla 849177 0 medium CLOSED python-urlgrabber has timeout issue 2021-02-22 00:41:40 UTC
Red Hat Bugzilla 1293363 0 medium CLOSED yum needs ftp_disable_epsv option 2021-02-22 00:41:40 UTC

Internal Links: 849177 1293363

Description Martin Frodl 2016-02-09 17:21:11 UTC
Description of problem:

With --disable-epsv, curl should not attempt to use EPSV mode no matter what. When the host name in URL is 'localhost' or 'localhost.localdomain', EPSV is not disabled. On the other hand, when is used instead, --disable-epsv is respected.

Version-Release number of selected component (if applicable):

Steps to reproduce:
# yum -y install vsftpd
# echo OK > /var/ftp/pub/test
# service vsftpd start
# curl -v --disable-epsv ftp://localhost/pub/test

Actual results:
* Connect data stream passively
< 229 Entering Extended Passive Mode (|||20246|).
*   Trying connected

Expected results:
* Connect data stream passively
< 227 Entering Passive Mode (127,0,0,1,251,224).
*   Trying connected

Comment 2 Eva Mrakova 2016-02-10 07:48:48 UTC

according to several resources curl option --disable-epsv has no effect for 
IPv6 hosts.
For curl-7.19.7-51.el6 it works OK for localhost4 and also for localhost
together with curl --ipv4 option.

See e.g.
If the server is an IPv6 host, this option will have no effect as of 7.12.3

Comment 3 Martin Frodl 2016-02-10 08:51:01 UTC
Thanks for the explanation. Still, I think this peculiarity should be documented right in curl man page shipped in RHEL at the very least.

Comment 4 Kamil Dudka 2016-02-10 11:52:33 UTC
Eva, thank you for replying on this!

I believe the behavior is already documented in the RHEL-6 man page.

$ rpm -q libcurl-devel

$ man curl_easy_setopt | grep -A8 CURLOPT_FTP_USE_EPSV
              Pass  a  long.  If the value is 1, it tells curl to use the EPSV
              command when doing passive FTP downloads (which it  always  does
              by  default). Using EPSV means that it will first attempt to use
              EPSV before using PASV, but if you pass zero to this option,  it
              will not try using EPSV, only plain PASV.

              If  the  server is an IPv6 host, this option will have no effect
              as of 7.12.3.

See also: https://github.com/curl/curl/commit/0966ddaf

Comment 5 Martin Frodl 2016-02-10 12:16:54 UTC
I would still argue that a man page provided by a devel subpackage is not the most fortunate place to provide this information. Not for a user who does not give a tinker's cuss about the internal affairs of curl and only cares about the command-line interface and the man page shipped with it.

Obviously, this is a not a high priority bug which ought to be fixed on a short notice. Nonetheless, I believe adding that one sentence to curl man page still does make sense.

Comment 6 Kamil Dudka 2016-02-12 17:52:46 UTC
upstream commit:


Comment 7 Kamil Dudka 2016-07-13 14:09:09 UTC
RHEL-6 is in Production Phase 2, which means that only critical and security bugs are fixed.  The current documentation is technically correct.  Additional documentation improvements on this topic will be included in RHEL-7.

Note You need to log in before you can comment on or make changes to this bug.