Safeguard
Vulnerability Analysis•

CVE-2026-28787: WebAuthn 2FA Bypass in OneUptime 10.0.11

OneUptime 10.0.11 and earlier accept a client supplied WebAuthn challenge, which allows replay of a captured assertion (CVSS 8.2). No patch is listed yet.

Safeguard Security Team
2 min read

CVE-2026-28787 is a high severity (CVSS 8.2) flaw in OneUptime version 10.0.11 and earlier. The server takes the WebAuthn challenge from the client instead of storing its own, so a captured assertion can be replayed forever, defeating the second factor. No patched version is listed.

What's affected

The GitHub advisory lists the npm package @oneuptime/common at 10.0.11 and earlier, with no first patched version. The NVD text agrees: no known patches are available.

Check the OneUptime repository for a later release before you assume the issue is open or closed.

How to check if you're exposed

Check the version of the package in your deployment:

npm ls @oneuptime/common

For Docker or Helm installs, check the image tag of the OneUptime release you run. Then look in the project's advisories and releases for a fix.

What to do now

  1. Check the OneUptime releases and advisory for a fixed version, and upgrade when one is available.
  2. Do not rely on WebAuthn alone for administrator accounts until fixed. Add network restrictions such as a VPN or IP allowlist for the login page.
  3. Reduce the chance an assertion is captured: review logging so request bodies and credentials are not written to logs, and keep dependencies free of cross-site scripting issues.
  4. Review authentication logs for repeated or unusual second-factor completions.

Why it matters

The record lists CWE-287 (improper authentication) and CWE-294 (authentication bypass by capture-replay). WebAuthn works because each login includes a fresh random challenge that the server remembers and checks. If the server accepts whatever challenge the client sends back, a recorded response is valid again and again.

The advisory notes that an attacker first needs a valid assertion, for example through cross-site scripting, a man-in-the-middle position or log exposure. That is why the attack complexity is high. Even so, it defeats the purpose of a second factor, which is to hold up when something else leaks.

The record does not mark this CVE as exploited in the wild.

Quick check

What should the server do instead?

Generate the challenge, store it server side for that login attempt, compare against the stored value when verifying, and discard it after one use.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.