Skip to main content

Basecamp Upright CVE-2026-67993

| EUVDEUVD-2026-89426 HIGH
Cross-Site Request Forgery (CSRF) (CWE-352)
2026-09-29 cve@mitre.org GHSA-87h2-rxqx-gq78
8.8
CVSS 3.1 · Vendor: mitre
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Lure victim to attacker page
  2. Exploit
    Auto-submit forged login POST to sessions_controller
  3. Execution
    Victim authenticated into attacker-controlled session
  4. Impact
    Victim 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

n/a n/a

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

Vendor (mitre) PRIMARY 8.8 HIGH
AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
vuln.today AI 5.4 MEDIUM

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.

3.1 AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (mitre).

CVSS VectorVendor: mitre

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

3
CVSS changed
Sep 30, 2026 - 20:53 NVD
8.8 (HIGH)
CVE Published
Sep 29, 2026 - 20:17 cve.org
HIGH 8.8
CVE Published
Sep 29, 2026 - 20:17 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

basecamp/upright at commit efe4f2e5254ac6e57e45d2261804cca74dbbca3f contains a login cross-site request forgery issue in the static credentials callback.

Executive ViewAI

Why It Matters

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.

Business Impact: Medium
Compensating Controls

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

EPSS Score
0.1%
Top 97% exploitable
Prevalence
Low
niche Basecamp Rails authentication engine, small real-world deployment footprint
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.1%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
Medium
Technical Impact
Total

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Request Forgery exploits the automatic credential inclusion behavior of web browsers.

CVE-2013-0333 HIGH POC
7.5 Jan 30

lib/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

CVE-2013-0156 HIGH POC
7.5 Jan 13

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

CVE-2016-2098 HIGH POC
7.3 Apr 07

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

CVE-2013-6414 MEDIUM POC
5.0 Dec 07

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

CVE-2026-109391 CRITICAL POC
9.2 Oct 12

Unauthenticated remote code execution is achievable in Square Squash (all versions through commit e73f280) through a two

CVE-2017-17919 HIGH POC
8.1 Dec 29

SQL injection vulnerability in the 'order' method in Ruby on Rails 5.1.4 and earlier allows remote attackers to execute

CVE-2017-17920 HIGH POC
8.1 Dec 29

SQL injection vulnerability in the 'reorder' method in Ruby on Rails 5.1.4 and earlier allows remote attackers to execut

CVE-2012-6496 HIGH POC
7.5 Jan 04

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

CVE-2012-2695 HIGH POC
7.5 Jun 22

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

CVE-2013-0277 CRITICAL
10.0 Feb 13

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

CVE-2026-94462 HIGH POC
7.1 Sep 22

Authenticated store customers can seize other shoppers' guest carts in Spree Commerce by calling PATCH /api/v3/store/car

CVE-2013-3221 MEDIUM POC
6.4 Apr 22

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

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy