[GH-ISSUE #4600] Frontend is storing password in clear text #2937

Open
opened 2026-02-26 07:37:15 +03:00 by kerem · 2 comments
Owner

Originally created by @eriosgamer on GitHub (Jun 29, 2025).
Original GitHub issue: https://github.com/NginxProxyManager/nginx-proxy-manager/issues/4600

Checklist

  • Have you pulled and found the error with jc21/nginx-proxy-manager:latest docker image?
    • Yes
  • Are you sure you're not using someone else's docker image?
    • Yes
  • Have you searched for similar issues (both open and closed)?
    • Yes

Describe the bug
While exploring the SQLite database, I found that passwords are stored in plain text in the"access_list_auth" table.

Nginx Proxy Manager Version
jc21/nginx-proxy-manager:latest

To Reproduce
Steps to reproduce the behavior:
1- Make a fresh install
2- Set the user and password
3- Create a new Access List

Expected behavior
Passwords or authorization details should be securely stored (e.g., hashed) in the database.

Screenshots

Image

Operating System
CachyOS (Arch Linux) and Debian 12

Additional context
Docker Version: 28.3.0, build 38b7060a21
Docker-Compose Version: version 2.37.3

The screenshot is from a Python script i wrote that displays the contents of database.sqlite.

Originally created by @eriosgamer on GitHub (Jun 29, 2025). Original GitHub issue: https://github.com/NginxProxyManager/nginx-proxy-manager/issues/4600 **Checklist** - Have you pulled and found the error with `jc21/nginx-proxy-manager:latest` docker image? - Yes - Are you sure you're not using someone else's docker image? - Yes - Have you searched for similar issues (both open and closed)? - Yes **Describe the bug** While exploring the SQLite database, I found that passwords are stored in plain text in the"access_list_auth" table. **Nginx Proxy Manager Version** jc21/nginx-proxy-manager:latest **To Reproduce** Steps to reproduce the behavior: 1- Make a fresh install 2- Set the user and password 3- Create a new Access List **Expected behavior** Passwords or authorization details should be securely stored (e.g., hashed) in the database. **Screenshots** ![Image](https://github.com/user-attachments/assets/34dbcbcb-c883-4b6a-90d6-a2ede45143b1) **Operating System** CachyOS (Arch Linux) and Debian 12 **Additional context** Docker Version: 28.3.0, build 38b7060a21 Docker-Compose Version: version 2.37.3 The screenshot is from a Python script i wrote that displays the contents of database.sqlite.
Author
Owner

@rezzorix commented on GitHub (Jul 1, 2025):

Not a bug.

The access_list_auth table stores plaintext credentials so Nginx Proxy Manager can generate authentication configs for Nginx and allow users to edit those credentials through the UI. Nginx reads these files for HTTP Basic Auth (Nginx auth_basic module) but does not create them itself.

This isn’t a security risk unless someone already has access to your server files. User login passwords for NPM itself are stored hashed.

<!-- gh-comment-id:3021829596 --> @rezzorix commented on GitHub (Jul 1, 2025): **Not a bug.** The `access_list_auth` table stores plaintext credentials so Nginx Proxy Manager can generate authentication configs for Nginx and allow users to edit those credentials through the UI. Nginx reads these files for HTTP Basic Auth ([Nginx auth_basic module](https://nginx.org/en/docs/http/ngx_http_auth_basic_module.html)) but does not create them itself. This isn’t a security risk unless someone already has access to your server files. User login passwords for NPM itself are stored hashed.
Author
Owner

@github-actions[bot] commented on GitHub (Jan 5, 2026):

Issue is now considered stale. If you want to keep it open, please comment 👍

<!-- gh-comment-id:3708719812 --> @github-actions[bot] commented on GitHub (Jan 5, 2026): Issue is now considered stale. If you want to keep it open, please comment :+1:
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/nginx-proxy-manager-NginxProxyManager#2937
No description provided.