Pyftpdlib

Latest version: v2.0.1

Safety actively analyzes 701442 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 5

2.0.1

===========================

**Enhancements**

* 651: Add ``make install-pydeps-test`` and ``make install-pydeps-dev``
targets. They can be used to install dependencies meant for running tests and
for local development. They can also be installed via ``pip install .[test]``
and ``pip install .[dev]``.

**Bug fixes**

* 650: file operations on Windows with Python 3.13 give "Permission denied".

2.0.0

===========================

**Enhancements**

* 625: exposed a new ``FTPHandler.encoding`` attribute defaulting to
``'utf-8'``. It can be used to change the encoding used for client / server
communication.
* 629: removed Python 2.7 support.
* 637: remove copies of asyncore.py and asynchat.py. Use backports from PYPI
instead. (patch by penguinpee)
* 639: set default SSL version from deprecated ``SSLv23_METHOD`` to newer
``TLS_SERVER_METHOD``. This is the setting recommended by latest OpenSSL doc,
and includes the TLSv1, TLSv1.1, TLSv1.2, TLSv1.3. Versions SSLv2 and SSLv3
are disabled.

**Notes about backward compatibility**

* 629: Python 2.7 is no longer supported.
* 629: pysendfile module is no longer a required dependency, because we ceased
support for Python 2.
* 639: (FTPS) SSLv2 and SSLv3 connections are no longer accepted when client
connects.

1.5.10

============================

**Enhancements**

* 621: use black formatter.
* 626: use argparse instead of deprecated optparse.
* 628: use pytest instead of unittest.
* 632: add ability to run tests in parallel with `make test-parallel`.

**Bug fixes**

* 627: PermissionError may occur on Windows when binding ports from a
pre-configured PASV range.

1.5.9

===========================

**Enhancements**

- 611: use `ruff` code style checker instead of flake8 + isort (much faster +
makes many more code quality checks).

**Bug fixes**

- 604: client connection may be reset in PASV/EPSV mode during TLS handshake.
(patch by Benedikt McMullin)
- 607: possible infinite wait in Epoll (patch by stat1c-void)
- 607: possible infinite traceback printing in DTPHandler (patch by
stat1c-void)
- 613: (CRITICAL) bugfix for TLS disconnect causing 100% CPU usage. (patch by
hakai)
- 614: close connection on SSL EOF error, instead of erroneously replying with
"226 Transfer completed."

1.5.8

===========================

**Enhancements**

- 586: removed Python 2.6 support.
- 591: speedup logging by 28% by using `logging._srcfile = None` trick. This
avoids calling `calling sys._getframe()` for each log record.
- 605: added support for Python 3.12.

1.5.7

===========================

**Enhancements**

- 544: replace Travis with Github Actions for CI testing.

**Bug fixes**

- 481: fix [WinError 10038] an operation was attempted on something that is
not a socket. (patch by Tailing Yuan)
- 578, [critical]: FTPS broke with PyOpenSSL version 22.1.0.

Page 1 of 5

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.