CVE-2026-32246

8.5 HIGH

📋 TL;DR

This vulnerability allows attackers who know a user's password but not their TOTP secret to bypass multi-factor authentication in Tinyauth. By exploiting the OIDC authorization endpoint, they can obtain valid authorization codes and OIDC tokens while the user's session is in a TOTP-pending state. All Tinyauth users with MFA enabled are affected.

💻 Affected Systems

Products:
  • Tinyauth
Versions: All versions prior to 5.0.3
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects deployments using OIDC with TOTP-based MFA enabled.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete account takeover for any user where the attacker knows the password, allowing unauthorized access to all connected applications using Tinyauth for authentication.

🟠

Likely Case

Targeted attacks against high-value accounts where passwords are compromised through phishing or credential stuffing, leading to unauthorized access to sensitive systems.

🟢

If Mitigated

Limited impact if strong password policies, account lockouts, and monitoring are in place, though MFA bypass still represents a significant security failure.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ✅ No
Complexity: LOW

Exploitation requires knowledge of a valid user password but not their TOTP secret. The attack is straightforward once credentials are obtained.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 5.0.3

Vendor Advisory: https://github.com/steveiliop56/tinyauth/security/advisories/GHSA-3q28-qjrv-qr39

Restart Required: Yes

Instructions:

1. Backup your Tinyauth configuration and database. 2. Stop the Tinyauth service. 3. Update to version 5.0.3 using your package manager or by downloading from the official repository. 4. Restart the Tinyauth service. 5. Verify the update was successful.

🔧 Temporary Workarounds

Disable OIDC endpoint temporarily

all

Temporarily disable the OIDC authorization endpoint until patching can be completed.

# Edit Tinyauth configuration to disable OIDC
# Set 'oidc.enabled = false' in config file

Enforce session timeout for TOTP-pending states

all

Configure very short timeout periods for sessions in TOTP-pending state to limit attack window.

# Set 'totp.pending_timeout = 60' in config (seconds)

🧯 If You Can't Patch

  • Implement network-level controls to restrict access to the OIDC endpoint to trusted IP ranges only.
  • Enable enhanced logging and monitoring for authentication attempts, particularly focusing on TOTP-pending state transitions.

🔍 How to Verify

Check if Vulnerable:

Check if your Tinyauth version is below 5.0.3 and OIDC with TOTP MFA is enabled.

Check Version:

tinyauth --version

Verify Fix Applied:

After updating to 5.0.3, verify that TOTP-pending sessions cannot obtain OIDC authorization codes by testing the authentication flow.

📡 Detection & Monitoring

Log Indicators:

  • Multiple authentication attempts from same IP with successful password but failed TOTP
  • OIDC authorization codes issued to sessions in TOTP-pending state
  • Unusual patterns of OIDC token requests

Network Indicators:

  • Unusual volume of requests to /oidc/authorize endpoint
  • Requests to OIDC endpoint followed by immediate token requests without TOTP completion

SIEM Query:

source="tinyauth" AND (event="oidc_authorize" AND status="success" AND totp_state="pending")

🔗 References

📤 Share & Export