1 điểm bởi GN⁺ 2025-03-24 | 1 bình luận | Chia sẻ qua WhatsApp
  • CVE-2025-29927

  • Next.js phiên bản 15.2.3 đã được phát hành để khắc phục lỗ hổng bảo mật (CVE-2025-29927). Khuyến nghị mọi triển khai Next.js tự lưu trữ sử dụng next startoutput: 'standalone' cập nhật ngay lập tức.

  • Mốc thời gian

    • 2025-02-27T06:03Z: Được tiết lộ với nhóm Next.js thông qua báo cáo lỗ hổng riêng tư trên GitHub
    • 2025-03-14T17:13Z: Nhóm Next.js bắt đầu xem xét báo cáo
    • 2025-03-14T19:08Z: Phát hành bản vá cho Next.js 15.x
    • 2025-03-14T19:26Z: Phát hành bản vá cho Next.js 14.x
    • 2025-03-17T22:44Z: Phát hành Next.js 14.2.25
    • 2025-03-18T00:23Z: Phát hành Next.js 15.2.3
    • 2025-03-18T18:03Z: CVE-2025-29927 được công bố trên GitHub
    • 2025-03-21T10:17Z: Công bố khuyến cáo bảo mật
    • 2025-03-22T21:21Z: Phát hành Next.js 13.5.9
    • 2025-03-23T06:44Z: Phát hành Next.js 12.3.5
  • Chi tiết lỗ hổng

    • Next.js sử dụng header nội bộ x-middleware-subrequest để ngăn vòng lặp vô hạn. Theo báo cáo bảo mật, có khả năng bỏ qua việc thực thi middleware để vượt qua các kiểm tra quan trọng.
  • Phạm vi ảnh hưởng

    • Bị ảnh hưởng

      • Ứng dụng Next.js tự lưu trữ sử dụng middleware (next startoutput: 'standalone')
      • Trường hợp phụ thuộc vào middleware cho xác thực hoặc kiểm tra bảo mật
      • Ứng dụng dùng Cloudflare có thể bật quy tắc WAF được quản lý
    • Không bị ảnh hưởng

      • Ứng dụng được lưu trữ trên Vercel
      • Ứng dụng được lưu trữ trên Netlify
      • Ứng dụng triển khai bằng xuất tĩnh (middleware không được thực thi)
  • Các phiên bản đã vá

    • Next.js 15.x: sự cố đã được khắc phục trong 15.2.3
    • Next.js 14.x: sự cố đã được khắc phục trong 14.2.25
    • Next.js 13.x: sự cố đã được khắc phục trong 13.5.9
    • Next.js 12.x: sự cố đã được khắc phục trong 12.3.5
    • Nếu không thể vá lên phiên bản an toàn, khuyến nghị ngăn các yêu cầu từ người dùng bên ngoài chứa header x-middleware-subrequest
  • Trách nhiệm bảo mật của chúng tôi

    • Next.js đã công bố 16 khuyến cáo bảo mật kể từ năm 2016. Khuyến cáo bảo mật GitHub và CVE là tiêu chuẩn ngành để thông báo cho người dùng, nhà cung cấp và doanh nghiệp về các lỗ hổng phần mềm. Để cải thiện những điểm còn thiếu trong việc liên lạc với đối tác, họ đã mở danh sách gửi thư dành cho đối tác. Có thể liên hệ qua partners@nextjs.org để được thêm vào.

1 bình luận

 
GN⁺ 2025-03-24
Ý kiến trên Hacker News
  • Hệ thống middleware của Next có rất nhiều vấn đề và có lẽ nên được triển khai lại từ đầu

    • Không có cách chính thức để nối chuỗi nhiều middleware
    • Các hàm chính được đặt dưới dạng static member, nên có thể gây vấn đề khi dùng middleware bên thứ ba
    • Thiếu cách thức giao tiếp giữa middleware và route handler
    • Cách truyền dữ liệu qua header là không an toàn
    • Cũng có vấn đề là phải từ bỏ tính năng tự động cache
    • Khó lấy được hostname thực của request
  • Phát hiện một bài viết khác về vấn đề bảo mật của hệ thống middleware

    • Cách giao tiếp qua header bị tách rời khỏi việc kiểm tra đầu vào của người dùng
    • Việc cho phép mọi header từ người dùng có thể là rủi ro
    • Cần có sự hỗ trợ từ framework để giải quyết các vấn đề trong thiết kế máy chủ
  • Thông tin về lỗ hổng bảo mật của Next.js

    • Có một lỗ hổng khiến máy chủ có thể trả về phản hồi sai nếu thêm một header cụ thể
    • Lỗ hổng này không có CVE, và cũng không rõ những phiên bản nào bị ảnh hưởng
    • Theo chính sách hỗ trợ của Next.js, chỉ một số phiên bản nhất định được cung cấp bản vá
  • Lo ngại về việc chậm khắc phục vấn đề bảo mật của Next.js

    • Chỉ sau hơn 2 tuần kể từ khi được báo cáo thì việc khắc phục mới bắt đầu
    • Có khả năng mức độ nghiêm trọng của vấn đề đã không được truyền đạt đúng mức
  • Chỉ trích độ phức tạp của Next.js

    • React đã mang lại nhiều giá trị, nhưng Next chỉ làm tăng thêm độ phức tạp
    • Định tuyến dựa trên tệp và server-side rendering chỉ hữu ích trong một số tình huống nhất định
  • Tính khả thi đơn giản của lỗ hổng bảo mật

    • Vấn đề có thể cho phép vượt qua xác thực chỉ bằng cách thêm một header cụ thể
  • Vấn đề Next.js sử dụng header nội bộ

    • Có một header nội bộ dùng để ngăn request đệ quy
    • Có khả năng header này cho phép bỏ qua các bước kiểm tra quan trọng
  • Sự bất an về lựa chọn tự self-host Next.js

    • Càng đọc bình luận trên HN càng thấy bất an về lựa chọn này
  • Lo ngại về sự chậm trễ trong việc khắc phục vấn đề bảo mật

    • Việc chậm khắc phục suốt 13 ngày là một vấn đề lớn