Thư viện NLTK trước phiên bản 3.9.3 dính lỗ hổng CVE-2025-71408 mức độ HIGH, cho phép kẻ tấn công thực thi mã Python và lệnh hệ điều hành tùy ý.
Tổng quan về lỗ hổng CVE-2025-71408
Mới đây, một lỗ hổng bảo mật nghiêm trọng mang mã hiệu CVE-2025-71408 (được công bố chính thức vào ngày 24/07/2026) đã được phát hiện trong thư viện xử lý ngôn ngữ tự nhiên phổ biến NLTK (Natural Language Toolkit) dành cho ngôn ngữ Python.
Lỗ hổng này được xếp loại ở mức độ nghiêm trọng HIGH do cho phép kẻ tấn công thực thi mã Python tùy ý thông qua kỹ thuật Eval Injection khi thực thi trực tiếp module nltk.collocations từ dòng lệnh.
Mức độ ảnh hưởng và đối tượng bị tác động
- Mức độ nghiêm trọng: HIGH (Mức độ cao).
- Phiên bản bị ảnh hưởng: Tất cả các phiên bản NLTK trước 3.9.3.
- Đối tượng bị ảnh hưởng: Các nhà phát triển, hệ thống xử lý dữ liệu ngôn ngữ tự nhiên và ứng dụng Python có cài đặt NLTK, đặc biệt là các hệ thống cho phép chạy trực tiếp module
nltk.collocationsvới các tham số đầu vào do người dùng hoặc nguồn bên ngoài kiểm soát.
Chi tiết kỹ thuật về lỗ hổng
Lỗ hổng xuất phát từ khối mã __main__ trong tệp collocations.py thuộc module nltk.collocations. Khi module này được gọi trực tiếp từ giao diện dòng lệnh (CLI), khối xử lý sẽ lấy các tham số đầu vào và truyền trực tiếp vào hàm eval() dưới dạng hậu tố cho đối tượng BigramAssocMeasures mà không qua bất kỳ cơ chế kiểm tra danh sách cho phép (allowlist validation) hay làm sạch dữ liệu (sanitization) nào.
Do thiếu bước xác thực dữ liệu đầu vào, kẻ tấn công có thể chèn một biểu thức Python độc hại. Biểu thức này thoát khỏi phạm vi truy xuất thuộc tính dự kiến và thực thi mã Python tùy ý, bao gồm việc gọi module os để chạy các lệnh hệ điều hành trực tiếp trên máy chủ.
Tác động bảo mật
Nếu kẻ tấn công kiểm soát được danh sách tham số dòng lệnh truyền vào module:
- Chiếm quyền thực thi mã từ xa (Remote Code Execution - RCE) dưới ngữ cảnh tài khoản đang chạy ứng dụng.
- Can thiệp, truy xuất hoặc xóa bỏ dữ liệu nhạy cảm trên hệ thống.
- Tạo tiền đề để leo thang đặc quyền và mở rộng tấn công sang các thành phần khác trong hạ tầng mạng.
Khuyến nghị khắc phục
Để đảm bảo an toàn cho ứng dụng và hệ thống, Bitech khuyến nghị các quản trị viên và nhà phát triển thực hiện ngay các bước sau:
- Cập nhật NLTK: Nâng cấp thư viện NLTK lên phiên bản 3.9.3 hoặc mới hơn càng sớm càng tốt bằng lệnh:
pip install --upgrade nltk - Rà soát mã nguồn: Kiểm tra lại các quy trình tự động hóa hoặc script nội bộ có gọi trực tiếp module
nltk.collocationstừ dòng lệnh. - Kiểm soát dữ liệu đầu vào: Loại bỏ việc truyền trực tiếp dữ liệu chưa qua kiểm duyệt từ phía người dùng vào các tham số dòng lệnh hoặc hàm thi hành mã động.
Nguồn tham khảo
- NVD NIST Detail: https://nvd.nist.gov/vuln/detail/CVE-2025-71408
- Phân tích lỗ hổng: https://aydinnyunus.github.io/2026/06/07/command-injection-nltk-collocations-eval/
- Mã sửa lỗi trên GitHub: https://github.com/nltk/nltk/commit/66f14096d952ec8f04934f515e027534bd4eb0ac
- GitHub Pull Request #3465: https://github.com/nltk/nltk/pull/3465
Ngày phát hành: 24/07/2026
Nguồn: NVD — CVE-2025-71408
Tham khảo: https://aydinnyunus.github.io/2026/06/07/command-injection-nltk-collocations-eval/
Tham khảo: https://github.com/nltk/nltk/commit/66f14096d952ec8f04934f515e027534bd4eb0ac
Tham khảo: https://github.com/nltk/nltk/pull/3465