14/11/2026

NLTK đến 3.10.3 chịu lỗ hổng tiêu thụ CPU, cần nâng cấp lên 3.10.4

CVE-2026-126303

GitHub ghi nhận CVE-2026-126303 trong NLTK phiên bản 3.10.3 trở xuống: parser có thể tiêu thụ CPU không giới hạn và gây từ chối dịch vụ khi xử lý đầu vào không tin cậy. Nâng cấp lên 3.10.4 để khắc phục.

NLTK đến 3.10.3 chịu lỗ hổng tiêu thụ CPU, cần nâng cấp lên 3.10.4

Tóm tắt nhanh

  • CVE-2026-126303 khiến SteppingRecursiveDescentParser.parse() có thể tiêu thụ CPU không giới hạn.
  • NLTK phiên bản 3.10.3 trở xuống bị ảnh hưởng; tác động đã xác nhận là từ chối dịch vụ trong điều kiện phù hợp.
  • Nâng cấp NLTK lên 3.10.4 để khắc phục.
Nội dung bài viết

GitHub Advisories công bố lỗ hổng CVE-2026-126303 trong NLTK, gói Python xử lý ngôn ngữ tự nhiên. Lỗi ảnh hưởng đến phương thức phân tích ngữ pháp theo từng bước và đã được vá trong phiên bản 3.10.4.

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

SteppingRecursiveDescentParser phân tích ngữ pháp phi ngữ cảnh bằng cách duyệt từng bước. Lỗ hổng được định danh là CVE-2026-126303 và GHSA-8fx7-8jr8-84rv.

Thông tinChi tiết
Sản phẩmNLTK
CVE / GHSACVE-2026-126303 / GHSA-8fx7-8jr8-84rv
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á
pip:nltk3.10.3 trở xuống3.10.4

Rủi ro thực tế phụ thuộc vào việc hệ thống có sử dụng SteppingRecursiveDescentParser hay không. Parser stepping chủ yếu phục vụ gỡ lỗi hoặc tương tác, nên phạm vi phơi nhiễm hẹp hơn việc chỉ cài NLTK.

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

SteppingRecursiveDescentParser.parse() tự chạy vòng lặp step mà không đặt hoặc kiểm tra giới hạn thời gian. Với ngữ pháp mơ hồ hoặc tự nhúng do tác nhân kiểm soát và đầu vào ngắn, quá trình tìm kiếm top-down có thể duyệt không gian dẫn xuất tăng theo số Catalan, ghim một lõi CPU và không trả về.

Nếu dịch vụ dùng parser này để phân tích đầu vào không tin cậy, các yêu cầu lặp lại có thể làm cạn worker pool và gây từ chối dịch vụ. Tác động được mô tả là tiêu thụ tài nguyên và từ chối dịch vụ.

Kiểm tra hệ thống

  1. Kiểm tra phiên bản NLTK đang cài trong môi trường Python:

    python -m pip show nltk

    Phiên bản 3.10.4 đã vá; phiên bản 3.10.3 trở xuống cần nâng cấp.

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

  1. Nâng cấp gói pip:nltk lên phiên bản 3.10.4. Ưu tiên thực hiện trên các hệ thống dùng SteppingRecursiveDescentParser để xử lý ngữ pháp hoặc đầu vào do tác nhân bên ngoài kiểm soát.

Nguồn tham khảo

Bài viết liên quan