Skip to main content
← Vulnerabilities

2FAuth: Reverse Proxy Guard Auto-Creates Users With Admin Promotion From Unauthenticated Header Value

Affects 2FAuth before 8.0.0 when AUTHENTICATION_GUARD is set to reverse-proxy-guard and the app is reachable without a properly configured reverse proxy. Fixed in 8.0.0.

Written by anthropic/claude-haiku-5.5 from the sources below. Verify against them.

9.8CriticalCNA
Exploited
No known exploitation
Fix
Fixed in 8.0.0
Who is exposed
Not reported

Do first: Upgrade to a fixed version: 8.0.0.

Published
Last modified
27/100 · provisional
Unclear
None on Exploit-DB, Metasploit or GitHub
On X
View the cve.now post

Summary

2FAuth, a web app for managing two-factor authentication accounts and generating their security codes, is affected when its reverse-proxy authentication guard accepts headers from clients that did not come through the trusted proxy. An unauthenticated attacker on the network can exploit this remotely, without logging in, to create or take over accounts, including administrator access that exposes 2FA secrets.

Read the original description

2FAuth is a web app to manage Two-Factor Authentication (2FA) accounts and generate their security codes. Prior to 8.0.0, when AUTHENTICATION_GUARD=reverse-proxy-guard accepts authentication headers from a client that did not pass through a trusted proxy, RemoteUserProvider::retrieveById() creates an account for an unknown REMOTE_USER, promotes the first created account to administrator, and synchronizes the account email from the configured mail header. An unauthenticated remote client can therefore create an administrator on a fresh instance or impersonate and redirect email for a known account, exposing 2FA secrets and administrative functions. This issue is fixed in version 8.0.0.

cve.now Index

27Pcve.now Index 27 of 100 · methodology v3 · provisional
  • Exploitation?/40Unknown. No CISA SSVC exploitation rating yet
  • Exposure17/25No login or user action needed, reachable over the network without a login · Unknown: Advisories don't say whether default setups are affected
  • Reach?/20Unknown. No tracked technology or package matched
  • Severity9.8/10CVSS 9.8
  • No patch0/5No signal

What would change the score

  • Would score about 72 if added to CISA KEV
  • Would score about 67 if CISA's SSVC rates exploitation active
  • Would score about 32 if advisories confirm default setups are exposed

What to do

  • Upgrade to a fixed version: 8.0.0.

Timeline

  1. CVE published
  2. First seen by cve.now
  3. Posted on X by cve.now

Affected versions

  • Bubka 2FAuth

    fixed in 8.0.0

Evidence 5

  1. Advisory
  2. Repository
  3. Repository
  4. Repository
  5. Repository

Corrections

None so far.

Something wrong on this page? Report an error. Every fix is listed here.

Questions about CVE-2026-63438

Is CVE-2026-63438 being exploited?

It is not in CISA's Known Exploited Vulnerabilities catalog, and CISA's SSVC assessment does not mark exploitation as active. That does not mean it has not been attacked: vendors and researchers can report attacks before CISA lists them. No public exploit code is tracked.Source: cve.now feed data

What does this mean?

The reverse proxy guard accepts a header value without authenticating it, which lets an unauthenticated request auto-create a user account and promote it to administrator. The attacker can then gain full control of the instance.Source: github.com

Which versions are affected by CVE-2026-63438?

2FAuth: before 8.0.0.Source: cve.now feed data

Am I affected, and how do I check?

Versions before 8.0.0 are affected when AUTHENTICATION_GUARD is set to reverse-proxy-guard and the application is directly reachable without a properly configured reverse proxy. Admin promotion through auto-creation additionally requires an instance with zero existing users, such as a fresh deployment. To check, look at the AUTHENTICATION_GUARD setting in the configuration and the installed version.Source: github.com

How do I fix CVE-2026-63438?

Upgrade 2FAuth to version 8.0.0 or later, which contains the fix.Source: github.com