Cảnh báo CVE nghiêm trọng liên quan đến Next.js
Một lỗ hổng CVE mới đã được phát hiện trong Next.js, có khả năng dẫn đến tình trạng remote code execution trong các ứng dụng sử dụng phương thức triển khai Node.js của ImageResponse từ gói next/og. Vấn đề này được định danh là GHSA-vcvr-r3jv-pc5j, gây ảnh hưởng trực tiếp đến Next.js từ phiên bản 16.2.0 đến 16.3.5.
Lỗ hổng này phát sinh khi ứng dụng cho phép dữ liệu từ người dùng kiểm soát được đưa vào nội dung SVG, các thuộc tính SVG hoặc thuộc tính kiểu dữ liệu trong quá trình tạo hình ảnh động. Các nhà phát triển thường sử dụng ImageResponse để tạo hình ảnh Open Graph, hình ảnh xem trước trên mạng xã hội và các đồ họa được yêu cầu tại thời điểm truy cập.
Nguyên nhân và cơ chế khai thác lỗ hổng
Lỗ hổng bắt nguồn từ một vấn đề ở cấp độ upstream trong Satori, thư viện tạo SVG được sử dụng trong quy trình kết xuất. Cụ thể, Satori đã không thực hiện thoát (escape) các giá trị nhất định trước khi đưa chúng vào kết quả SVG, tạo điều kiện cho dữ liệu được tạo thủ công bị trình thông dịch hiểu nhầm thành mã đánh dấu SVG.
Lỗ hổng upstream trong Satori, được xác định là CVE-2026-94545, ảnh hưởng đến các phiên bản từ 0.0.27 đến 0.33.4 và đã được khắc phục trong phiên bản 0.33.5. Một ứng dụng bị coi là có nguy cơ nếu nó chèn dữ liệu không tin cậy vào đánh dấu SVG, các thuộc tính hoặc kiểu dữ liệu.
Chi tiết về rủi ro bảo mật
GitHub đã phân loại vấn đề này là nghiêm trọng dựa trên thang điểm CVSS v4 với các đặc điểm: khai thác dựa trên mạng, độ phức tạp tấn công thấp, không yêu cầu đặc quyền và không cần tương tác của người dùng. Việc khai thác thành công có thể ảnh hưởng đến tính bảo mật, tính toàn vẹn và tính khả dụng của hệ thống bị tấn công cũng như các hệ thống hạ nguồn.
Các điểm truy cập tiềm ẩn
Kẻ tấn công có thể nhắm mục tiêu vào các tuyến tạo hình ảnh công cộng xử lý các giá trị từ chuỗi truy vấn (query-string), nội dung bài đăng, tên hồ sơ, tiêu đề trang hoặc các dữ liệu khác do người dùng cung cấp. Người phát triển cần kiểm tra mọi tuyến đường ImageResponse chấp nhận đầu vào bên ngoài, bao gồm các nguồn dữ liệu như:
- URL và tham số tìm kiếm URL.
- Tiêu đề HTTP (headers).
- Dữ liệu từ biểu mẫu (form submissions).
- Nội dung từ hệ thống quản trị nội dung (CMS).
- Hồ sơ người dùng.
Hướng dẫn cập nhật bản vá và giảm thiểu rủi ro
Tổ chức cần thực hiện cập nhật bản vá lên phiên bản Next.js 16.3.6 càng sớm càng tốt để khắc phục lỗi. Phiên bản này đã tích hợp sửa lỗi cần thiết cho lộ trình kết xuất dễ bị tổn thương, giúp bảo vệ hệ thống khỏi các nỗ lực xâm nhập trái phép.
Trong trường hợp các đội ngũ kỹ thuật chưa thể cập nhật ngay lập tức, cần đảm bảo rằng không có dữ liệu do kẻ tấn công kiểm soát nào lọt vào nội dung SVG, thuộc tính hoặc các kiểu CSS được tạo thông qua phương thức triển khai Node.js ImageResponse. Việc xác thực đầu vào đơn thuần có thể không đủ nếu các chuỗi không tin cậy vẫn bị trình thông dịch xử lý như mã đánh dấu.
Một giải pháp thay thế là chuyển các tuyến đường bị ảnh hưởng sang phương thức triển khai Edge ImageResponse, vì phiên bản này không bị ảnh hưởng. Tuy nhiên, các tổ chức nên kiểm tra hành vi kết xuất và tính tương thích của việc triển khai trước khi thực hiện các thay đổi về cấu trúc.










