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.

