Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessLure victim to attacker page
-
ExploitAuto-submit forged login POST to sessions_controller
-
ExecutionVictim authenticated into attacker-controlled session
-
ImpactVictim data/actions captured in attacker account
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V3 - Web Frontend Security Anti-CSRF tokens, SameSite cookies
MITRE ATT&CK
1 technique across 1 tactic: Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation targets the static-credentials login callback in Upright's SessionsController (sessions_controller.rb), which lacks CSRF protection on the login action. It requires victim user interaction (UI:R) - the victim must visit or be redirected to an attacker-controlled web page that issues the forged cross-site login request - and requires the application to actually expose Upright's static-credentials session flow. No authentication is needed by the attacker (PR:N), but the practical impact is bounded because login CSRF logs the victim into the ATTACKER's session rather than compromising the victim's own account, limiting realistic damage to data the victim then enters under the attacker's identity. |
| Impact | MITRE-assigned CVSS 3.1 is 8.8 (AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H), driven by a network vector, low complexity, no privileges, and full CIA impact. That impact rating is aggressive for the actual weakness: CWE-352 login CSRF in a static-credentials session callback typically forces a victim into the ATTACKER's authenticated session rather than compromising the victim's own confidentiality/integrity/availability, so C:H/I:H/A:H likely overstates real-world consequence - verify impact scope with the maintainer. No EPSS score, no CISA KEV listing, and no public exploit are present in the provided data, so this is no public exploit identified at time of analysis. The UI:R requirement (victim must be lured to an attacker-controlled page) and the niche footprint of the affected library further temper real urgency: this reads as a genuine but not high-priority defensive fix rather than an actively exploited threat. Affected-version data is effectively absent (EUVD lists only 'n/a n/a'); the vulnerability is pinned to a single git commit (efe4f2e), so consumers must map that commit to their vendored/gem version themselves. |
| Exploit ScenarioDerived | An attacker hosts a malicious page containing an auto-submitting form (or hidden request) that POSTs to Upright's session/login endpoint using static credentials the attacker controls. A logged-out or logged-in victim who visits the page (UI:R) is silently authenticated into the attacker's account, after which any data the victim subsequently enters or actions they take occur in the attacker-controlled session. No public proof-of-concept is referenced in the available data. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 30, 2026
Basecamp's Upright authentication library contains a login cross-site request forgery (CSRF) flaw in the static-credentials session callback implemented in app/controllers/upright/sessions_controller.rb, where the login action is not protected by an anti-CSRF token. Because the CVSS vector is AV:N/AC:L/PR:N/UI:R, unauthenticated remote attackers can exploit it, but success depends on victim interaction - the victim must load or be redirected to an attacker-controlled page that submits the forged login request while Upright's static-credentials session flow is exposed. The practical consequence is that the victim is silently logged into the attacker's session rather than having their own account compromised, so our independent assessment rates the impact as partial (C:L/I:L/A:N) even though MITRE assigned 8.8 (C:H/I:H/A:H); no public exploit code or confirmed active exploitation (CISA KEV) was identified at time of analysis.
RemediationAI
No vendor-released patch was identified at time of analysis, and the GitHub reference points to the vulnerable commit/file rather than a fix, so remediation must start with defensive configuration. Primary action: enforce CSRF protection on Upright's login action - add or restore an authenticity_token check on the SessionsController action (in Rails terms, ensure protect_from_forgery runs for that action and that no skip_before_action exempts the static-credentials callback), which directly closes the CWE-352 path; the trade-off is that any non-browser or API client calling the login endpoint without a token will break and must be reworked to fetch a token first. Secondary compensating controls: set session cookies with SameSite=Lax or Strict and the Secure flag so forged cross-site POSTs are not sent with the victim's existing session context (this can break legitimate cross-site embedding or SSO redirect flows); avoid exposing the static-credentials session flow at all in production deployments that do not require it, since disabling it removes the attack surface entirely; and, where static credentials remain necessary, bind the callback to a short-lived server-issued nonce so a stale or replayed cross-site request cannot establish a session. Monitor https://github.com/basecamp/upright for an upstream fix commit and https://nvd.nist.gov/vuln/detail/CVE-2026-67993 for an updated vendor reference indicating a patched release version.
Affected VersionsENISA
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The issue is a classic CWE-352 cross-site request forgery in a Ruby web application component, targeting the Upright engine's SessionsController. Upright ships a static-credentials login path - a callback that validates a fixed username/password pair rather than a per-user credential store - and the corresponding action at sessions_controller.rb line 3 does not include CSRF token verification (for example a protect_from_forgery declaration, an authenticity_token check, or skip_before_action exclusions that leave the action unprotected). Because the endpoint is reached over the network with a simple state-changing request and no attacker-held credentials (PR:N), a third-party site can cause a victim's browser to submit the login request automatically (UI:R). The root cause is the absence of request-origin/anti-forgery enforcement on an authentication state transition, which lets the attacker fix the victim's session identity to one the attacker controls. No CPE entries were supplied for this CVE, and the EUVD affected-version field is recorded as n/a, so the only concrete affected artifact identified in the references is the basecamp/upright repository pinned at commit efe4f2e5254ac6e57e45d2261804cca74dbbca3f, with the vulnerable code path documented in the project's GitHub repository.
Know when Ruby On Rails gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Login CSRF forces authentication into the attacker's session and needs victim interaction (UI:R); realistic impact is limited leakage/tampering of victim-entered data, so C:L/I:L and A:N rather than full CIA.
Primary rating from Vendor (mitre).
CVSS VectorVendor: mitre
Lifecycle Timeline
3DescriptionCVE.org
basecamp/upright at commit efe4f2e5254ac6e57e45d2261804cca74dbbca3f contains a login cross-site request forgery issue in the static credentials callback.
Executive ViewAI
Basecamp’s Upright authentication library is affected by a login CSRF weakness that can silently place an interacting user into an attacker-controlled session, potentially exposing information the user submits after that login; no public exploit identified at time of analysis and no vendor-released patch identified at time of analysis. Because the flaw is unauthenticated but requires victim interaction, the main business concern is authentication integrity for teams using Upright’s static-credentials flow, which may require compensating controls and monitoring until the vendor provides a fix.
No vendor-released patch identified at time of analysis; interim mitigations include disabling or restricting Upright’s static-credentials session flow, enforcing SameSite=Strict or Lax cookies and Origin/Referer validation on the login callback, adding anti-CSRF token validation, deploying WAF rules against cross-site POSTs to the session endpoint, and monitoring authentication logs for suspicious session behavior.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Cross-Site Request Forgery exploits the automatic credential inclusion behavior of web browsers.
More in Ruby On Rails
View alllib/active_support/json/backends/yaml.rb in Ruby on Rails 2.3.x before 2.3.16 and 3.0.x before 3.0.20 does not properly
active_support/core_ext/hash/conversions.rb in Ruby on Rails before 2.3.15, 3.0.x before 3.0.19, 3.1.x before 3.1.10, an
Action Pack in Ruby on Rails before 3.2.22.2, 4.x before 4.1.14.2, and 4.2.x before 4.2.5.2 allows remote attackers to e
actionpack/lib/action_view/lookup_context.rb in Action View in Ruby on Rails 3.x before 3.2.16 and 4.x before 4.0.2 allo
Unauthenticated remote code execution is achievable in Square Squash (all versions through commit e73f280) through a two
SQL injection vulnerability in the 'order' method in Ruby on Rails 5.1.4 and earlier allows remote attackers to execute
SQL injection vulnerability in the 'reorder' method in Ruby on Rails 5.1.4 and earlier allows remote attackers to execut
SQL injection vulnerability in the Active Record component in Ruby on Rails before 3.0.18, 3.1.x before 3.1.9, and 3.2.x
The Active Record component in Ruby on Rails before 3.0.14, 3.1.x before 3.1.6, and 3.2.x before 3.2.6 does not properly
ActiveRecord in Ruby on Rails before 2.3.17 and 3.x before 3.1.0 allows remote attackers to cause a denial of service or
Authenticated store customers can seize other shoppers' guest carts in Spree Commerce by calling PATCH /api/v3/store/car
The Active Record component in Ruby on Rails 2.3.x, 3.0.x, 3.1.x, and 3.2.x does not ensure that the declared data type
EUVD-2026-89426
GHSA-87h2-rxqx-gq78
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB