mirror of
https://github.com/NginxProxyManager/nginx-proxy-manager.git
synced 2026-04-25 01:15:51 +03:00
[PR #5208] fix: Check access list before force SSL redirect #4090
Labels
No labels
awaiting feedback
bug
cannot reproduce
dns provider request
duplicate
enhancement
enhancement
enhancement
good first issue
help wanted
invalid
need more info
no certbot plugin available
product-support
pull-request
question
stale
troll
upstream issue
v2
v2
v2
v3
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/nginx-proxy-manager-NginxProxyManager#4090
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
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?
📋 Pull Request Information
Original PR: https://github.com/NginxProxyManager/nginx-proxy-manager/pull/5208
Author: @Kiryuumaru
Created: 1/22/2026
Status: 🔄 Open
Base:
develop← Head:fix/force-ssl-access-list-bypass📝 Commits (1)
19086cefix: check access list before force SSL redirect📊 Changes
5 files changed (+89 additions, -0 deletions)
View changed files
📝
backend/internal/access-list.js(+57 -0)📝
backend/templates/_forced_ssl.conf(+18 -0)➕
backend/templates/access_list_geo.conf(+10 -0)📝
docker/rootfs/etc/nginx/nginx.conf(+3 -0)📝
docker/rootfs/etc/s6-overlay/s6-rc.d/prepare/20-paths.sh(+1 -0)📄 Description
Fixes #5207 - Security issue where Force SSL leaks host existence
When both Force SSL and an Access List are active on a Proxy Host, HTTP requests from unauthorized IPs were receiving a 301 redirect instead of being blocked. This allowed attackers to enumerate valid hosts by brute-forcing the Host header.
Solution: Use nginx geo module to check IP access before the SSL redirect. Only allowed IPs get redirected to HTTPS; denied IPs fall through to the access phase and receive 403.
Changes:
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.