/

CVE-2026-67993

Severity:

HIGH RISK

(8.8)

Login CSRF (CWE-352) in Upright Credentials Callback

CVE-2026-67993

Deferred

Vulnerability type

Category:

Cross-Site Request Forgery

CWE:

CWE-352

Impact:

Forced Login and Account Confusion

Severity:

HIGH RISK

(8.8)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

A login cross-site request forgery vulnerability in Upright's static credentials callback may let an attacker cause a victim's browser to submit an unintended login request.

When the login flow lacks adequate request-origin validation, the victim may be signed into an account controlled by the attacker, creating account confusion and enabling subsequent misuse of the victim's session.

Affected context

The issue occurs in deployments of basecamp/upright that use the static credentials callback as part of their login flow. Risk depends on the callback accepting browser-submitted authentication requests without sufficient CSRF defenses, such as request tokens, trusted-origin checks, or equivalent protections.

Exploit preconditions

  • Attack surface: The application's browser-accessible login endpoint and static credentials callback
  • Required access: The attacker generally needs to control or publish content that a target user may visit; direct application authentication is not necessarily required
  • Trigger point: A victim's browser submits an unintended login request to the callback
  • Why exploitation is possible: The login flow may accept a cross-site request without verifying that it originated from an authorized application context

Why this happens

The underlying bug is a missing or insufficient cross-site request forgery control in a login callback. If the server relies on ambient browser behavior, such as automatically sent cookies, without binding the request to an application-issued token or trusted origin, another site may cause the browser to initiate an unintended authentication action. This behavior maps to CWE-352: Cross-Site Request Forgery.

Potential impact

  • A victim may be logged into an attacker-controlled account
  • Users may confuse the attacker's account with their intended account
  • Actions performed afterward may be associated with the wrong account
  • Sensitive information entered into the unintended session could be exposed to the account owner
  • The issue could support phishing, workflow manipulation, or account misuse

General mitigation guidance

Mitigation typically focuses on ensuring that login requests are intentional and bound to the legitimate application context.

Common defensive patterns include:

  • Requiring unpredictable, application-generated CSRF tokens for state-changing login requests
  • Validating trusted origins and relevant request metadata where appropriate
  • Using secure cookie attributes, including suitable SameSite settings
  • Avoiding authentication flows that accept cross-site form submissions by default
  • Limiting session privileges and requiring explicit confirmation for sensitive account changes
  • Reducing reliance on ambient browser credentials and enforcing consistent authentication boundaries

How teams detect issues like this

Organizations can look for this class of issue through:

  • Static analysis rules identifying login or authentication handlers without CSRF validation
  • Code review checks for state-changing endpoints that accept browser requests without tokens or origin checks
  • Dynamic tests that submit login requests from an untrusted origin and verify they are rejected
  • Web application policy checks covering SameSite cookie behavior and cross-origin request handling
  • Monitoring for unusual login patterns, including unexpected account associations or cross-origin authentication requests

Automated security review tools may help identify missing middleware, token validation, or origin enforcement.

Sources

SourceLink
github.comgithub.com/basecamp/upright
github.comgithub.com/basecamp/upright/blob/efe4f2e5254ac6e57e45d2261804cca74dbbca3f/app/controllers/upright/sessions_controller.rb#L3

Frequently asked

questions

Yes, the attack may be initiated remotely through content that causes a victim's browser to send a request to the vulnerable login flow. It generally requires the victim to visit or interact with attacker-controlled content.

Not necessarily. The important prerequisite is the ability to cause a victim's browser to submit the relevant login request; deployment-specific access controls may alter the practical scope.

Protect the login callback with a robust CSRF defense, such as a validated per-request token combined with appropriate trusted-origin and cookie controls.

Treat login operations as state-changing requests, review all authentication callbacks for cross-origin behavior, and include negative cross-site tests in security and regression testing.

Find out what's already
exploitable in your codebase.