Bypass authorization làm lộ bản ghi riêng tư của netbox-community NetBox qua API REST và GraphQL

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

Lỗ hổng CVE-2026-86176 là lỗ hổng Authorization Bypass Through User-Controlled Key ảnh hưởng tới netbox (phiên bản bị ảnh hưởng: ≤ 4.7.0). Lỗ hổng này được xếp hạng ở mức Trung bình, với điểm CVSS 5.3. 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

NetBox đến và bao gồm 4.7.0 không giới hạn đúng phạm vi các bản ghi riêng tư theo người dùng trong các endpoint API REST và GraphQL cho Notifications, Subscriptions và Bookmarks. Người dùng đã xác thực có quyền view có thể truy cập các bản ghi riêng tư của mọi người dùng thông qua queryset không được giới hạn phạm vi, từ đó làm lộ người dùng nào đang theo dõi hoặc bookmark object nào.

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

  • netbox-community NetBox: trạng thái mặc định là unaffected, nhưng các bản ghi semver từ 0 đến và bao gồm 4.7.0 được đánh dấu affected.
  • Phạm vi bị ảnh hưởng gồm các REST và GraphQL API liên quan đến Notifications, Subscriptions và Bookmarks.
  • Hồ sơ không cung cấp ranh giới fixed version. Trạng thái patch_available được đánh dấu true nhưng không gắn với bản phát hành cụ thể, vì vậy không nên coi các nhánh sau hoặc nhánh song song là đã an toàn nếu chưa có xác nhận riêng.

Chi tiết kỹ thuật

Notifications, Subscriptions và Bookmarks trong NetBox là các bản ghi riêng tư theo từng người dùng, nhưng các REST viewset và GraphQL resolver bị ảnh hưởng sử dụng queryset phạm vi rộng thay vì ràng buộc kết quả với người dùng đang gửi yêu cầu. Advisory của nhà nghiên cứu xác định nguyên nhân cốt lõi là việc sử dụng Model.objects.all() và thiếu bộ lọc user=request.user. Client đã xác thực có thể truy cập các bề mặt API này; thông thường cần quyền view tương ứng cho model, nhưng cấu hình sử dụng EXEMPT_VIEW_PERMISSIONS=['*'] có thể khiến mọi người dùng đã xác thực truy cập được các bản ghi. Dữ liệu trả về có thể bao gồm username hoặc danh tính của chủ sở hữu và tên hoặc giá trị hiển thị của object được theo dõi, tùy thuộc vào các trường API cung cấp và quyền khác của người gửi yêu cầu. Đây là lỗi kiểm soát authorization được phân loại là CWE-639. Bằng chứng hiện có xác nhận thiếu bộ lọc theo người dùng, nhưng chưa xác định mọi triển khai có cung cấp chính xác cùng tập trường hay không, cũng như một cấu hình cụ thể đã bị lạm dụng hay chưa.

Khả năng khai thác

Lỗi có thể bị truy cập qua mạng thông qua các API REST và GraphQL. Kẻ tấn công cần một tài khoản hoặc token đã xác thực; thông thường tài khoản cần quyền view liên quan, và không cần người dùng khác tương tác. Bản ghi có một advisory công khai của nhà nghiên cứu kèm xác nhận kiểm thử trên viewset và GraphQL schema thực tế, vì vậy chi tiết khai thác công khai đã tồn tại. Cấu hình EXEMPT_VIEW_PERMISSIONS=['*'] có thể mở rộng điều kiện truy cập cho mọi người dùng đã xác thực. Bằng chứng được cung cấp không xác định trạng thái khai thác ngoài thực tế.

Tác động kỹ thuật

Khai thác thành công cho phép user đã xác thực đọc dữ liệu riêng tư của các user khác qua ranh giới authorization. Dữ liệu bị lộ có thể liên kết danh tính user với các object họ theo dõi hoặc bookmark, làm tăng rủi ro suy đoán về hạ tầng, công việc hoặc hoạt động vận hành. Tác động chính là mất confidentiality trong phạm vi NetBox; không có bằng chứng cho thấy lỗi này cho phép sửa đổi bản ghi hoặc gây mất availability. Mức độ lộ thực tế phụ thuộc vào các quyền view, cấu hình wildcard và các trường được trả về trong từng API.

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

Lỗi phá vỡ ranh giới riêng tư giữa các user và có thể tiết lộ danh tính người dùng cùng các object mà họ đang theo dõi hoặc bookmark. Tên của site, thiết bị, địa chỉ IP, mạch hoặc các hạ tầng khác có thể làm lộ cấu trúc vận hành và mối quan tâm của từng user nếu các giá trị đó xuất hiện trong bản ghi. Điều này có thể ảnh hưởng đến privacy, phân tách thông tin nội bộ và khả năng bảo vệ các hoạt động giám sát hoặc điều tra. Bằng chứng hiện có chỉ xác nhận tác động đến confidentiality; chưa xác nhận sửa đổi dữ liệu hoặc làm gián đoạn dịch vụ.

Cách khắc phục

  1. Triển khai bản sửa do nhà cung cấp duy trì khi bản sửa được xác nhận. Hồ sơ và advisory được kiểm tra không nêu fixed release cụ thể, vì vậy không được tự động coi một bản phát hành mới hơn là đã sửa lỗi.
  2. Trong thời gian chờ bản sửa, hạn chế hoặc thu hồi các quyền extras.view_notification, extras.view_subscription và extras.view_bookmark khỏi user hoặc API token không thực sự cần truy cập API. Đây chỉ là biện pháp giảm phạm vi tiếp cận, không sửa nguyên nhân trong code.
  3. Nếu đang bật EXEMPT_VIEW_PERMISSIONS=['*'], hãy tắt wildcard hoặc loại trừ ba model này qua EXEMPT_EXCLUDE_MODELS để wildcard không mở rộng quyền đọc cho các bản ghi riêng tư.
  4. Rà soát log và đánh giá khả năng các bản ghi riêng tư đã được trả về cho tài khoản không phải chủ sở hữu. Nếu xác định có lộ dữ liệu, xử lý theo quy trình ứng phó disclosure của tổ chức.

Cách phát hiện

  1. Kiểm kê các triển khai NetBox và đối chiếu phiên bản đang chạy với nhánh bị ảnh hưởng trong hồ sơ.
  2. Rà soát quyền object được cấp cho extras.view_notification, extras.view_subscription và extras.view_bookmark, đặc biệt với user và API token có quyền thấp.
  3. Kiểm tra cấu hình EXEMPT_VIEW_PERMISSIONS; nếu có giá trị wildcard, xác định liệu Notifications, Subscriptions và Bookmarks có được loại trừ hay không.
  4. Trong môi trường kiểm thử được cấp phép, xác nhận phản hồi REST và GraphQL chỉ trả về bản ghi thuộc user đang yêu cầu, không trả về bản ghi của user khác.
  5. Rà soát log truy cập đối với các collection notification, subscription và bookmark cùng các truy vấn GraphQL dạng list. Đây là biện pháp giám sát thận trọng, không phải indicator đã được xác nhận.
  6. Không thấy bản ghi chéo người dùng trong một lần kiểm tra giới hạn không chứng minh hệ thống an toàn nếu quyền hoặc cấu hình triển khai khác nhau.
Nguồn (20)
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.