Skip to main content

Rucio EUVDEUVD-2026-27869

| CVE-2026-29080 CRITICAL
SQL Injection (CWE-89)
2026-05-06 https://github.com/rucio/rucio GHSA-vjr5-c9qv-hgm3
9.4
CVSS 4.0 · GitHub Advisory
View

Attack ChainAIDerived

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

  1. Recon
    Obtain valid Rucio credentials
  2. Delivery
    Craft malicious DID search request with SQL injection payload
  3. Exploit
    Send to /dids/<scope>/dids/search endpoint
  4. Install
    Trigger unparameterized SQL execution in FilterEngine
  5. C2
    Extract authentication tokens or password hashes
  6. Execute
    Crack SHA-256 hashes offline
  7. Impact
    Authenticate as privileged user or hijack active sessions
  8. Step 8
    Exfiltrate storage credentials and managed data identifiers

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Parameterized queries, prepared statements
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Persistence

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Oracle database backend with default json_meta metadata plugin enabled (which is Rucio's default configuration). Requires valid authentication to Rucio via any supported method (userpass, x509, OIDC, SAML, SSH, GSS) - no special roles or administrative permissions needed since the DID search endpoint is accessible to all authenticated users. PostgreSQL and MySQL deployments are NOT vulnerable even with identical Rucio versions and configurations due to proper parameterization in those database drivers. Attack surface limited to network-accessible Rucio API servers, but authentication tokens can be obtained through normal user registration or institutional SSO integration. No user interaction required beyond attacker's own authenticated session.

Impact

Critical real-world risk confirmed by multiple signals. CVSS 4.0 score of 9.4 reflects network-accessible attack (AV:N) with low complexity (AC:L) requiring only low privileges (PR:L) and no user interaction (UI:N), with complete confidentiality, integrity, and availability impact across both vulnerable and subsequent systems (VC:H/VI:H/VA:H/SC:H/SI:H/SA:H). The authentication requirement significantly lowers the exploitation threshold since Rucio supports multiple authentication methods (userpass, x509, OIDC, SAML) accessible to any legitimate user. The combination of SQL injection, weak password hashing (single-iteration SHA-256), and Oracle's powerful PL/SQL features creates a complete compromise scenario. No EPSS score or KEV status provided in input data, and no public exploit code mentioned, suggesting discovery through responsible disclosure. However, the technical barrier is low - any authenticated user can exploit this via a standard API endpoint without special tooling. The vendor's decision to stagger patch releases across four maintained version branches (35.x, 38.x, 39.x, 40.x) indicates active support and widespread deployment. Research organizations managing petabyte-scale data are the primary targets, making data exfiltration and credential theft high-impact outcomes. This is a genuine priority for Oracle-based Rucio deployments despite absence of confirmed exploitation.

Exploit ScenarioDerived

An authenticated Rucio user (obtained via legitimate userpass, x509, or OIDC credentials) sends a crafted GET request to /dids/<scope>/dids/search with malicious SQL in the filter parameter (e.g., filter={'type': "' UNION SELECT password,salt FROM identities--"}). The FilterEngine interpolates this directly into sqlalchemy.text for Oracle, executing the injected UNION query. The attacker extracts all password hashes and salts, then uses GPU-based cracking against the weak SHA-256 single-iteration hashes to obtain plaintext passwords for administrative accounts, escalating to full system control.

Act Now Prioritize within 24-48h. Why: CRITICAL severity + public POC available.
Patch available 0.1% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – May 06, 2026

SQL injection in Rucio's DID search API allows any authenticated user to execute arbitrary SQL on Oracle database backends, enabling complete database compromise. The vulnerability affects Rucio versions 1.27.0 through 40.1.0 when deployed with Oracle databases using the default json_meta plugin. Attackers can extract authentication tokens, password hashes (SHA-256 single-iteration, GPU-crackable), storage credentials, and all managed data. Data modification and potential remote code execution via Oracle PL/SQL features are possible. Vendor-confirmed vulnerability with patches released across four version branches. PostgreSQL and MySQL deployments are not affected due to proper SQLAlchemy parameterization on those database dialects.

RemediationAI

Upgrade Rucio immediately based on your current version branch: if running 1.27.0-35.x, upgrade to 35.8.5 or later; if running 36.0-38.x, upgrade to 38.5.5 or later; if running 39.0-39.x, upgrade to 39.4.2 or later; if running 40.0-40.x, upgrade to 40.1.1 or later. Patches available via PyPI (pip install --upgrade rucio) and GitHub releases at https://github.com/rucio/rucio. If immediate patching is not feasible, implement these compensating controls with noted trade-offs: (1) Disable the DID search endpoint (GET /dids/<scope>/dids/search) at the reverse proxy/API gateway level - this breaks metadata search functionality for all users; (2) Implement strict input validation at the proxy layer allowing only alphanumeric characters in filter parameters - may break legitimate searches using special characters; (3) Rotate all authentication tokens and force password resets for all users post-patching since existing credentials may have been compromised; (4) Audit Oracle database user privileges and revoke UTL_HTTP, DBMS_SCHEDULER, and Java stored procedure execution rights if not required - reduces RCE risk but may impact legitimate database operations. Review database audit logs for suspicious JSON_VALUE/JSON_QUERY operations with unusual WHERE clauses or UNION statements as potential indicators of exploitation attempts.

Affected VersionsENISA

rucio 35.9.0, < 38.5.5
rucio 1.27.0, < 35.8.5
rucio 40.0.0, < 40.1.1
rucio 38.6.0, < 39.4.2

Affected Packages

pypi rucio fix: 35.8.5, 38.5.5, 39.4.2, 40.1.1

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in pypi

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Rucio is a scientific data management system used by CERN and other research organizations to manage exabyte-scale distributed datasets. The vulnerability exists in FilterEngine.create_sqla_query where user-supplied filter keys and values from the DID (Data Identifier) search endpoint are directly interpolated into sqlalchemy.text objects using Python str.format instead of parameterized queries. This is a textbook CWE-89 SQL injection where the Oracle JSON path implementation bypasses SQLAlchemy's built-in parameter binding. The affected CPE is pkg:pip/rucio across multiple version ranges. Oracle database's JSON_VALUE and JSON_QUERY functions, combined with PL/SQL capabilities, provide extensive attack surface beyond simple SELECT statements. The vulnerability is specific to Oracle's SQL dialect implementation in the json_meta metadata plugin - PostgreSQL and MySQL use properly parameterized JSONB/JSON operators that prevent injection.

Know when Python 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

GitHub Advisory PRIMARY 9.4 CRITICAL
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H

Primary rating from GitHub Advisory · only source for this CVE.

CVSS VectorGitHub Advisory

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
High
Subsequent system: Integrity
High
Subsequent system: Availability
High

Lifecycle Timeline

2
Patch available
May 06, 2026 - 18:02 EUVD
CVSS changed
May 06, 2026 - 17:22 NVD
9.9 (CRITICAL) 9.4 (CRITICAL)

DescriptionGitHub Advisory

Summary

A SQL injection vulnerability in the Oracle path of FilterEngine.create_sqla_query allows any authenticated Rucio user to execute arbitrary SQL against the backend database through the DID search endpoint (GET /dids/<scope>/dids/search). Attacker-controlled filter keys and values are interpolated directly into sqlalchemy.text via Python str.format, completely bypassing parameterization. This enables full database compromise including extraction of authentication tokens, password hashes, and all managed data identifiers. The vulnerability is affecting deployments using the default metadata plugin configuration json_meta with Oracle database backends.

Details

*Will follow in two weeks (2025-05-19).*

Impact

Vulnerability type: SQL Injection (CWE-89)

Who is impacted:

  • All Oracle-based Rucio deployments using the default metadata plugin configuration (json_meta).
  • *Not affected* are PostgreSQL/MySQL deployments using the default json_meta plugin (SQLAlchemy parameterizes the JSON path operations via bind parameters on non-Oracle dialects).

What an attacker can do:

  • Full database read access: Extract any table including identities (password hashes and salts), tokens (active authentication sessions), accounts (user enumeration), rse_settings (storage endpoint credentials), and rules (data management policies).
  • Password hash extraction: Combined with Rucio's use of single-iteration SHA-256 for password hashing (no KDF), extracted hashes can be cracked at GPU speed.
  • Authentication token theft: Active bearer tokens can be extracted and used for immediate session hijacking.
  • Data modification: Oracle PL/SQL enables INSERT/UPDATE/DELETE operations via DML within subqueries and PL/SQL blocks.
  • Potential remote code execution: Via Oracle's UTL_HTTP, DBMS_SCHEDULER, or Java stored procedures if the database user has elevated privileges.

Required attacker privileges: Any authenticated Rucio user. Authentication tokens can be obtained via any supported method (userpass, x509, OIDC, SAML, SSH, GSS). No special roles or administrative permissions are required. The GET /dids/<scope>/dids/search endpoint is available to all authenticated users.

Executive ViewAI

Why It Matters

Rucio versions 1.27.0 through 40.1.0 with Oracle database backends contain a critical SQL injection vulnerability in the DID search API that allows any authenticated user to completely compromise the database, including extraction of authentication tokens, credentials, and managed data. Organizations using Rucio with Oracle databases face immediate risk of unauthorized data access and potential modification of research or operational data. Immediate patching or isolation is required.

Business Impact: Severe
Compensating Controls

Vendor-released patch available per advisory for affected version branches. Until patching: (1) Restrict network access to DID search API endpoints via firewall/WAF to only trusted internal systems; (2) implement database query monitoring/alerting for unusual SQL patterns on Oracle backends; (3) disable the json_meta plugin if not required; (4) rotate all database credentials, authentication tokens, and storage credentials immediately; (5) consider temporary Oracle database isolation or failover to PostgreSQL/MySQL if available in your architecture.

Threat Intelligence Overview

EPSS Score
0.1%
Top 72% exploitable
Threat Intel
1
1 source
Exploit
POC
Public exploit code exists
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA GitHub

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 CRITICAL
CISA KEV No
Public POC Yes
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity + public POC available
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
Very High
Technical Impact
Total

Priority Score

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

Attack Technique

SQL injection exploits the way applications construct database queries by mixing user input directly into SQL statements.

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

More in Python

View all
CVE-2025-24016 CRITICAL POC
9.9 Feb 10

Wazuh SIEM platform versions 4.4.0 through 4.9.0 contain an unsafe deserialization vulnerability in the DistributedAPI t

CVE-2025-27520 CRITICAL POC
9.8 Apr 04

BentoML version 1.4.2 and earlier contains an unauthenticated remote code execution vulnerability through insecure deser

CVE-2025-2945 CRITICAL POC
9.9 Apr 03

pgAdmin 4 contains critical remote code execution vulnerabilities in the Query Tool download and Cloud Deployment endpoi

CVE-2013-5093 MEDIUM POC
6.8 Sep 27

The renderLocalView function in render/views.py in graphite-web in Graphite 0.9.5 through 0.9.10 uses the pickle Python

CVE-2025-32375 CRITICAL POC
9.8 Apr 09

BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Rated critica

CVE-2014-0224 HIGH POC
7.4 Jun 05

OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph

CVE-2024-21644 HIGH POC
7.5 Jan 08

pyLoad download manager version prior to 0.5.0b3.dev77 exposes the Flask SECRET_KEY through an unauthenticated endpoint.

CVE-2026-33017 CRITICAL POC
9.3 Mar 17

Langflow (a visual LLM pipeline builder) contains a critical unauthenticated code execution vulnerability (CVE-2026-3301

CVE-2017-9462 HIGH POC
8.8 Jun 06

In Mercurial before 4.1.3, "hg serve --stdio" allows remote authenticated users to launch the Python debugger, and conse

CVE-2026-49869 CRITICAL POC
10.0 Jun 26

Unauthenticated remote code execution affects Kestra OSS (the open-source event-driven orchestration platform) prior to

CVE-2026-39987 CRITICAL POC
9.3 Apr 08

Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/

CVE-2024-21645 MEDIUM POC
5.3 Jan 08

pyLoad is the free and open-source Download Manager written in pure Python. Rated medium severity (CVSS 5.3), this vulne

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