Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature: Added support for FTP_TLS (Weak Cryptography Issue) #1320

Merged
merged 4 commits into from Oct 19, 2023

Conversation

fazledyn-or
Copy link
Contributor

Background

I'm a Software Security Engineer from OpenRefactory-Inc. We are working with OpenSSF on Project Alpha-Omega. While triaging your project, our bug fixing tool generated the following message-

In file: ftp.py, method: _start_connection, a clear-text protocol such as FTP, Telnet or SMTP is used. These protocols transfer data without any encryption, which expose applications to a large range of risks. iCR suggested that data should be transferred over only secure transport channels.

As a result, I've added the support for FTP_TLS from ftplib library into the codebase.

Test Status

I copied the test_ftp.py file and modified it for FTP_TLS. Currently all tests are passing.

CLA Requirements

This section is only relevant if your project requires contributors to sign a Contributor License Agreement (CLA) for external contributions. All contributed commits are already automatically signed off.

The meaning of a signoff depends on the project, but it typically certifies that committer has the rights to submit this work under the same license and agrees to a Developer Certificate of Origin (see https://developercertificate.org/ for more information).

Sponsorship and Support:

This work is done by the security researchers from OpenRefactory and is supported by the Open Source Security Foundation (OpenSSF): Project Alpha-Omega. Alpha-Omega is a project partnering with open source software project maintainers to systematically find new, as-yet-undiscovered vulnerabilities in open source code - and get them fixed – to improve global software supply chain security.

The bug is found by running the Intelligent Code Repair (iCR) tool by OpenRefactory and then manually triaging the results.

Copy link
Owner

@jschneier jschneier left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the PR and nice to see how simple this nice addition is. I’ve commented on a better way I’d like to do this. As part of that change can you also slim down the test suite to just test these small additions, thanks!

storages/backends/ftp.py Outdated Show resolved Hide resolved
storages/backends/ftp.py Outdated Show resolved Hide resolved
storages/backends/ftp.py Show resolved Hide resolved
storages/backends/ftp.py Outdated Show resolved Hide resolved
Copy link
Owner

@jschneier jschneier left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the updates it's looking good - just a few more changes to the tests needed and then I think we're good to merge.

tests/test_ftp.py Outdated Show resolved Hide resolved
tests/test_ftp.py Outdated Show resolved Hide resolved
tests/test_ftp.py Outdated Show resolved Hide resolved
tests/test_ftp.py Outdated Show resolved Hide resolved
tests/test_ftp.py Outdated Show resolved Hide resolved
@jschneier
Copy link
Owner

@fazledyn-or just need to fix the lint issues then we are good to merge.

@jschneier jschneier merged commit bf63932 into jschneier:master Oct 19, 2023
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants