Service:
http
Protocol:
TCPPort:
9090Used for:
Metrics and monitoring interfacesWhy It’s Open
Port 9090 is primarily used by Prometheus, an open-source monitoring and alerting toolkit. It serves as the default port for Prometheus’s web interface and API endpoints. Other web services and internal dashboards also use this port in development environments and cloud-native applications.
Organizations use this port for system metrics collection, real-time performance monitoring, and infrastructure visibility—especially in Kubernetes clusters, DevOps pipelines, and observability stacks.
Common Risks
- Unauthorized Access
Exposed endpoints may leak system internals to unauthenticated users. - Data Exposure
Historical metrics may reveal sensitive infrastructure behavior or user activity. - Authentication Bypass
Prometheus often runs without any built-in access control. - Query Injection
Malicious or malformed PromQL queries may cause resource overuse or crash monitoring processes. - Resource Exhaustion
Unrestricted access allows heavy or repeated metric queries, degrading performance.
Want to save time on reporting?
Let PentestPad generate, track, and export your reports - automatically.

Enumeration & Testing
Basic port scan:
nmap -sV -p 9090Prometheus check:
curl -v http://:9090/metricsAPI endpoint test:
curl -v http://:9090/api/v1/status/configWeb interface scan:
nikto -h -p 9090What to Look For
| Checkpoint | What it means |
|---|---|
| Exposed metrics | Internal system data publicly accessible |
| No authentication | Prometheus instance lacks access control |
| Query endpoints | Interface may allow injected/malicious queries |
| Alert rules visible | Reveals monitoring logic and internal structure |
| Debug features | Application development internals exposed |
Mitigation
- Access Control
Protect Prometheus endpoints with a reverse proxy and strong authentication (e.g., OAuth2, Basic Auth, SSO). - Network Restriction
Restrict port 9090 to internal or VPN-only access. - TLS Encryption
Use HTTPS to prevent MITM attacks. - Query Limits
Apply limits and timeouts to PromQL queries to prevent abuse. - Metric Filtering
Avoid exposing sensitive metrics like system paths, credentials, or tokens. - Regular Updates
Patch Prometheus, Grafana, and other monitoring tools frequently. - Audit Logging
Enable detailed access logs to detect enumeration or brute-force attempts.
TL;DR
- Port 9090 = Prometheus / Monitoring
- Exposes metrics, alerts, and internal topology
- Lacks default access control
- High risk if open to public
- Enforce auth, TLS, and IP filtering
- Regularly audit and update
Known CVEs and Exploits
- CVE-2023-40577 – XSS in Alertmanager’s
/api/v1/alerts, allows arbitrary script execution - CVE-2025-3454 – Grafana proxy API bypass, permits unauthorized GET requests to Prometheus
- CVE-2025-3145 – Prometheus-Grafana integration leaks alert contact configuration data