-
18/08/2021
-
45
-
73 bài viết
Nguy hiểm: Lổ hổng thực thi mã trong ngôn ngữ Python 15 năm tuổi chưa được vá
Một lỗ hổng trong ngôn ngữ lập trình Python đã bị "lãng quên" trong 15 năm hiện đang trở lại và là tâm điểm chú ý vì nó ảnh hưởng đến hơn 350.000 kho lưu trữ mã nguồn mở dẫn đến việc thực thi mã.
Lỗ hổng có mã định danh CVE-2007-4559 được biết đến vào năm 2007. Lỗi này chưa nhận được bản vá, chỉ có biện pháp giảm thiểu duy nhất đó là một tài liệu cảnh báo các nhà phát triển.
Chi tiết kỹ thuật cho CVE-2007-4559 đã có sẵn kể từ tháng 8 năm 2007 nhưng không được khắc phục và được phát hiện lại vào đầu năm nay bởi một nhà nghiên cứu tại công ty Trellix.
Chưa đầy một tuần sau khi tiết lộ, một thông báo trên trình theo dõi lỗi Python (Python bug tracker) cho biết CVE này đã được xử lý.
Công ty Trellix đã loại bỏ 257 nguồn lưu trữ nhiều khả năng có mã dễ bị tấn công và kiểm tra thủ công 175 trong số chúng để xem liệu có bị ảnh hưởng hay không. Từ đó phát hiện ra 61% trong số đó có khả năng bị khai thác. Chạy kiểm tra tự động trên phần còn lại của kho lưu trữ cho thấy số lượng project bị ảnh hưởng tăng lên 65%.
Tuy nhiên, bộ mẫu nhỏ này chỉ là cơ sở để đưa ra ước tính về tất cả các kho lưu trữ bị ảnh hưởng có sẵn trên GitHub. 61% được kiểm tra thủ công tương đương với hơn 350.000 kho lưu trữ mã nguồn mở tồn tại lỗ hổng.
Hãng cũng nhận thấy rằng mã nguồn mở dễ bị tấn công bởi CVE-2007-4559 "trải dài trên một số lượng lớn các ngành công nghiệp". Theo biểu đồ, lỗ hổng ảnh hưởng nhiều nhất đến lĩnh vực phát triển (development), tiếp theo là web và học máy (AI/ML).
Các nhà nghiên cứu đã chỉ ra rằng lỗ hổng này cũng có thể bị lợi dụng trên Linux. Họ thử nghiệm để leo thang ghi tệp và đạt được thực thi mã trên dịch vụ quản lý cơ sở hạ tầng CNTT Polemarch.
Trellix cũng phát hành bản vá cho hơn 11,000 kho lưu trữ. Các bản sửa lỗi sẽ có sẵn trong một nhánh của kho lưu trữ bị ảnh hưởng. Sau đó, chúng sẽ được thêm vào dự án chính thông qua pull.
Do số lượng lớn các kho lưu trữ bị ảnh hưởng, các nhà nghiên cứu hy vọng hơn 70.000 dự án sẽ nhận được bản sửa lỗi trong vài tuần tới. Tuy nhiên, việc đạt mốc 100% là một thách thức khó khăn, vì các yêu cầu hợp nhất cũng cần được các nhà bảo trì chấp nhận.
Lỗ hổng có mã định danh CVE-2007-4559 được biết đến vào năm 2007. Lỗi này chưa nhận được bản vá, chỉ có biện pháp giảm thiểu duy nhất đó là một tài liệu cảnh báo các nhà phát triển.
Chưa vá lỗi từ năm 2007
Lỗ hổng nằm trong gói tarfile Python, trong mã sử dụng hàm tarfile.extract() hoặc tarfile.extractall(). Đây là một lỗi truyền đường dẫn cho phép kẻ tấn công ghi đè lên các tệp tùy ý. Lỗ hổng xảy ra khi mã trong hàm extract thuộc mô-đun tarfile của Python, hàm có tham số info trong đối tượng TarInfo và "đường dẫn tệp được ghép từ đường dẫn được truyền đến hàm extract và tên tệp trong đối tượng TarInfo".Chi tiết kỹ thuật cho CVE-2007-4559 đã có sẵn kể từ tháng 8 năm 2007 nhưng không được khắc phục và được phát hiện lại vào đầu năm nay bởi một nhà nghiên cứu tại công ty Trellix.
Chưa đầy một tuần sau khi tiết lộ, một thông báo trên trình theo dõi lỗi Python (Python bug tracker) cho biết CVE này đã được xử lý.
Ước tính có khoảng 350.000 kho lưu trữ bị ảnh hưởng
Các nhà nghiên cứu của Trellix phát hiện ra rằng lỗ hổng này đã có mặt trong hàng nghìn dự án phần mềm, cả mã nguồn mở và mã nguồn đóng.Công ty Trellix đã loại bỏ 257 nguồn lưu trữ nhiều khả năng có mã dễ bị tấn công và kiểm tra thủ công 175 trong số chúng để xem liệu có bị ảnh hưởng hay không. Từ đó phát hiện ra 61% trong số đó có khả năng bị khai thác. Chạy kiểm tra tự động trên phần còn lại của kho lưu trữ cho thấy số lượng project bị ảnh hưởng tăng lên 65%.
Tuy nhiên, bộ mẫu nhỏ này chỉ là cơ sở để đưa ra ước tính về tất cả các kho lưu trữ bị ảnh hưởng có sẵn trên GitHub. 61% được kiểm tra thủ công tương đương với hơn 350.000 kho lưu trữ mã nguồn mở tồn tại lỗ hổng.
Hãng cũng nhận thấy rằng mã nguồn mở dễ bị tấn công bởi CVE-2007-4559 "trải dài trên một số lượng lớn các ngành công nghiệp". Theo biểu đồ, lỗ hổng ảnh hưởng nhiều nhất đến lĩnh vực phát triển (development), tiếp theo là web và học máy (AI/ML).
Khai thác CVE-2007-4559
Video sau mô tả các bước đơn giản để khai thác CVE-2007-4559 trong phiên bản Windows của Spyder IDE:Các nhà nghiên cứu đã chỉ ra rằng lỗ hổng này cũng có thể bị lợi dụng trên Linux. Họ thử nghiệm để leo thang ghi tệp và đạt được thực thi mã trên dịch vụ quản lý cơ sở hạ tầng CNTT Polemarch.
Trellix cũng phát hành bản vá cho hơn 11,000 kho lưu trữ. Các bản sửa lỗi sẽ có sẵn trong một nhánh của kho lưu trữ bị ảnh hưởng. Sau đó, chúng sẽ được thêm vào dự án chính thông qua pull.
Do số lượng lớn các kho lưu trữ bị ảnh hưởng, các nhà nghiên cứu hy vọng hơn 70.000 dự án sẽ nhận được bản sửa lỗi trong vài tuần tới. Tuy nhiên, việc đạt mốc 100% là một thách thức khó khăn, vì các yêu cầu hợp nhất cũng cần được các nhà bảo trì chấp nhận.
Theo: BleepingComputer
Chỉnh sửa lần cuối: