Tóm tắt nhanh
- NLTK có lỗ hổng từ chối dịch vụ CPU CVE-2026-126298.
- NLTK trên PyPI phiên bản 3.10.3 trở xuống bị ảnh hưởng; có thể giảm khả năng sẵn sàng.
- Ưu tiên nâng cấp lên NLTK 3.10.4.
NLTK 3.10.3 trở xuống có thể bị DoS CPU: nâng cấp lên 3.10.4
GitHub ghi nhận CVE-2026-126298 trong NLTK: xử lý cây rộng bằng Tree.chomsky_normal_form() có thể gây tiêu thụ CPU và giảm khả năng sẵn sàng. NLTK đến 3.10.3 bị ảnh hưởng; ưu tiên nâng cấp lên 3.10.4.
Nội dung bài viết
GitHub Advisories ghi nhận lỗ hổng trong bước right-factor của phép chuyển đổi cây cú pháp trong NLTK. Xem advisory GHSA-r53h-rw34-8h97 để biết thông tin nguồn.
Tổng quan và thông tin kỹ thuật
NLTK là thư viện Python xử lý ngôn ngữ tự nhiên; Tree.chomsky_normal_form() chuyển cây phân tích cú pháp sang dạng chuẩn Chomsky. Lỗ hổng CVE-2026-126298 có thể khiến việc xử lý đầu vào cây rộng tiêu thụ CPU.
| Thông tin | Chi tiết |
|---|---|
| Mã | CVE-2026-126298; GHSA-r53h-rw34-8h97 |
| CWE | CWE-400, CWE-407 |
| CVSS | 7.5 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H) |
| Nguồn | GitHub Advisories |
Phạm vi ảnh hưởng
| Sản phẩm | Phiên bản ảnh hưởng | Phiên bản đã sửa |
|---|---|---|
| NLTK (PyPI, pip) | 3.10.3 trở xuống | 3.10.4 |
Cơ chế và tác động
Nhánh right-factor mặc định gọi list.pop(0) lặp lại khi nhị phân hóa nút cây. Việc dịch các phần tử khiến độ phức tạp là O(N²); kẻ tấn công có thể cung cấp cây rộng qua Tree.fromstring cho ứng dụng gọi Tree.chomsky_normal_form(), gây tiêu thụ CPU đơn luồng và giảm khả năng sẵn sàng. Không cần xác thực hay tương tác người dùng. Khoảng 1,5 MB dữ liệu cây có thể tiêu tốn khoảng 14 giây trên một lõi. Nhánh left-factor dùng pop() và có độ phức tạp tuyến tính; timeout biểu thức chính quy không bao phủ vòng lặp Python này.
Kiểm tra hệ thống
Kiểm tra phiên bản NLTK đang được cài trong môi trường Python của ứng dụng:
python -m pip show nltk python -c "import nltk; print(nltk.__version__)"Phiên bản 3.10.4 đã bao gồm bản vá; phiên bản 3.10.3 trở xuống thuộc phạm vi bị ảnh hưởng.
Khắc phục và giảm thiểu
Ưu tiên nâng cấp NLTK lên phiên bản 3.10.4.
Nếu chưa thể nâng cấp, hạn chế số con của cây đầu vào không tin cậy và thực thi phép biến đổi trong worker cô lập với ngân sách CPU hoặc thời gian.