Description
Tinyauth is an authentication and authorization server. Prior to 5.1.2, Tinyauth compares forwarded hostnames case-sensitively while reverse proxies route equivalent hostnames case-insensitively, allowing an authenticated low-privilege user to bypass per-app access controls with a differently cased hostname. The lookup in internal/service/access_controls_service.go through lookupStaticACLs and GetAccessControls, and the Docker-label fallback in internal/service/docker_service.go through GetLabels, can miss the configured app and return an empty access-control object. internal/controller/proxy_controller.go proxyHandler then treats the empty user, group, OAuth, LDAP, and IP restrictions as permissive and returns an authenticated result for an app that should exclude the user. Unauthenticated users remain subject to login, and global login-time allowlists are not bypassed. This issue is fixed in version 5.1.2.
Published: 2026-09-21
Score: 8.1 High
EPSS: < 1% Very Low
KEV: No
Impact: Access Control Bypass
Action: Apply Patch
AI Analysis

Impact

Tinyauth is an authentication and authorization server that implements per‑application access‑control lists (ACLs). The vulnerability exists because Tinyauth compares the forwarded hostname in a case‑sensitive manner while the reverse proxy sends hostnames case‑insensitively. An attacker who is already authenticated with a low level of privilege can craft a hostname that differs only in letter case from the allowed value. The internal lookup for static ACLs or Docker‑label‑based ACLs then returns an empty access‑control object. The proxy handler interprets those empty rules as permissive, granting the authenticated user access to an application that should have been denied. The flaw does not affect unauthenticated traffic, and global login‑time allowlists remain intact, but it allows bypass of per‑app authorization checks.

Affected Systems

TinyAuthApp Tinyauth version 5.1.1 and earlier are vulnerable. The issue was fixed in release 5.1.2. Anyone running an affected build of Tinyauth, regardless of deployment environment (standalone or with Docker), must consider this vulnerable.

Risk and Exploitability

The CVSS base score is 8.1, representing high severity. EPSS data is unavailable, and the vulnerability is not listed in the CISA KEV catalog, implying no known widespread exploitation yet. The attack path requires that the attacker already has authenticated credentials and that the reverse proxy forwards a hostname whose case does not match the ACL entries. Because the flaw occurs after authentication, it cannot be triggered by unauthenticated users. Nonetheless, an authenticated attacker can freely access otherwise protected applications, risking data leakage or further privilege escalation. The likelihood of exploitation is moderate given the need for concurrent authentication and specific hostname manipulation.

Generated by OpenCVE AI on September 21, 2026 at 18:38 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade Tinyauth to version 5.1.2 or newer, which fixes the case‑sensitivity comparison used for per‑app ACL validation.
  • If an upgrade is not immediately possible, reconfigure the reverse proxy to forward hostnames exactly as specified in the ACL (no case conversion) or enforce case‑sensitive matching on the proxy side so it aligns with Tinyauth’s expectations.
  • As a temporary safeguard, review Docker label configuration or manually set an explicit ACL for the affected applications to block mismatched hostnames, ensuring that any empty ACL object remains denied.

Generated by OpenCVE AI on September 21, 2026 at 18:38 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-328g-jx67-v94g Tinyauth: forward-auth per-app ACL is matched case-sensitively against the (case-insensitive) hostname, letting an authenticated user reach apps they are not on the allowlist for
History

Mon, 21 Sep 2026 21:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Mon, 21 Sep 2026 19:15:00 +0000

Type Values Removed Values Added
First Time appeared Tinyauth
Tinyauth tinyauth
Vendors & Products Tinyauth
Tinyauth tinyauth

Mon, 21 Sep 2026 17:00:00 +0000

Type Values Removed Values Added
Description Tinyauth is an authentication and authorization server. Prior to 5.1.2, Tinyauth compares forwarded hostnames case-sensitively while reverse proxies route equivalent hostnames case-insensitively, allowing an authenticated low-privilege user to bypass per-app access controls with a differently cased hostname. The lookup in internal/service/access_controls_service.go through lookupStaticACLs and GetAccessControls, and the Docker-label fallback in internal/service/docker_service.go through GetLabels, can miss the configured app and return an empty access-control object. internal/controller/proxy_controller.go proxyHandler then treats the empty user, group, OAuth, LDAP, and IP restrictions as permissive and returns an authenticated result for an app that should exclude the user. Unauthenticated users remain subject to login, and global login-time allowlists are not bypassed. This issue is fixed in version 5.1.2.
Title Tinyauth: forward-auth per-app ACL is matched case-sensitively against the (case-insensitive) hostname, letting an authenticated user reach apps they are not on the allowlist for
Weaknesses CWE-178
CWE-636
CWE-863
References
Metrics cvssV3_1

{'score': 8.1, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N'}


Subscriptions

Tinyauth Tinyauth
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-09-21T20:45:26.170Z

Reserved: 2026-08-20T20:35:30.146Z

Link: CVE-2026-77560

cve-icon Vulnrichment

Updated: 2026-09-21T20:05:47.299Z

cve-icon NVD

Status : Deferred

Published: 2026-09-21T17:18:52.770

Modified: 2026-09-24T21:25:27.050

Link: CVE-2026-77560

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-21T19:00:08Z

Weaknesses
  • CWE-178

    Improper Handling of Case Sensitivity

  • CWE-636

    Not Failing Securely ('Failing Open')

  • CWE-863

    Incorrect Authorization