NestJS @nestjs/platform-fastify: bypass middleware xác thực và phân quyền do chuẩn hóa đường dẫn Fastify

Lưu ý: Dữ liệu này chỉ có tính chất tham khảo, phục vụ nghiên cứu an ninh mạng.CyStack khuyến nghị người dùng không sử dụng các thông tin này nhằm các mục đích bất hợp pháp

Lỗ hổng CVE-2026-2293 là gì?

Lỗ hổng CVE-2026-2293 là lỗ hổng Incorrect Authorization ảnh hưởng tới nest.js (phiên bản bị ảnh hưởng: 11.1.13). Lỗ hổng này được xếp hạng ở mức Cao, với điểm CVSS 8.2. Lỗ hổng này đã có mã hoặc bằng chứng khai thác công khai, nhưng điều đó chưa xác nhận việc khai thác trong thực tế.

Giới thiệu chung

Dữ liệu gốc

Một ứng dụng NestJS sử dụng @nestjs/platform-fastify có thể cho phép bỏ qua middleware xác thực/phân quyền khi các tùy chọn chuẩn hóa đường dẫn của Fastify được bật. Vấn đề này ảnh hưởng đến nest.Js: 11.1.13.

Sản phẩm và phạm vi ảnh hưởng

  • nest.js với package nestjs: bản ghi chuẩn hóa xác định phiên bản 11.1.13 là bị ảnh hưởng.
  • Advisory của vendor xác định @nestjs/platform-fastify bị ảnh hưởng ở các phiên bản <= 11.1.13 và được vá tại 11.1.14.
  • Red Hat CSAF liệt kê Red Hat Developer Hub và Red Hat OpenShift Container Platform 4 là không bị ảnh hưởng vì các sản phẩm được nêu không chứa code dễ bị lỗi.
  • Bằng chứng hiện có không xác nhận trạng thái của mọi nhánh NestJS khác hoặc các sản phẩm downstream ngoài những sản phẩm đã nêu.

Chi tiết kỹ thuật

Lỗi nằm trong adapter @nestjs/platform-fastify, nơi router của Fastify và cơ chế áp dụng middleware của NestJS diễn giải URL theo hai cách khác nhau. Đầu vào do kẻ tấn công kiểm soát là đường dẫn trong HTTP request, cụ thể là một biến thể đường dẫn được Fastify chuẩn hóa nhưng không khớp với bộ so khớp middleware của NestJS. NestJS truyền các routerOptions của Fastify, chẳng hạn ignoreTrailingSlash, ignoreDuplicateSlashes và useSemicolonDelimiter, cho router; trong khi việc chạy middleware lại dựa trên một biểu thức chính quy kiểm tra req.originalUrl. Nếu biểu thức chính quy không khớp, NestJS gọi next() và bỏ qua middleware, còn Fastify vẫn có thể chuẩn hóa đường dẫn rồi chuyển request đến handler được bảo vệ. Advisory của vendor xác định các vị trí liên quan trong packages/platform-fastify/adapters/fastify-adapter.ts, gồm các dòng xử lý router options và kiểm tra middleware. Điều kiện để lỗi có thể xảy ra là ứng dụng sử dụng adapter Fastify, bật các tùy chọn chuẩn hóa đường dẫn không mặc định và dùng middleware theo phạm vi route để bảo vệ handler; cấu trúc route và cách cấu hình middleware cụ thể của từng ứng dụng vẫn chưa được xác định.

Khả năng khai thác

  • Có thể khai thác từ xa qua request mạng đến ứng dụng NestJS bị ảnh hưởng.
  • Bản ghi đã cung cấp cho biết không yêu cầu đặc quyền trước hoặc tương tác của người dùng; điều kiện triển khai là các tùy chọn chuẩn hóa đường dẫn của Fastify phải được bật.
  • Độ phức tạp được mô tả là thấp, nhưng request vẫn phải sử dụng biến thể đường dẫn tạo ra sự khác biệt giữa kiểm tra middleware và định tuyến.
  • Trường public_exploit được đánh dấu là true, và advisory của CNA hiển thị bằng chứng PoC cho việc bypass trái phép. Điều này xác nhận có bằng chứng trình diễn công khai, không xác nhận việc khai thác trong một môi trường cụ thể.
  • Không có chiến dịch, nạn nhân hoặc sự cố cụ thể nào được xác định trong bằng chứng đã kiểm tra.

Tác động kỹ thuật

Lỗi có thể khiến một request chưa qua authentication hoặc authorization middleware vẫn được Fastify chuyển đến protected handler sau khi chuẩn hóa đường dẫn. Kết quả kỹ thuật được xác nhận là bypass kiểm soát truy cập, với khả năng cho phép thực hiện các thao tác trái phép trong phạm vi ứng dụng bị ảnh hưởng. Hậu quả đối với tính toàn vẹn dữ liệu và quyền truy cập phụ thuộc vào các handler, vai trò và thao tác nghiệp vụ được middleware bảo vệ. Record không đủ bằng chứng để kết luận rằng mọi dữ liệu đều có thể bị đọc, mọi dịch vụ có thể bị gián đoạn hoặc mọi deployment đều bị ảnh hưởng.

Tác động đến tổ chức

  • Làm suy yếu ranh giới xác thực và phân quyền của các endpoint được bảo vệ bằng middleware theo phạm vi route.
  • Có thể cho phép request trái phép thực hiện các thao tác thay đổi dữ liệu hoặc trạng thái mà ứng dụng dự kiến chỉ cho phép sau khi kiểm tra quyền.
  • Có thể dẫn đến vi phạm quy trình kiểm soát truy cập, sai lệch dữ liệu hoặc phải điều tra các request đã đến protected handler mà không qua middleware dự kiến.
  • Phạm vi dữ liệu và thao tác thực tế phụ thuộc vào handler, vai trò và logic nghiệp vụ của từng ứng dụng; bằng chứng hiện có không cho thấy mọi endpoint hoặc mọi deployment đều bị lộ.

Cách khắc phục

  1. Nâng @nestjs/platform-fastify lên đúng phiên bản 11.1.14, là phiên bản được advisory của vendor xác định đã vá lỗi.
  2. Cập nhật lockfile và triển khai lại mọi service sử dụng adapter Fastify; sau đó kiểm tra phiên bản package thực tế trong artifact và runtime.
  3. Rà soát các tùy chọn chuẩn hóa đường dẫn của Fastify và các route-scoped authentication/authorization middleware để xác định những deployment đáp ứng điều kiện khai thác.
  4. Nếu chưa thể cập nhật, advisory được kiểm tra không nêu workaround tạm thời được vendor xác nhận. Có thể ưu tiên đánh giá việc tắt các tùy chọn chuẩn hóa không mặc định và giảm exposure của các route liên quan như biện pháp giảm rủi ro tạm thời, nhưng không nên xem đây là thay thế đã được xác nhận cho bản vá.
  5. Kiểm thử lại các protected handler sau khi cập nhật, bao gồm các cách biểu diễn URL mà ứng dụng chấp nhận, để xác minh middleware và router dùng cùng một cách diễn giải đường dẫn.

Cách phát hiện

  • Kiểm kê dependency và lockfile của tất cả ứng dụng để tìm @nestjs/platform-fastify, sau đó xác minh phiên bản thực tế trong runtime, không chỉ phiên bản khai báo.
  • Kiểm tra cấu hình Fastify router để tìm ignoreTrailingSlash, ignoreDuplicateSlashes, useSemicolonDelimiter và các tùy chọn chuẩn hóa đường dẫn tương tự.
  • Lập danh sách các route-scoped middleware xác thực hoặc phân quyền cùng các protected handler mà chúng phải bảo vệ.
  • Trong môi trường kiểm thử được ủy quyền, so sánh kết quả kiểm soát truy cập của đường dẫn chuẩn với các biến thể đường dẫn được Fastify chuẩn hóa. Đây là phép kiểm tra xác thực, không phải bằng chứng rằng việc không thấy lỗi đồng nghĩa với an toàn.
  • Nếu ứng dụng có telemetry cho middleware và handler, đối chiếu các request đến protected handler với sự kiện middleware tương ứng. Đây là biện pháp giám sát phòng ngừa, không phải IOC đã được vendor xác nhận.
Nguồn (19)
Tìm hiểu thêm

Kiểm tra chuyên sâu cùng giải pháp quản lý rủi ro Web toàn diện

Giải pháp CyStack VulnScan liên tục phát hiện tài sản, xác minh lỗ hổng và giúp đội ngũ bảo mật ưu tiên khắc phục cho toàn bộ doanh nghiệp.