Một lỗ hổng đã được phát hiện trong thành phần urllib.parse của Python cho phép kẻ tấn công bỏ qua các phương pháp lập danh sách chặn bằng cách cung cấp một URL bắt đầu bằng các ký tự trống. Lỗ hổng này , được gán mã định danh CVE-2023-24329, có điểm CVSS là 7,5 và có thể bị khai thác để gây ra nhiều vấn đề bảo mật, bao gồm đọc tệp tùy ý, thực thi lệnh tùy ý, SSRF và CSRF.
Vào tháng 8 năm 2022, nhà nghiên cứu bảo mật Yebo Cao đã phát hiện ra một lỗ hổng nguy hiểm trong urllib.parse
thành phần của các phiên bản Python trước v3.11. Lỗ hổng cho phép kẻ tấn công vượt qua các phương pháp lập danh sách chặn một cách xảo quyệt bằng cách cung cấp một URL bắt đầu bằng các ký tự trống.
Trung tâm Điều phối CERT (CERT/CC) cho biết “ API urlsplit()
và urlparse()
không thực hiện xác thực đầu vào. Chúng không được gây ra lỗi đối với đầu vào mà các ứng dụng khác coi là không hợp lệ. Họ cũng có thể thành công trên một số đầu vào có thể không được coi là URL ở nơi khác. Mục đích của chúng là dành cho chức năng thực tế hơn là độ tinh khiết,”
Vấn đề nằm ở chỗ urlparse
chức năng không thể xử lý các URL bắt đầu bằng các ký tự trống. Điểm yếu này ảnh hưởng đến việc phân tích cú pháp của cả tên máy chủ và lược đồ, khiến các phương pháp lập danh sách chặn trở nên bất lực.
- Lỗi lọc giao thức: Dẫn đến đọc tệp tùy ý, thực thi lệnh tùy ý, SSRF, v.v.
- Lỗi lọc tên miền: Mở ra cánh cửa để truy cập lại các trang web bị chặn hoặc nguy hiểm, thất bại trong việc bảo vệ loại giới thiệu CSRF và các mối đe dọa khác.
Một vấn đề như vậy trong thư viện phân tích cú pháp nền tảng nhất ngụ ý tiềm năng cho các vấn đề nâng cao hơn, biến lỗ hổng này thành một mỏ vàng tiềm năng cho các đối thủ mạng.
Python đã phát hành các bản vá lỗi giải quyết vấn đề trong các phiên bản khác nhau:
= 3,12
3,11,x >= 3,11,4
3,10,x >= 3,10,12
3,9,x >= 3,9,17
3,8,x >= 3,8,17
3,7,x >= 3,7,17
Người dùng các phiên bản Python cũ hơn nên nâng cấp lên phiên bản vá càng sớm càng tốt. Trong thời gian chờ đợi, các tổ chức có thể giảm thiểu nguy cơ lỗ hổng CVE-2023-24329 bằng cách vô hiệu hóa các phương pháp danh sách chặn dựa trên urllib.parse.