Severity by source
AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N
Scope elevated to S:C because forged requests cross a trust boundary into separate upstream Alertmanager and Prometheus systems; all other metrics align directly with the CSRF pattern requiring no attacker privileges but active victim interaction.
Primary rating from Vendor (mitre).
CVSS VectorVendor: mitre
Lifecycle Timeline
3DescriptionCVE.org
basecamp/upright at commit efe4f2e5254ac6e57e45d2261804cca74dbbca3f disables Rails CSRF protection for its Alertmanager and Prometheus proxy controllers. An unauthenticated attacker can induce a logged-in user's browser to submit requests that are forwarded to enabled upstream write or management endpoints, such as creating an Alertmanager silence or requesting a Prometheus reload. The final impact depends on the APIs enabled by the upstream services.
AnalysisAI
Cross-site request forgery in basecamp/upright's Alertmanager and Prometheus proxy controllers allows unauthenticated attackers to exploit authenticated user sessions by inducing browser-submitted requests that bypass Rails CSRF protection entirely. At the specific commit efe4f2e5254ac6e57e45d2261804cca74dbbca3f, both proxy controllers skip the Rails authenticity token check, exposing upstream monitoring write and management APIs - including Alertmanager silence creation and Prometheus configuration reload - to attacker-controlled actions without the victim's awareness. A public proof-of-concept gist has been published by the reporting researcher, and no patched release has been confirmed at time of analysis.
Technical ContextAI
Upright is a Ruby on Rails engine authored by Basecamp that acts as an authenticated reverse proxy for Alertmanager and Prometheus monitoring services. Rails implements CSRF protection through the protect_from_forgery mechanism, which validates a per-session authenticity token on all state-changing requests. The vulnerable code, directly observable in the referenced source files at commit efe4f2e5254ac6e57e45d2261804cca74dbbca3f, skips this protection in Upright::AlertmanagerProxyController and Upright::PrometheusProxyController, meaning any cross-origin POST or management request forwarded through these controllers lacks origin validation. CWE-352 (Cross-Site Request Forgery) describes this root-cause class precisely: the server trusts browser-originated requests without verifying they were intentionally initiated by the authenticated user. The CPE is listed as cpe:2.3:a:n/a:n/a:*:*:*:*:*:*:*:*, indicating the package is not formally catalogued in NVD's product dictionary, consistent with its distribution as a niche Rails engine via GitHub rather than a published gem with versioned releases.
RemediationAI
No vendor-released patch or fixed version has been confirmed at time of analysis; affected versions should be assessed against the upstream repository at https://github.com/basecamp/upright for any remediation commits following the disclosure. The primary code-level fix is to re-enable Rails CSRF protection in both Upright::AlertmanagerProxyController and Upright::PrometheusProxyController by removing any skip_before_action :verify_authenticity_token or equivalent directive from those controllers. As an immediate compensating control, restrict the Upright proxy's routing to expose only read-only Alertmanager and Prometheus endpoints at the application or network layer - blocking POST and management-path requests prevents the meaningful impact even while the CSRF flaw persists, though this may reduce operator usability for silence management workflows. A secondary hardening measure is to independently bind upstream Alertmanager and Prometheus management APIs to loopback or internal-only interfaces so that forged requests cannot reach sensitive management endpoints via any path, not solely through the proxy.
LibreNMS before 24.10.0 allows a remote attacker to execute arbitrary code via OS command injection involving AboutContr
Reachable assertion in Open5GS up to version 2.7.6 allows remote unauthenticated attackers to crash the Diameter CER han
A Command Injection issue in the payload build page in BYOB (Build Your Own Botnet) 2.0 allows attackers to execute arbi
Denial of service in Open5GS 2.7.6 and earlier allows network-adjacent attackers with low-privilege Diameter Gx peer acc
Denial of service in Open5GS HSS (Home Subscriber Server) versions 2.7.0 through 2.7.6 is triggered remotely by manipula
Remote command injection in Control Web Panel allows unauthenticated attackers to execute arbitrary OS commands as root
LINQPad before 5.52.01 Pro edition is vulnerable to Unsafe Deserialization in LINQPad.AutoRefManager::PopulateFromCache(
Remote code execution in dash-uploader (Python package for Plotly Dash) versions 0.1.0 through 0.7.0a2 allows unauthenti
Command injection in LiteLLM 1.18.10 lets attackers who can configure MCP (Model Context Protocol) servers supply arbitr
SQL injection in AzuraCast's backup restore flow (versions up to and including 0.23.7) lets an attacker achieve privileg
Arbitrary file read in Yu AI Code Mother v4.3 lets anonymous, remote attackers retrieve files outside the intended previ
Remote code execution in APScheduler (all versions through 3.10.x and 4.0.0a5) is achievable when applications deseriali
Same weakness CWE-352 – Cross-Site Request Forgery (CSRF)
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-58031
GHSA-q9r6-h8cx-q7qp