Hướng dẫn python code vulnerabilities - lỗ hổng mã python

Tên CPE: CPE: 2.3: A: Python: Python: 2.7.3:*:*:*:*:*:*:*:*

# CVE ID CWE ID # Khai thác [Các] loại dễ bị tổn thương Ngày xuất bản Cập nhật ngày tháng Ghi bàn Đạt được mức độ truy cập Truy cập Sự phức tạp Xác thực Conf. Số nguyên. Tận dụng.
1 CVE-2014-9365 2014-12-12 2019-10-25

5.8

Không có Xa Vừa phải Không yêu cầu Một phần Một phần Không có
Xa
2 Vừa phải 189 Không yêu cầu Một phần 2019-10-25

6.4

Không có Xa Vừa phải Không yêu cầu Một phần Không có Một phần
Các máy khách HTTP trong [1] httplib, [2] urllib, [3] urllib2 và [4] thư viện xmlrpclib trong cpython [còn gọi là python] 2.x trước 2.7.9 và 3.x trước 3.4.3, khi truy cập URL HTTPS, không [a] kiểm tra chứng chỉ đối với cửa hàng tin cậy hoặc xác minh rằng tên máy chủ máy chủ khớp với tên miền trong [b] tên chung hoặc [c] trường entalaltName của chứng chỉ X.509, cho phép con người -in-the-the-Middle Curder để giả mạo các máy chủ SSL thông qua chứng chỉ hợp lệ tùy ý.
3 CVE-2014-7185 119 1 Tràn +thông tin 2014-10-08 2019-10-25

7.5

Không có Xa Vừa phải Không yêu cầu Một phần Một phần Một phần
Các máy khách HTTP trong [1] httplib, [2] urllib, [3] urllib2 và [4] thư viện xmlrpclib trong cpython [còn gọi là python] 2.x trước 2.7.9 và 3.x trước 3.4.3, khi truy cập URL HTTPS, không [a] kiểm tra chứng chỉ đối với cửa hàng tin cậy hoặc xác minh rằng tên máy chủ máy chủ khớp với tên miền trong [b] tên chung hoặc [c] trường entalaltName của chứng chỉ X.509, cho phép con người -in-the-the-Middle Curder để giả mạo các máy chủ SSL thông qua chứng chỉ hợp lệ tùy ý.
4 CVE-2014-7185 310 Tràn +thông tin 2014-10-08 2019-10-25

4.3

Không có Xa Vừa phải Không yêu cầu Không có Không có Một phần
Các máy khách HTTP trong [1] httplib, [2] urllib, [3] urllib2 và [4] thư viện xmlrpclib trong cpython [còn gọi là python] 2.x trước 2.7.9 và 3.x trước 3.4.3, khi truy cập URL HTTPS, không [a] kiểm tra chứng chỉ đối với cửa hàng tin cậy hoặc xác minh rằng tên máy chủ máy chủ khớp với tên miền trong [b] tên chung hoặc [c] trường entalaltName của chứng chỉ X.509, cho phép con người -in-the-the-Middle Curder để giả mạo các máy chủ SSL thông qua chứng chỉ hợp lệ tùy ý.
5 CVE-2014-7185 20 Tràn +thông tin 2019-10-25

4.3

Không có Xa Vừa phải Không yêu cầu Không có Một phần Không có
Xa
6 Vừa phải 264 Không yêu cầu 2019-10-25

1.9

Không có Xa Vừa phải Không yêu cầu Một phần Không có Không có
Xa

Vừa phải 6   Page : 1 [This Page]

Không yêu cầu

Một phần

Các máy khách HTTP trong [1] httplib, [2] urllib, [3] urllib2 và [4] thư viện xmlrpclib trong cpython [còn gọi là python] 2.x trước 2.7.9 và 3.x trước 3.4.3, khi truy cập URL HTTPS, không [a] kiểm tra chứng chỉ đối với cửa hàng tin cậy hoặc xác minh rằng tên máy chủ máy chủ khớp với tên miền trong [b] tên chung hoặc [c] trường entalaltName của chứng chỉ X.509, cho phép con người -in-the-the-Middle Curder để giả mạo các máy chủ SSL thông qua chứng chỉ hợp lệ tùy ý. CVE-2014-7185 Tràn +thông tin 2014-10-08 Vừa phải6   Page : 1 [This Page] Python »Python» 2.7.3: Thống kê lỗ hổng Xu hướng dễ bị tổn thương theo thời gian Năm # lỗ hổng Dos Thực thi mã Tràn ra Tràn bộ nhớ SQL tiêm XSS # Khai thácThư mục truyền tải
0

Tách phản ứng HTTP

Bỏ qua một cái gì đó

Đăng: ngày 16 tháng 2 năm 2022 February 16, 2022

Các mô -đun làm cho việc viết các ứng dụng Python dễ dàng và đơn giản, nhưng khi bạn sử dụng mã của người khác [đó là những mô -đun là gì], tốt nhất nên kiểm tra thường xuyên các lỗ hổng được xuất bản. Bài viết này cho bạn thấy cách sử dụng công cụ & nbsp; pip-audit & nbsp; để tìm CVE Advisories được phát hành cho các mô-đun Python bạn đang sử dụng trong dự án của mình.

Hầu hết các lập trình viên Python liệt kê tất cả các phụ thuộc của bên thứ ba trong tệp requirements.txt, rất hữu ích cho PYPI và các hệ thống quản lý phụ thuộc khác:

module1==x.y.z
module2==x.y.z
module1==x.y.z

Điều này làm cho môi trường phát triển của bạn có thể tái tạo, nhưng nó cũng khiến bạn tiếp xúc với việc sử dụng các phiên bản cũ hơn có thể dễ bị khai thác.

Hãy suy nghĩ về các phiên bản của bạn như một khu vườn: họ cần tưới nước, cắt tỉa và chú ý. Một dự án tốt luôn cập nhật các phiên bản khi tìm thấy lỗ hổng và các công cụ như pip-audit giúp công việc này dễ dàng hơn.

Dưới đây là cách sử dụng pip-audit để quét dự án Python của bạn và tìm hiểu xem bất kỳ thư viện bên thứ ba nào của bạn đã biết các lỗ hổng với các định danh CVE.

Cài đặt Pip-Audit

Cài đặt phiên bản mới nhất của Pip-Audit với

python3 -m venv ~/virtualenv/pip-audit
$ . ~/virtualenv/pip-audit/bin/activate

$ pip install --upgrade pip pip-audit
0:

python3 -m venv ~/virtualenv/pip-audit
$ . ~/virtualenv/pip-audit/bin/activate

$ pip install --upgrade pip pip-audit

Lệnh

python3 -m venv ~/virtualenv/pip-audit
$ . ~/virtualenv/pip-audit/bin/activate

$ pip install --upgrade pip pip-audit
1 mong đợi một tệp requirements.txt. Nếu dự án của bạn không có một [ví dụ: nếu nó sử dụng một
python3 -m venv ~/virtualenv/pip-audit
$ . ~/virtualenv/pip-audit/bin/activate

$ pip install --upgrade pip pip-audit
3], hãy tạo một dự án với:

. ~/virtualenv/myprojectvirtualenv/bin/activate
# Install your project as usual, like python setup.py develop
$ pip freeze > requirements.txt

Phân tích một dự án

Bây giờ bạn nên sẵn sàng để bắt đầu phân tích các dự án của mình cho các lỗ hổng tiềm năng trong các mô -đun của bạn.

Ví dụ 1: Một dự án không có lỗ hổng

Vision2 là một tập lệnh đẹp tương quan đầu ra của tệp XML quét NMAP với cơ sở dữ liệu lỗ hổng CVE NIST. Đây là một ví dụ:

$ git clone //github.com/CoolerVoid/Vision2.git
Cloning into 'Vision2'...
remote: Enumerating objects: 107, done.
remote: Counting objects: 100% [53/53], done.
remote: Compressing objects: 100% [42/42], done.
remote: Total 107 [delta 27], reused 23 [delta 9], pack-reused 54
Receiving objects: 100% [107/107], 30.92 KiB | 2.21 MiB/s, done.
Resolving deltas: 100% [52/52], done.

$ pip-audit  --requirement Vision2/re
requirements.txt  result_nmap.xml   

$ pip-audit  --requirement Vision2/requirements.txt 
\ Installing package in isolated environment                                  Processing /tmp/tmpyqd6k_6g/termcolor-1.1.0.tar.gz
  Preparing metadata [setup.py] ... done
Building wheels for collected packages: termcolor
  Building wheel for termcolor [setup.py] ... done
  Created wheel for termcolor: filename=termcolor-1.1.0-py3-none-any.whl size=4830 sha256=651435a861c5185b1cfb66655fb1da82488f5fa8b97d7ed859576d61af89f616
  Stored in directory: /home/josevnz/.cache/pip/wheels/74/35/a1/85d77e2de196f09e73917aa5b91c278b29efc72d4a800b2ae7
Successfully built termcolor
Installing collected packages: termcolor
Successfully installed termcolor-1.1.0
No known vulnerabilities found   

Tốt, dự án không sử dụng bất kỳ thư viện dễ bị tổn thương nào.

Ví dụ 2: Người đọc RSS có lỗ hổng

Cho phép tìm thấy một gói mà một lỗ hổng gần đây đã được tìm thấy [dự án được bảo mật, nhưng tôi sẽ hạ cấp một trong những thư viện có mục đích cho ví dụ này]. Phân tích nó:

[Jose Nunez, CC By-SA 4.0]

Cài đặt nó [xem readme & nbsp của tôi; để được hướng dẫn]:

$ git clone :josevnz/EnableSysadminRssReader.git
$ cd EnableSysadminRssReader
$ sed -i 's#4.7.1#4.6.0#' requirements.txt

Tôi đã hạ cấp phiên bản LXML từ 4.7.1 xuống 4.6.0 [lưu ý lệnh

python3 -m venv ~/virtualenv/pip-audit
$ . ~/virtualenv/pip-audit/bin/activate

$ pip install --upgrade pip pip-audit
4]. Điều gì xảy ra khi bạn quét nó?

$ pip-audit  --requirement requirements.txt 
Found 3 known vulnerabilities in 1 packages        
Name Version ID             Fix Versions
---- ------- -------------- ------------
lxml 4.6.0   PYSEC-2021-19  4.6.3
lxml 4.6.0   PYSEC-2020-62  4.6.2
lxml 4.6.0   PYSEC-2021-852 4.6.5

Có những cảnh báo cho LXML 4.6.0.

LXML là một thư viện tốt để phân tích các tệp XML một cách dễ dàng. Phần mềm rất phức tạp và thư viện này có một lỗi có thể được khai thác. Nếu bạn vào cơ sở dữ liệu NIST và tìm kiếm LXML, bạn sẽ thấy thêm chi tiết về CVE-2021-43818 tư vấn. Hãy xem tệp requirements.txt:

requests==2.27.1
rich==11.0.0
lxml==4.6.0

Bản sửa lỗi dễ nhất là nâng cấp lên phiên bản LXML được đề xuất [4.6.5], vì đây là một bản nâng cấp nhỏ chứa sửa lỗi và thực hiện các thay đổi API tối thiểu. Sau khi kiểm tra phiên bản mới nhất tại thời điểm viết bài này [4.7.1], tôi quyết định đi với phiên bản cao hơn, vì mã của tôi không cần sửa đổi thêm:

requests==2.27.1
rich==11.0.0
# lxml==4.6.0 

Bài Viết Liên Quan

Chủ Đề