F5 NGINX Open Source và NGINX Plus bị bypass xác thực client certificate qua TLS session resumption

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-2025-23419 là gì?

Lỗ hổng CVE-2025-23419 là lỗ hổng Incorrect Authorization ảnh hưởng tới NGINX Open Source và NGINX Plus. Lỗ hổng này được xếp hạng ở mức Trung bình, với điểm CVSS 5.3. Các nguồn hiện có chưa ghi nhận lỗ hổng này bị khai thác.

Giới thiệu chung

Dữ liệu gốc

Khi nhiều server block được cấu hình để dùng chung cùng một địa chỉ IP và port, kẻ tấn công có thể sử dụng session resumption để bypass các yêu cầu xác thực client certificate trên các server này. Lỗ hổng này phát sinh khi TLS Session Tickets https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_session_ticket_key được sử dụng và/hoặc SSL session cache https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_session_cache được sử dụng trong default server, đồng thời default server đang thực hiện xác thực client certificate.   Ghi chú: Các phiên bản phần mềm đã đạt End of Technical Support (EoTS) không được đánh giá.

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

F5 ghi nhận các phạm vi sau:

  • NGINX Open Source: mục affected bắt đầu tại 1.11.4 với điều kiện lessThan: *. Các mốc 1.26.3 và 1.27.4 được đánh dấu unaffected cho các nhánh tương ứng.
  • NGINX Plus: mục affected bắt đầu tại R17 với điều kiện lessThan: *. Các mốc R32 P2 và R33 P2 được đánh dấu unaffected cho các nhánh tương ứng.
  • Debian: bản cập nhật bookworm được ghi nhận tại package 1.22.1-9+deb12u1; bản cập nhật Debian 11 bullseye được ghi nhận tại package 1.18.0-6.1+deb11u4. Debian cũng ghi rõ ngx_stream_ssl_module không bị ảnh hưởng trong bullseye vì chức năng stream virtual server được bổ sung ở nhánh phát hành sau.

Bản ghi đặt default status của NGINX Open Source là unknown và của NGINX Plus là unaffected, nhưng các trạng thái theo nhánh ở trên có ưu tiên cho việc đánh giá. Các nhánh hoặc bản dựng không được liệt kê riêng không nên được suy ra là an toàn. Phần mô tả của F5 cũng nêu rằng các phiên bản đã đạt End of Technical Support không được đánh giá.

Chi tiết kỹ thuật

F5 NGINX Open Source và NGINX Plus có lỗi trong việc ràng buộc ngữ cảnh xác thực khi TLS session resumption được sử dụng giữa nhiều named virtual host dùng chung một địa chỉ IP và port. Điều kiện phơi nhiễm gồm việc NGINX được build với OpenSSL, bật session resumption bằng ssl_session_cache hoặc ssl_session_tickets, đồng thời default server thực hiện xác thực client certificate.

Thông báo kỹ thuật mô tả việc một SSL session có thể được tái sử dụng trong các virtual host không liên quan, qua đó bỏ qua yêu cầu client certificate của server block đích. Phân tích bản vá Debian giải thích rằng trong OpenSSL, việc resumption xảy ra trong default SSL context trước khi gọi SNI callback; đây là điều kiện triển khai đứng sau việc tái sử dụng session giữa các SNI context. Lỗi thuộc nhóm CWE-863, Incorrect Authorization, vì hệ thống có thể chấp nhận một session mà không áp dụng đúng yêu cầu xác thực của virtual host đích. Bản ghi không xác định chính xác các endpoint hoặc dữ liệu nào sẽ truy cập được sau khi vượt qua bước kiểm tra, và không chứng minh việc thực thi mã, thay đổi dữ liệu hoặc nâng quyền hệ thống.

Khả năng khai thác

Lỗ hổng có thể bị khai thác qua mạng trên listener bị ảnh hưởng. Bản ghi F5 mô tả độ phức tạp thấp, không cần tương tác người dùng và yêu cầu mức đặc quyền thấp; kẻ tấn công vẫn phải tiếp cận listener và có khả năng sử dụng lại một session phù hợp với cấu hình.

Bản ghi được cung cấp đánh dấu public_exploit là false. Dữ liệu CISA coordinator đi kèm bản ghi đánh dấu exploitation là none và automatable là no. Đây chỉ là trạng thái được ghi nhận trong các nguồn hiện có, không phải bằng chứng rằng không có hành vi khai thác nào xảy ra ngoài phạm vi quan sát đó. Không có mã khai thác, chiến dịch, nạn nhân hoặc IOC cụ thể nào được xác nhận trong bằng chứng đã kiểm tra.

Tác động kỹ thuật

Kết quả kỹ thuật chính là bypass một bước kiểm tra authorization dựa trên client certificate khi session được sử dụng lại trong ngữ cảnh virtual host không phù hợp. Một client có session phù hợp có thể được NGINX xử lý như đã vượt qua yêu cầu chứng chỉ của server block đích, nhưng các lớp authorization của ứng dụng vẫn có thể ngăn truy cập.

Tác động được xác nhận chủ yếu là nguy cơ lộ thông tin hoặc truy cập trái phép trong phạm vi các tài nguyên được bảo vệ bằng client certificate. Bản ghi không xác nhận tác động đến tính toàn vẹn hoặc tính sẵn sàng, không mô tả thực thi mã và không chứng minh nâng quyền ngoài việc vượt qua yêu cầu client certificate. Mức độ ảnh hưởng thực tế phụ thuộc vào việc các virtual host có chia sẻ listener hay không, cấu hình default server, cơ chế session resumption và các kiểm soát authorization phía sau.

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

Lỗi có thể làm suy yếu ranh giới xác thực giữa các virtual host dùng chung listener, khiến một request được xử lý mà không đáp ứng yêu cầu client certificate của host đích. Điều này có thể mở đường tới dữ liệu hoặc endpoint vốn được bảo vệ bằng client certificate và có thể làm suy yếu sự tách biệt giữa các dịch vụ hoặc tenant trên cùng listener.

Bằng chứng hiện có không xác nhận một vụ xâm nhập, rò rỉ dữ liệu hoặc truy cập thành công vào một hệ thống cụ thể. Lỗi không được mô tả là gây thay đổi dữ liệu, thực thi mã hoặc từ chối dịch vụ; tác động thực tế vẫn phụ thuộc vào các lớp authorization tiếp theo của ứng dụng.

Cách khắc phục

  1. Nâng cấp NGINX Open Source: sử dụng mốc được F5 đánh dấu unaffected là 1.26.3 hoặc 1.27.4, tùy nhánh đang được duy trì. Không coi một mốc của nhánh này là bằng chứng rằng mọi nhánh song song khác đã được sửa.
  2. Nâng cấp NGINX Plus: sử dụng mốc được F5 đánh dấu unaffected là R32 P2 hoặc R33 P2, tùy release branch đang triển khai.
  3. Đối với package Debian: trên bookworm, áp dụng package 1.22.1-9+deb12u1; trên bullseye, áp dụng package 1.18.0-6.1+deb11u4 hoặc bản cập nhật bảo mật thay thế được Debian xác nhận.
  4. Nếu chưa thể nâng cấp, tham khảo hướng dẫn mitigation cấu hình chính thức của F5 cho đúng deployment. Bằng chứng hiện có cho biết lỗi có thể được giảm thiểu bằng cấu hình nhưng không cung cấp đủ chi tiết để xác nhận một setting cụ thể là workaround an toàn. Không nên mặc định rằng chỉ tắt một cơ chế session resumption là đủ nếu chưa kiểm thử toàn bộ listener và các server block.
  5. Sau khi thay đổi, kiểm thử lại yêu cầu client certificate trên default server và từng named server block bằng cả kết nối mới lẫn session được resume.

Cách phát hiện

  1. Kiểm kê các triển khai F5 NGINX Open Source và NGINX Plus, bao gồm cả package do hệ điều hành phân phối, rồi đối chiếu với các mốc affected và unaffected trong phần Affected Summary.
  2. Kiểm tra cấu hình listener để tìm nhiều server block dùng chung địa chỉ IP và port, xác định block nào là default server và ghi nhận các hostname hoặc SNI được phục vụ trên listener đó.
  3. Xác minh default server có thực hiện client certificate authentication hay không, đồng thời kiểm tra việc bật ssl_session_cache hoặc ssl_session_tickets và việc sử dụng OpenSSL.
  4. Trong môi trường kiểm thử có kiểm soát, xác nhận rằng mỗi named server block vẫn yêu cầu đúng client certificate sau cả full TLS handshake và session resumption. Kiểm tra riêng các chuyển đổi giữa default server và từng SNI host.
  5. Rà soát access log và authentication log như một biện pháp phòng ngừa để tìm các request được chấp nhận vào tài nguyên vốn yêu cầu client certificate nhưng không có thông tin xác thực tương ứng. Đây là hướng rà soát chung, 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.