14/11/2026

NLTK 3.10.3 trở xuống mắc lỗi DoS CPU, nâng cấp lên 3.10.4

CVE-2026-126299

GitHub Advisories cảnh báo NLTK 3.10.3 trở xuống có lỗi DoS CPU trong bộ phân tích CCG lexicon, có thể khiến worker cạn tài nguyên và hệ thống mất khả dụng. Hãy nâng cấp lên NLTK 3.10.4 và xác minh phiên bản đã cài.

NLTK 3.10.3 trở xuống mắc lỗi DoS CPU, nâng cấp lên 3.10.4

Tóm tắt nhanh

  • NLTK có lỗi DoS CPU bậc hai trong bộ phân tích CCG lexicon.
  • NLTK 3.10.3 trở xuống bị ảnh hưởng; đầu vào có thể làm cạn worker và gây mất khả dụng.
  • Nâng cấp lên NLTK 3.10.4 và xác minh phiên bản đã cài.
Nội dung bài viết

GitHub Advisories thông báo về CVE-2026-126299 trong thư viện Python NLTK. Lỗ hổng nằm trong quá trình phân tích CCG lexicon và được khắc phục ở phiên bản 3.10.4. Xem advisory GHSA-89p3-fcch-88ph.

Tổng quan và thông tin kỹ thuật

NLTK là thư viện Python xử lý ngôn ngữ tự nhiên; bộ phân tích CCG lexicon chuyển văn bản từ vựng thành cấu trúc phục vụ xử lý ngôn ngữ. Lỗi tiêu thụ tài nguyên không được kiểm soát và độ phức tạp thuật toán kém cho phép đầu vào lexicon làm tăng thời gian xử lý CPU.

Thông tinChi tiết
Sản phẩmNLTK
CVE / GHSACVE-2026-126299 / GHSA-89p3-fcch-88ph
CWECWE-400 (Uncontrolled Resource Consumption); CWE-407 (Inefficient Algorithmic Complexity)
CVSS7.5 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H)

Phạm vi ảnh hưởng

Sản phẩmPhiên bản ảnh hưởngPhiên bản đã vá
PyPI (pip), gói nltk3.10.3 trở xuống3.10.4

Cơ chế và tác động

Các hàm công khai nltk.ccg.lexicon.fromstring và tên được xuất lại nltk.ccg.chart.fromstring xử lý chuỗi lexicon do bên gọi cung cấp. Trong matchBrackets, phần đuôi bị cắt lại theo từng ký tự trong thân ngoặc rộng; trong augParseCategory, phần đuôi được sao chép theo từng toán tử trong chuỗi dài. Các thao tác này tạo độ phức tạp O(n²).

Kẻ tấn công có thể cung cấp đầu vào qua ứng dụng gọi các hàm này, khiến CPU đơn luồng bị tiêu thụ trong thời gian dài, làm cạn worker và gây mất khả dụng. Không cần xác thực hay tương tác người dùng. MAX_PARSE_DEPTH = 500 chỉ giới hạn độ sâu lồng nhau, không chặn đầu vào phẳng có chiều rộng lớn; timeout regex cũng không bao phủ các vòng lặp Python này.

Kiểm tra hệ thống

  1. Kiểm tra phiên bản NLTK đang được pip quản lý:

    pip show nltk

    Phiên bản 3.10.3 trở xuống thuộc phạm vi ảnh hưởng; 3.10.4 đã được vá.

Khắc phục và giảm thiểu

  1. Nâng cấp gói bằng pip lên nltk 3.10.4, đặc biệt ưu tiên các ứng dụng phân tích lexicon CCG do người dùng hoặc nguồn không tin cậy kiểm soát.

  2. Sau khi nâng cấp, chạy pip show nltk và xác nhận phiên bản đã cài là 3.10.4.

Bản sửa được nêu sử dụng con trỏ chỉ mục trên chuỗi gốc hoặc collections.deque để tránh cắt hoặc sao chép phần đuôi lặp lại.

Bài viết liên quan