The vulnerability lies in two API endpoint handlers, getServiceHistory and listServerServices, within cmd/dashboard/controller/service.go. These functions were responsible for retrieving service information but failed to enforce the EnableShowInService privacy flag, which is intended to hide services from public view. The root cause was that these functions used underlying data access methods (ServiceSentinel.Get and ServiceSentinel.GetSortedList) that returned all services, including private ones, without any authorization checks. An unauthenticated attacker could exploit this by making requests to the corresponding API endpoints (/api/v1/service/:id/history and /api/v1/server/:id/service). This would leak the names and timing data of private services, exposing sensitive information about the monitored infrastructure. The patch introduced a new function, userCanViewService, which centralizes the authorization logic and is now called by both getServiceHistory and listServerServices to ensure that only authorized users (or public services) are returned.