CVE-2026-79784 in Vocos
Tóm tắt
Bởi VulDB • 25/08/2026
Vocos instantiate một lớp được đặt tên bởi tệp cấu hình mà không hạn chế lớp nào có thể được chỉ định. Hàm `instantiate_class` trong `vocos/pretrained.py` lấy giá trị `class_path` từ cấu hình, chia nó thành mô-đun và thuộc tính, nhập mô-đun bằng cách sử dụng `__import__`, giải quyết thuộc tính bằng `getattr`, và gọi kết quả dưới dạng `args_class(*args, **kwargs)` trong đó `kwargs` là ánh xạ `init_args` của chính cấu hình. Không có danh sách cho phép (allowlist) hạn chế đường dẫn chấm (dotted path), do đó một tệp cấu hình có thể chỉ định bất kỳ callable nào có thể nhập và cung cấp các đối số mà nó được gọi với. Hàm `Vocos.from_hparams` thực hiện điều này cho mỗi mục trong `feature_extractor`, `backbone` và `head`, còn `Vocos.from_pretrained` đạt đến điểm này thông qua một tệp từ xa: nó tải xuống `config.yaml` từ kho lưu trữ Hugging Face do người gọi chỉ định và chuyển trực tiếp nó vào `from_hparams`. Việc tải mô hình từ một kho lưu trữ mà người dùng không kiểm soát sẽ thực thi mã theo ý muốn của chủ sở hữu kho trong quá trình tải. Vấn đề liên quan đến việc sử dụng `torch.load` để tải các trọng số đã tải xuống là một vấn đề riêng biệt và bị hạn chế trên các phiên bản PyTorch có mặc định `weights_only` là true, điều này khiến đường dẫn này trở thành điểm dễ tấn công duy nhất còn lại.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.