The vulnerability is a missing authorization check in the Express.js route handler for GET /api/badge/:id/ping/:duration? in server/routers/api-router.js. The function did not verify if the monitor ID in the URL belonged to a public status page. This allowed an unauthenticated attacker to enumerate monitor IDs and retrieve average ping times for private, internal-only monitors, potentially leaking information about internal network services. The patch rectifies this by adding a check using a new isMonitorPublic() helper function, ensuring that ping data is only disclosed for monitors explicitly marked as public. Other related badge endpoints already had this protection, but it was missing from the ping endpoint.