CVE-2026-49467
TOTP enrollment hijack: password gate skipped due to unawaited promise
Description
Pingvin Share X is a secure and easy self-hosted file sharing platform. A vulnerability in versions 1.5.0 through 1.18.0 allow an attacker to bypass password verification when managing Time-based One-Time Password (TOTP) settings. The root cause is a missing `await` keyword on calls to the asynchronous `verifyPassword` method in `authTotp.service.ts` and the `authenticateUser` method in `auth.service.ts`. In JavaScript, an unawaited `Promise` is always truthy. So the logic intended to throw a `ForbiddenException` when a password is incorrect. It never executes because the expression evaluates the existence of the `Promise` object rather than its resolved boolean result. The vulnerability is fixed in version 1.18.1 by ensuring all asynchronous authentication calls are properly awaited. There are no official workarounds. If a user is locked out, an administrator must manually reset the user's TOTP status in the database.
INFO
Published Date :
Aug. 12, 2026, 6:17 p.m.
Last Modified :
Oct. 24, 2026, 4:10 p.m.
Remotely Exploit :
Yes !
Source :
[email protected]
Affected Products
The following products are affected by CVE-2026-49467
vulnerability.
Even if cvefeed.io is aware of the exact versions of the
products
that
are
affected, the information is not represented in the table below.
No affected product recoded yet
CVSS Scores
| Score | Version | Severity | Vector | Exploitability Score | Impact Score | Source |
|---|---|---|---|---|---|---|
| CVSS | 134c704f-9b21-4f2e-91b3-4a467353bcc0 | |||||
| CVSS 3.1 | HIGH | [email protected] | ||||
| CVSS 3.1 | HIGH | MITRE-CVE |
Solution
- Update Pingvin Share X to version 1.18.1.
- Verify asynchronous calls are properly awaited.
- Reset TOTP status manually if user is locked out.
References to Advisories, Solutions, and Tools
Here, you will find a curated list of external links that provide in-depth
information, practical solutions, and valuable tools related to
CVE-2026-49467.
| URL | Resource |
|---|---|
| https://github.com/smp46/pingvin-share-x/security/advisories/GHSA-59q6-jvp6-w282 |
CWE - Common Weakness Enumeration
While CVE identifies
specific instances of vulnerabilities, CWE categorizes the common flaws or
weaknesses that can lead to vulnerabilities. CVE-2026-49467 is
associated with the following CWEs:
Common Attack Pattern Enumeration and Classification (CAPEC)
Common Attack Pattern Enumeration and Classification
(CAPEC)
stores attack patterns, which are descriptions of the common attributes and
approaches employed by adversaries to exploit the CVE-2026-49467
weaknesses.
We scan GitHub repositories to detect new proof-of-concept exploits. Following list is a collection of public exploits and proof-of-concepts, which have been published on GitHub (sorted by the most recently updated).
Results are limited to the first 15 repositories due to potential performance issues.
The following list is the news that have been mention
CVE-2026-49467 vulnerability anywhere in the article.
The following table lists the changes that have been made to the
CVE-2026-49467 vulnerability over time.
Vulnerability history details can be useful for understanding the evolution of a vulnerability, and for identifying the most recent changes that may impact the vulnerability's severity, exploitability, or other characteristics.
-
CVE Translated by [email protected]
Oct. 24, 2026
Action Type Old Value New Value Changed Translation Title: pingvin-share-x de smp46, Description: Pingvin Share X es una plataforma segura y fácil para compartir archivos autoalojada. Una vulnerabilidad en las versiones 1.5.0 a la 1.18.0 permite a un atacante eludir la verificación de contraseña al gestionar la configuración de Contraseña de Un Solo Uso Basada en Tiempo (TOTP). La causa raíz es una palabra clave “await” faltante en las llamadas al método asíncrono “verifyPassword” en “authTotp.service.ts” y al método “authenticateUser” en “auth.service.ts”. En JavaScript, una “Promise” no esperada es siempre veraz. Así, la lógica destinada a lanzar una “ForbiddenException” cuando una contraseña es incorrecta. Nunca se ejecuta porque la expresión evalúa la existencia del objeto “Promise” en lugar de su resultado booleano resuelto. La vulnerabilidad está corregida en la versión 1.18.1 al asegurar que todas las llamadas de autenticación asíncronas sean debidamente esperadas. No hay soluciones alternativas oficiales. Si un usuario queda bloqueado, un administrador debe restablecer manualmente el estado TOTP del usuario en la base de datos. Title: pingvin-share-x de smp46, Description: Pingvin Share X es una plataforma segura y fácil para compartir archivos autoalojada. Una vulnerabilidad en las versiones 1.5.0 a la 1.18.0 permite a un atacante eludir la verificación de contraseña al gestionar la configuración de Contraseña de Un Solo Uso Basada en Tiempo (TOTP). La causa raíz es una palabra clave “await” faltante en las llamadas al método asíncrono “verifyPassword” en “authTotp.service.ts” y al método “authenticateUser” en “auth.service.ts”. En JavaScript, una “Promise” no esperada es siempre veraz. Así, la lógica destinada a lanzar una “ForbiddenException” cuando una contraseña es incorrecta. Nunca se ejecuta porque la expresión evalúa la existencia del objeto “Promise” en lugar de su resultado booleano resuelto. La vulnerabilidad está corregida en la versión 1.18.1 al asegurar que todas las llamadas de autenticación asíncronas sean debidamente esperadas. No hay soluciones alternativas oficiales. Si un usuario queda bloqueado, un administrador debe restablecer manualmente el estado TOTP del usuario en la base de datos. -
CVE Translated by [email protected]
Oct. 23, 2026
Action Type Old Value New Value Added Translation Title: pingvin-share-x de smp46, Description: Pingvin Share X es una plataforma segura y fácil para compartir archivos autoalojada. Una vulnerabilidad en las versiones 1.5.0 a la 1.18.0 permite a un atacante eludir la verificación de contraseña al gestionar la configuración de Contraseña de Un Solo Uso Basada en Tiempo (TOTP). La causa raíz es una palabra clave “await” faltante en las llamadas al método asíncrono “verifyPassword” en “authTotp.service.ts” y al método “authenticateUser” en “auth.service.ts”. En JavaScript, una “Promise” no esperada es siempre veraz. Así, la lógica destinada a lanzar una “ForbiddenException” cuando una contraseña es incorrecta. Nunca se ejecuta porque la expresión evalúa la existencia del objeto “Promise” en lugar de su resultado booleano resuelto. La vulnerabilidad está corregida en la versión 1.18.1 al asegurar que todas las llamadas de autenticación asíncronas sean debidamente esperadas. No hay soluciones alternativas oficiales. Si un usuario queda bloqueado, un administrador debe restablecer manualmente el estado TOTP del usuario en la base de datos. -
CVE Modified by 134c704f-9b21-4f2e-91b3-4a467353bcc0
Aug. 14, 2026
Action Type Old Value New Value Added SSVC {'id': 'CVE-2026-49467', 'role': 'CISA Coordinator', 'options': [{'exploitation': 'none'}, {'automatable': 'no'}, {'technicalImpact': 'total'}], 'version': '2.0.3', 'timestamp': '2026-08-14T21:52:03.631125Z'} -
New CVE Received by [email protected]
Aug. 12, 2026
Action Type Old Value New Value Added Affected [{'vendor': 'smp46', 'product': 'pingvin-share-x', 'versions': [{'status': 'affected', 'version': '>= 1.5.0, < 1.18.1'}]}] Added Description Pingvin Share X is a secure and easy self-hosted file sharing platform. A vulnerability in versions 1.5.0 through 1.18.0 allow an attacker to bypass password verification when managing Time-based One-Time Password (TOTP) settings. The root cause is a missing `await` keyword on calls to the asynchronous `verifyPassword` method in `authTotp.service.ts` and the `authenticateUser` method in `auth.service.ts`. In JavaScript, an unawaited `Promise` is always truthy. So the logic intended to throw a `ForbiddenException` when a password is incorrect. It never executes because the expression evaluates the existence of the `Promise` object rather than its resolved boolean result. The vulnerability is fixed in version 1.18.1 by ensuring all asynchronous authentication calls are properly awaited. There are no official workarounds. If a user is locked out, an administrator must manually reset the user's TOTP status in the database. Added CVSS V3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H Added CWE CWE-303 Added CWE CWE-304 Added Reference https://github.com/smp46/pingvin-share-x/security/advisories/GHSA-59q6-jvp6-w282