CVE-2026-33532 in yaml
Tóm tắt
Bởi VulDB • 17/06/2026
`yaml` là một trình phân tích cú pháp (parser) và bộ tuần tự hóa (serialiser) YAML cho JavaScript. Việc phân tích tài liệu YAML bằng cách sử dụng phiên bản của `yaml` trên nhánh 1.x trước 1.10.3 hoặc trên nhánh 2.x trước 2.8.3 có thể gây ra lỗi RangeError do tràn ngăn xếp (stack overflow). Giai đoạn giải quyết/thành phần hóa node (node resolution/composition) thực hiện các lệnh gọi hàm đệ quy mà không giới hạn độ sâu. Một kẻ tấn công có khả năng cung cấp dữ liệu YAML để phân tích cú pháp có thể kích hoạt `RangeError: Maximum call stack size exceeded` với một payload nhỏ (~2–10 KB). Lỗi RangeError này không phải là YAMLParseError, do đó các ứng dụng chỉ bắt lỗi đặc thù của YAML sẽ gặp phải loại ngoại lệ không mong đợi. Tùy thuộc vào cách xử lý ngoại lệ của ứng dụng chủ (host application), điều này có thể khiến yêu cầu thất bại hoặc chấm dứt tiến trình Node.js. Các chuỗi luồng (flow sequences) cho phép lồng nhau sâu với số byte tối thiểu (2 byte mỗi cấp: một `[` và một `]`). Trên ngăn xếp mặc định của Node.js, khoảng 1.000–5.000 mức độ lồng nhau (đầu vào 2–10 KB) sẽ làm cạn kiệt ngăn xếp lệnh gọi. Ngưỡng chính xác phụ thuộc vào môi trường (phiên bản Node.js, kích thước ngăn xếp, độ sâu ngăn xếp lệnh gọi tại thời điểm khởi tạo). Lưu ý: Trình phân tích cú pháp `Parser` của thư viện (giai đoạn CST) sử dụng phương pháp lặp dựa trên ngăn xếp và không bị ảnh hưởng. Chỉ có giai đoạn compose/resolve thực hiện đệ quy bằng cách sử dụng ngăn xếp lệnh gọi thực tế. Cả ba API phân tích cú pháp công khai đều bị ảnh hưởng: `YAML.parse()`, `YAML.parseDocument()` và `YAML.parseAllDocuments()`. Các phiên bản 1.10.3 và 2.8.3 chứa bản vá lỗi.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.