openresty
tcp/443
Exposing Swagger/OpenAPI documentation is primarily a risk if your API has underlying security flaws, as it gives attackers a precise roadmap to find them.
Those detail every endpoint, parameter, and data model, making it easier to discover and exploit vulnerabilities like broken access control or injection points.
While a perfectly secure API mitigates the danger, protecting your documentation is a critical layer of defense that forces attackers to work without a map.
Severity: info
Fingerprint: 5733ddf49ff49cd1b885ff439a214f497982facdc5c71fb6552877008cf4821a
Public Swagger UI/API detected at path: /swagger.json - sample paths:
DELETE /chartrepo/{repo}/charts/{name}/{version}/labels/{id}
DELETE /repositories/{repo_name}/labels/{label_id}
DELETE /repositories/{repo_name}/tags/{tag}/labels/{label_id}
GET /chartrepo/health
GET /chartrepo/{repo}/charts
GET /chartrepo/{repo}/charts/{name}
GET /chartrepo/{repo}/charts/{name}/{version}
GET /chartrepo/{repo}/charts/{name}/{version}/labels
GET /configurations
GET /health
GET /labels
GET /labels/{id}
GET /labels/{id}/resources
GET /ldap/groups/search
GET /ldap/users/search
GET /logs
GET /projects
GET /projects/{project_id}
GET /projects/{project_id}/immutabletagrules
GET /projects/{project_id}/logs
GET /projects/{project_id}/members
GET /projects/{project_id}/members/{mid}
GET /projects/{project_id}/metadatas
GET /projects/{project_id}/metadatas/{meta_name}
GET /projects/{project_id}/robots
GET /projects/{project_id}/robots/{robot_id}
GET /projects/{project_id}/scanner
GET /projects/{project_id}/scanner/candidates
GET /projects/{project_id}/summary
GET /projects/{project_id}/webhook/jobs
GET /projects/{project_id}/webhook/lasttrigger
GET /projects/{project_id}/webhook/policies
GET /projects/{project_id}/webhook/policies/{policy_id}
GET /quotas
GET /quotas/{id}
GET /registries
GET /registries/{id}
GET /registries/{id}/info
GET /registries/{id}/namespace
GET /replication/adapters
GET /replication/executions
GET /replication/executions/{id}
GET /replication/executions/{id}/tasks
GET /replication/executions/{id}/tasks/{task_id}/log
GET /replication/policies
GET /replication/policies/{id}
GET /repositories
GET /repositories/top
GET /repositories/{repo_name}/labels
GET /repositories/{repo_name}/signatures
GET /repositories/{repo_name}/tags
GET /repositories/{repo_name}/tags/{tag}
GET /repositories/{repo_name}/tags/{tag}/labels
GET /repositories/{repo_name}/tags/{tag}/manifest
GET /repositories/{repo_name}/tags/{tag}/scan
GET /repositories/{repo_name}/tags/{tag}/scan/{uuid}/log
GET /retentions/metadatas
GET /retentions/{id}
GET /retentions/{id}/executions
GET /retentions/{id}/executions/{eid}/tasks
GET /retentions/{id}/executions/{eid}/tasks/{tid}
GET /scanners
GET /scanners/{registration_id}
GET /scanners/{registration_id}/metadata
GET /scans/all/metrics
GET /scans/schedule/metrics
GET /search
GET /statistics
GET /system/CVEWhitelist
GET /system/gc
GET /system/gc/schedule
GET /system/gc/{id}
GET /system/gc/{id}/log
GET /system/scanAll/schedule
GET /systeminfo
GET /systeminfo/getcert
GET /systeminfo/volumes
GET /usergroups
GET /usergroups/{group_id}
GET /users
GET /users/current
GET /users/current/permissions
GET /users/search
GET /users/{user_id}
PATCH /retentions/{id}/executions/{eid}
POST /chartrepo/charts
POST /chartrepo/{repo}/prov
POST /email/ping
POST /internal/syncquota
POST /internal/syncregistry
POST /ldap/ping
POST /ldap/users/import
POST /projects/{project_id}/webhook/policies/test
POST /registries/ping
POST /retentions
POST /scanners/ping
POST /system/oidc/ping
PUT /internal/switchquota
PUT /projects/{project_id}/immutabletagrules/{id}
PUT /repositories/{repo_name}
PUT /users/{user_id}/cli_secret
PUT /users/{user_id}/password
PUT /users/{user_id}/sysadmin
Exposing Swagger/OpenAPI documentation is primarily a risk if your API has underlying security flaws, as it gives attackers a precise roadmap to find them.
Those detail every endpoint, parameter, and data model, making it easier to discover and exploit vulnerabilities like broken access control or injection points.
While a perfectly secure API mitigates the danger, protecting your documentation is a critical layer of defense that forces attackers to work without a map.
Severity: info
Fingerprint: 5733ddf49ff49cd1b885ff43340c51c6930c093d70a6a2f3e498b2bb192fbea5
Public Swagger UI/API detected at path: /swagger.json - sample paths:
DELETE /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/labels/{label_id}
DELETE /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/tags/{tag_name}
GET /audit-logs
GET /configurations
GET /export/cve/download/{execution_id}
GET /export/cve/execution/{execution_id}
GET /export/cve/executions
GET /health
GET /icons/{digest}
GET /internalconfig
GET /jobservice/jobs/{job_id}/log
GET /jobservice/pools
GET /jobservice/pools/{pool_id}/workers
GET /jobservice/queues
GET /labels
GET /labels/{label_id}
GET /ldap/groups/search
GET /ldap/users/search
GET /p2p/preheat/instances
GET /p2p/preheat/instances/{preheat_instance_name}
GET /p2p/preheat/providers
GET /permissions
GET /ping
GET /projects
GET /projects/{project_name_or_id}
GET /projects/{project_name_or_id}/_deletable
GET /projects/{project_name_or_id}/immutabletagrules
GET /projects/{project_name_or_id}/members
GET /projects/{project_name_or_id}/members/{mid}
GET /projects/{project_name_or_id}/metadatas/
GET /projects/{project_name_or_id}/metadatas/{meta_name}
GET /projects/{project_name_or_id}/robots
GET /projects/{project_name_or_id}/robots/{robot_id}
GET /projects/{project_name_or_id}/scanner
GET /projects/{project_name_or_id}/scanner/candidates
GET /projects/{project_name_or_id}/summary
GET /projects/{project_name_or_id}/webhook/events
GET /projects/{project_name_or_id}/webhook/jobs
GET /projects/{project_name_or_id}/webhook/lasttrigger
GET /projects/{project_name_or_id}/webhook/policies
GET /projects/{project_name_or_id}/webhook/policies/{webhook_policy_id}
GET /projects/{project_name_or_id}/webhook/policies/{webhook_policy_id}/executions
GET /projects/{project_name_or_id}/webhook/policies/{webhook_policy_id}/executions/{execution_id}/tasks
GET /projects/{project_name_or_id}/webhook/policies/{webhook_policy_id}/executions/{execution_id}/tasks/{task_id}/log
GET /projects/{project_name}/logs
GET /projects/{project_name}/preheat/policies
GET /projects/{project_name}/preheat/policies/{preheat_policy_name}
GET /projects/{project_name}/preheat/policies/{preheat_policy_name}/executions
GET /projects/{project_name}/preheat/policies/{preheat_policy_name}/executions/{execution_id}
GET /projects/{project_name}/preheat/policies/{preheat_policy_name}/executions/{execution_id}/tasks
GET /projects/{project_name}/preheat/policies/{preheat_policy_name}/executions/{execution_id}/tasks/{task_id}/logs
GET /projects/{project_name}/preheat/providers
GET /projects/{project_name}/repositories
GET /projects/{project_name}/repositories/{repository_name}
GET /projects/{project_name}/repositories/{repository_name}/artifacts
GET /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}
GET /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/accessories
GET /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/additions/vulnerabilities
GET /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/additions/{addition}
GET /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/scan/{report_id}/log
GET /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/tags
GET /quotas
GET /quotas/{id}
GET /registries
GET /registries/{id}
GET /registries/{id}/info
GET /replication/adapterinfos
GET /replication/adapters
GET /replication/executions
GET /replication/executions/{id}
GET /replication/executions/{id}/tasks
GET /replication/executions/{id}/tasks/{task_id}/log
GET /replication/policies
GET /replication/policies/{id}
GET /repositories
GET /retentions/metadatas
GET /retentions/{id}
GET /retentions/{id}/executions
GET /retentions/{id}/executions/{eid}/tasks
GET /retentions/{id}/executions/{eid}/tasks/{tid}
GET /robots
GET /robots/{robot_id}
GET /scanners
GET /scanners/{registration_id}
GET /scanners/{registration_id}/metadata
GET /scans/all/metrics
GET /scans/schedule/metrics
GET /schedules
GET /schedules/{job_type}/paused
GET /search
GET /security/summary
GET /security/vul
GET /statistics
GET /system/CVEAllowlist
GET /system/gc
GET /system/gc/schedule
GET /system/gc/{gc_id}
GET /system/gc/{gc_id}/log
GET /system/purgeaudit
GET /system/purgeaudit/schedule
GET /system/purgeaudit/{purge_id}
GET /system/purgeaudit/{purge_id}/log
GET /system/scanAll/schedule
GET /systeminfo
GET /systeminfo/getcert
GET /systeminfo/volumes
GET /usergroups
GET /usergroups/search
GET /usergroups/{group_id}
GET /users
GET /users/current
GET /users/current/permissions
GET /users/search
GET /users/{user_id}
PATCH /retentions/{id}/executions/{eid}
POST /export/cve
POST /ldap/ping
POST /ldap/users/import
POST /p2p/preheat/instances/ping
POST /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/labels
POST /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/scan
POST /projects/{project_name}/repositories/{repository_name}/artifacts/{reference}/scan/stop
POST /registries/ping
POST /retentions
POST /scanners/ping
POST /system/oidc/ping
POST /system/scanAll/stop
PUT /jobservice/jobs/{job_id}
PUT /jobservice/queues/{job_type}
PUT /projects/{project_name_or_id}/immutabletagrules/{immutable_rule_id}
PUT /users/{user_id}/cli_secret
PUT /users/{user_id}/password
PUT /users/{user_id}/sysadmin
Exposing Swagger/OpenAPI documentation is primarily a risk if your API has underlying security flaws, as it gives attackers a precise roadmap to find them.
Those detail every endpoint, parameter, and data model, making it easier to discover and exploit vulnerabilities like broken access control or injection points.
While a perfectly secure API mitigates the danger, protecting your documentation is a critical layer of defense that forces attackers to work without a map.
Severity: info
Fingerprint: 5733ddf49ff49cd1b885ff439a214f497982facdc5c71fb6552877008cf4821a
Public Swagger UI/API detected at path: /swagger.json - sample paths:
DELETE /chartrepo/{repo}/charts/{name}/{version}/labels/{id}
DELETE /repositories/{repo_name}/labels/{label_id}
DELETE /repositories/{repo_name}/tags/{tag}/labels/{label_id}
GET /chartrepo/health
GET /chartrepo/{repo}/charts
GET /chartrepo/{repo}/charts/{name}
GET /chartrepo/{repo}/charts/{name}/{version}
GET /chartrepo/{repo}/charts/{name}/{version}/labels
GET /configurations
GET /health
GET /labels
GET /labels/{id}
GET /labels/{id}/resources
GET /ldap/groups/search
GET /ldap/users/search
GET /logs
GET /projects
GET /projects/{project_id}
GET /projects/{project_id}/immutabletagrules
GET /projects/{project_id}/logs
GET /projects/{project_id}/members
GET /projects/{project_id}/members/{mid}
GET /projects/{project_id}/metadatas
GET /projects/{project_id}/metadatas/{meta_name}
GET /projects/{project_id}/robots
GET /projects/{project_id}/robots/{robot_id}
GET /projects/{project_id}/scanner
GET /projects/{project_id}/scanner/candidates
GET /projects/{project_id}/summary
GET /projects/{project_id}/webhook/jobs
GET /projects/{project_id}/webhook/lasttrigger
GET /projects/{project_id}/webhook/policies
GET /projects/{project_id}/webhook/policies/{policy_id}
GET /quotas
GET /quotas/{id}
GET /registries
GET /registries/{id}
GET /registries/{id}/info
GET /registries/{id}/namespace
GET /replication/adapters
GET /replication/executions
GET /replication/executions/{id}
GET /replication/executions/{id}/tasks
GET /replication/executions/{id}/tasks/{task_id}/log
GET /replication/policies
GET /replication/policies/{id}
GET /repositories
GET /repositories/top
GET /repositories/{repo_name}/labels
GET /repositories/{repo_name}/signatures
GET /repositories/{repo_name}/tags
GET /repositories/{repo_name}/tags/{tag}
GET /repositories/{repo_name}/tags/{tag}/labels
GET /repositories/{repo_name}/tags/{tag}/manifest
GET /repositories/{repo_name}/tags/{tag}/scan
GET /repositories/{repo_name}/tags/{tag}/scan/{uuid}/log
GET /retentions/metadatas
GET /retentions/{id}
GET /retentions/{id}/executions
GET /retentions/{id}/executions/{eid}/tasks
GET /retentions/{id}/executions/{eid}/tasks/{tid}
GET /scanners
GET /scanners/{registration_id}
GET /scanners/{registration_id}/metadata
GET /scans/all/metrics
GET /scans/schedule/metrics
GET /search
GET /statistics
GET /system/CVEWhitelist
GET /system/gc
GET /system/gc/schedule
GET /system/gc/{id}
GET /system/gc/{id}/log
GET /system/scanAll/schedule
GET /systeminfo
GET /systeminfo/getcert
GET /systeminfo/volumes
GET /usergroups
GET /usergroups/{group_id}
GET /users
GET /users/current
GET /users/current/permissions
GET /users/search
GET /users/{user_id}
PATCH /retentions/{id}/executions/{eid}
POST /chartrepo/charts
POST /chartrepo/{repo}/prov
POST /email/ping
POST /internal/syncquota
POST /internal/syncregistry
POST /ldap/ping
POST /ldap/users/import
POST /projects/{project_id}/webhook/policies/test
POST /registries/ping
POST /retentions
POST /scanners/ping
POST /system/oidc/ping
PUT /internal/switchquota
PUT /projects/{project_id}/immutabletagrules/{id}
PUT /repositories/{repo_name}
PUT /users/{user_id}/cli_secret
PUT /users/{user_id}/password
PUT /users/{user_id}/sysadmin
Open service 82.81.95.47:443 · push2reg.com
2026-01-22 22:24
HTTP/1.1 404 Not Found Content-Type: text/plain; charset=utf-8 X-Content-Type-Options: nosniff Date: Thu, 22 Jan 2026 22:24:52 GMT Content-Length: 19 Connection: close 404 page not found
Open service 82.81.95.46:443 · miz.push2reg.com
2026-01-22 22:24
HTTP/1.1 200 OK
Server: openresty
Date: Thu, 22 Jan 2026 22:23:46 GMT
Content-Type: text/html
Content-Length: 785
Connection: close
Last-Modified: Wed, 13 Mar 2024 09:54:58 GMT
ETag: "65f177f2-311"
Cache-Control: no-store, no-cache, must-revalidate
Accept-Ranges: bytes
Strict-Transport-Security: max-age=31536000; includeSubdomains; preload
X-Frame-Options: DENY
Content-Security-Policy: frame-ancestors 'none'
X-Served-By: miz.push2reg.com
Page title: Harbor
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>Harbor</title>
<base href="/"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="icon" type="image/x-icon" href="favicon.ico?v=2"/>
<link rel="stylesheet" href="styles.75cb4562f0127450.css"></head>
<body>
<harbor-app>
<div class="spinner spinner-lg app-loading app-loading-fixed">
Loading...
</div>
</harbor-app>
<script src="runtime.2a3bcf80a84bec2d.js" type="module"></script><script src="polyfills.67cfd31b2752cc11.js" type="module"></script><script src="scripts.3846d86d42cdb753.js" defer></script><script src="main.7d418b52213ac9cb.js" type="module"></script></body>
</html>
Open service 82.81.95.47:443 · www.push2reg.com
2026-01-22 18:50
HTTP/1.1 404 Not Found Content-Type: text/plain; charset=utf-8 X-Content-Type-Options: nosniff Date: Thu, 22 Jan 2026 18:50:45 GMT Content-Length: 19 Connection: close 404 page not found
Open service 82.81.95.46:443 · miz.push2reg.com
2026-01-10 02:17
HTTP/1.1 200 OK
Server: openresty
Date: Sat, 10 Jan 2026 02:16:59 GMT
Content-Type: text/html
Content-Length: 785
Connection: close
Last-Modified: Wed, 13 Mar 2024 09:54:58 GMT
ETag: "65f177f2-311"
Cache-Control: no-store, no-cache, must-revalidate
Accept-Ranges: bytes
Strict-Transport-Security: max-age=31536000; includeSubdomains; preload
X-Frame-Options: DENY
Content-Security-Policy: frame-ancestors 'none'
X-Served-By: miz.push2reg.com
Page title: Harbor
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>Harbor</title>
<base href="/"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="icon" type="image/x-icon" href="favicon.ico?v=2"/>
<link rel="stylesheet" href="styles.75cb4562f0127450.css"></head>
<body>
<harbor-app>
<div class="spinner spinner-lg app-loading app-loading-fixed">
Loading...
</div>
</harbor-app>
<script src="runtime.2a3bcf80a84bec2d.js" type="module"></script><script src="polyfills.67cfd31b2752cc11.js" type="module"></script><script src="scripts.3846d86d42cdb753.js" defer></script><script src="main.7d418b52213ac9cb.js" type="module"></script></body>
</html>