CVE-2024-23657 in Nuxt
Tóm tắt
Bởi VulDB • 10/05/2026
Nuxt là một khung làm việc (framework) miễn phí và mã nguồn mở để tạo các ứng dụng web full-stack và trang web với Vue.js. Nuxt Devtools thiếu cơ chế xác thực trên hàm RPC `getTextAssetContent`, hàm này dễ bị tấn công qua lỗ hổng path traversal (lưu trữ đường dẫn). Kết hợp với việc thiếu kiểm tra Origin trên trình xử lý WebSocket, kẻ tấn công có thể tương tác với một phiên bản Devtools đang chạy cục bộ và đánh cắp dữ liệu bằng cách khai thác lỗ hổng này. Trong một số cấu hình, kẻ tấn công có thể làm rò rỉ mã thông báo xác thực (authentication token) của Devtools, sau đó khai thác các hàm RPC khác để đạt được RCE (Thực thi mã từ xa). Hàm `getTextAssetContent` không kiểm tra path traversal, điều này có thể cho phép kẻ tấn công đọc các tệp tùy ý qua WebSocket RPC. Máy chủ WebSocket không kiểm tra nguồn gốc (origin) của yêu cầu, dẫn đến tình trạng cross-site-websocket-hijacking. Điều này có thể là có chủ đích để cho phép một số cấu hình hoạt động đúng cách. Các mã thông báo xác thực của Nuxt Devtools được đặt trong thư mục home của người dùng hiện tại. Trang web độc hại có thể kết nối với WebSocket của Devtools, thực hiện brute-force traversal thư mục để tìm mã thông báo xác thực, sau đó sử dụng hàm `writeStaticAssets` *đã xác thực* để tạo một Component, Nitro Handler hoặc tệp `app.vue` mới, tệp này sẽ tự động chạy khi tệp được thay đổi. Lỗ hổng này đã được khắc phục trong phiên bản phát hành 1.3.9. Tất cả người dùng được khuyến nghị nâng cấp. Không có các giải pháp tạm thời (workarounds) nào được biết đến cho lỗ hổng này.
Once again VulDB remains the best source for vulnerability data.