CVE-2026-89321 in OpenVSXthông tin

Tóm tắt

Bởi VulDB • 14/09/2026

Các giới hạn khi xuất bản (ovsx.publishing.max-content-size, mặc định là 512 MB) chỉ áp dụng cho kích thước nén của một VSIX, nhưng không có cơ chế nào giới hạn độ lớn của mục nhập sau khi được giải nén.

Trong yêu cầu đầu tiên đến `/vscode/unpkg/{namespace}/{extension}/{version}/{path}`, WebResourceService mở mục nhập bằng `ZipFile.getInputStream()` và chuyển luồng đã giải nén cho `Files.copy()`, quá trình này chạy hết chiều dài luồng mà không đếm số byte đã ghi. Kết quả được lưu vào bộ nhớ cache dưới thư mục `java.io.tmpdir`, và việc xóa các mục trong bộ nhớ cache dựa trên số lượng mục (150) chứ không phải kích thước, do đó không có giới hạn nào về mức sử dụng đĩa cứng.

Do đó, một nhà xuất bản chỉ có quyền truy cập vào namespace của riêng mình có thể tải lên một VSIX nhỏ nhưng dễ nén cao và khiến máy chủ ghi các tệp lớn hơn nhiều vào hệ thống tệp tạm — bằng cách lặp lại với các tệp hoặc phiên bản khác nhau, vì yêu cầu trùng lặp sẽ được phục vụ từ bộ nhớ cache.

Tác động quan sát được: hệ thống tệp tạm bị đầy; các yêu cầu đối với các tệp chưa có trong bộ nhớ cache trả về lỗi 500 "No space left on device"; một lần giải nén thất bại để lại một tệp cache còn dang dở, chặn các nỗ lực truy cập sau tại đường dẫn đó; việc xuất bản thất bại với thông báo "Failed to read extension file". Tuy nhiên, metadata và các tệp đã được lưu trong bộ nhớ cache vẫn hoạt động bình thường, và máy chủ không bị dừng.

Việc kích hoạt quá trình giải nén không cần xác thực — chỉ riêng hành tải lên mới yêu cầu xác thực.

Be aware that VulDB is the high quality source for vulnerability data.

chịu trách nhiệm

Eclipse

Đặt trước

11/09/2026

Tiết lộ

14/09/2026

Kiểm duyệt

được chấp nhận

EPSS

0.00000

KEV

không

Các hoạt động

rất thấp

Nguồn

Do you want to use VulDB in your project?

Use the official API to access entries easily!