15/11/2026

NLTK 3.10.0–3.10.3 có lỗi đọc dữ liệu qua symlink, hãy nâng cấp lên 3.10.4

CVE-2026-126304

NLTK 3.10.0–3.10.3 mắc CVE-2026-126304: YCOECorpusReader có thể đọc dữ liệu ngoài corpus root nhưng vẫn trong NLTK data sandbox khi xử lý corpus YCOE có symlink và nội dung do bên khác kiểm soát. Nâng cấp lên 3.10.4.

NLTK 3.10.0–3.10.3 có lỗi đọc dữ liệu qua symlink, hãy nâng cấp lên 3.10.4

Tóm tắt nhanh

  • NLTK có lỗi đọc dữ liệu qua symlink trong YCOECorpusReader.
  • NLTK 3.10.0–3.10.3 bị ảnh hưởng trong điều kiện xử lý corpus YCOE cụ thể.
  • Dữ liệu đọc được vẫn nằm trong NLTK data sandbox được cho phép.
  • Ưu tiên nâng cấp gói pip:nltk lên 3.10.4.
Nội dung bài viết

GitHub Advisories công bố advisory GHSA-qg35-44qx-7vrr về CVE-2026-126304 trong NLTK, thư viện Python xử lý ngôn ngữ tự nhiên. Lỗi liên quan tới YCOECorpusReader và có thể khiến ứng dụng đọc dữ liệu ngoài corpus root trong một điều kiện cấu hình cụ thể.

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

Nguyên nhân được mô tả là kiểm tra đường dẫn con không ràng buộc đường dẫn đó với corpus root. Tác động là đọc dữ liệu ngoài corpus root nhưng vẫn trong NLTK data sandbox được cho phép; đây là tác động chỉ đọc.

Thông tinChi tiết
Sản phẩmNLTK, thư viện Python xử lý ngôn ngữ tự nhiên
Mã định danhCVE-2026-126304; GHSA-qg35-44qx-7vrr
CWECWE-59 (Improper Link Resolution Before File Access)
CVSS7.5 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N)
NguồnGitHub Advisories

Phạm vi ảnh hưởng

Sản phẩmPhiên bản ảnh hưởngPhiên bản đã vá
pip:nltk>= 3.10.0, <= 3.10.33.10.4

Điều kiện được nêu là ứng dụng tải corpus YCOE có nội dung do bên khác kiểm soát trong NLTK data root được phép, với pathsec.ENFORCE=True. Symlink trỏ ra ngoài mọi NLTK data root được phép bị từ chối; thư mục psd hoặc pos thật, không phải symlink, không tái hiện lỗi.

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

Các thư mục psd hoặc pos có thể là symlink trỏ tới vị trí khác bên trong NLTK data sandbox. YCOECorpusReader tạo sub-reader từ đường dẫn được kiểm tra theo dạng từ vựng, trong khi kiểm tra của CorpusReader.__init__ không ràng buộc đường dẫn con với corpus root.

Do đó, parsed_sents(), tagged_words() và các phương thức liên quan có thể đọc dữ liệu ngoài corpus root nhưng vẫn nằm trong sandbox được cho phép. Phạm vi rò rỉ bị giới hạn trong sandbox; không thể đọc tùy ý các tệp ngoài mọi root được phép. Tác động được mô tả là chỉ đọc, không ảnh hưởng tính toàn vẹn hoặc tính sẵn sàng.

Kiểm tra hệ thống

  1. Kiểm tra phiên bản NLTK trong môi trường Python bằng lệnh:

    python -c "import nltk; print(nltk.__version__)"
  2. Hoặc xem thông tin gói đã cài bằng:

    pip show nltk

Phiên bản từ 3.10.0 đến 3.10.3 thuộc diện lỗi; 3.10.4 là bản đã vá.

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

  1. Ưu tiên nâng cấp gói pip:nltk lên phiên bản 3.10.4. Đặc biệt lưu ý nếu ứng dụng tải corpus YCOE được chia sẻ, tải xuống hoặc có nội dung do bên khác kiểm soát trong NLTK data root được phép.

Bài viết liên quan