mirror of
https://github.com/fosrl/pangolin.git
synced 2026-05-07 21:30:36 -05:00
[GH-ISSUE #1202] [Security Enhancement] Prevent enumeration of pangolin resources #1805
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @TheConen on GitHub (Aug 2, 2025).
Original GitHub issue: https://github.com/fosrl/pangolin/issues/1202
Originally assigned to: @oschwartz10612 on GitHub.
Given
A Pangolin resource is configured to always allow access from a specific IP range and disallow access from all other IP ranges.
When
A user from outside of the allowed IP range accesses that resource
Then
Current behavior
Pangolin returns a 401 Unauthorized
This allows to enumerate all resource that are present on a Pangolin instance that the user does not have access to and potentially target specific services. E.g. if a user knows that vaultwarden.mydomain.com exists, than he also knows that there are probably rules that always allow access to specific paths like
/api/*that he could try to exploit.Proposed behavior
Pangolin should return the same response as if the resource was not found, so a non-existing resource is not differentiable from a resource that access was denied to.
Added after some Discord discussion: This only applies to the response presented to the user. Internal backend tools like CrowdSec might rely on the 401 (or 403) code.
References
OWASP: Enumerate Applications on Webserver
@github-actions[bot] commented on GitHub (Aug 17, 2025):
This issue has been automatically marked as stale due to 14 days of inactivity. It will be closed in 14 days if no further activity occurs.
@p3l1 commented on GitHub (Aug 20, 2025):
+1 on this. Pangolin is a web facing application and therefore should prohibit the described enumeration of resources.
@jnewing commented on GitHub (Sep 20, 2025):
+1 to this.
@boomam commented on GitHub (Dec 4, 2025):
Would support this being implemented.
Right now, i 'deal' with it via Traefik middleware, with a chain that IP blocks the routers for Pangolin components.
The issue however is that doing that prevents some of the other auth functions (like PIN codes) being used for remote users, as that base URL is no longer accessible.
@ATragicEnding commented on GitHub (Dec 12, 2025):
+1 to this, many self-hosted services can be leveraged for attacks. Preventing enumeration would help tremendously.
@dyay108 commented on GitHub (Feb 15, 2026):
+1
@kazooie13 commented on GitHub (Feb 22, 2026):
+1