Skip to main content

Rucio CVE-2026-29090

| EUVDEUVD-2026-27875 CRITICAL
SQL Injection (CWE-89)
2026-05-06 https://github.com/rucio/rucio GHSA-6j7p-qjhg-9947
9.0
CVSS 4.0 · GitHub Advisory
Share

Severity by source

GitHub Advisory PRIMARY
9.0 CRITICAL
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

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

CVSS VectorGitHub Advisory

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
X

Lifecycle Timeline

4
Patch available
May 06, 2026 - 19:03 EUVD
CVSS changed
May 06, 2026 - 18:22 NVD
9.9 (CRITICAL) 9.0 (CRITICAL)
Source Code Evidence Fetched
May 06, 2026 - 17:33 vuln.today
Analysis Generated
May 06, 2026 - 17:33 vuln.today

DescriptionGitHub Advisory

Summary

A SQL injection vulnerability in FilterEngine.create_postgres_query allows any authenticated Rucio user to execute arbitrary SQL against the configured PostgreSQL metadata database through the DID search endpoint (GET /dids/<scope>/dids/search). When the external metadata plugin postgres_meta is configured, attacker-controlled filter keys and values are interpolated directly into raw SQL statements via Python str.format. This enables full database compromise including data exfiltration, data modification, and potential remote code execution via COPY ... FROM PROGRAM.

Details

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

Impact

Vulnerability type: SQL Injection (CWE-89)

Who is impacted:

  • Rucio deployments that have explicitly configured the postgres_meta metadata plugin.

What an attacker can do:

  • Data modification: PostgreSQL stacked queries enable arbitrary INSERT/UPDATE/DELETE operations.
  • Remote code execution: Via PostgreSQL's COPY ... FROM PROGRAM if the database user has superuser or pg_execute_server_program privileges.
  • File system access: Via COPY ... TO/FROM '/path' if filesystem permissions allow.

Further elevation when the same postgres database and access is used for metadata and for Rucio itself

  • 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) could be extracted.
  • 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.

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.

AnalysisAI

SQL injection in Rucio's DID search API allows any authenticated user to execute arbitrary SQL against the PostgreSQL metadata database when the postgres_meta plugin is configured. The vulnerability exists in FilterEngine.create_postgres_query where attacker-controlled filter parameters are interpolated directly into raw SQL via Python str.format. Exploitation enables complete database compromise including extraction of authentication tokens, password hashes (SHA-256 single-iteration, GPU-crackable), storage credentials, and session hijacking. Remote code execution is possible via PostgreSQL COPY...FROM PROGRAM if database privileges permit. CVSS 9.9 (Critical) reflects the scope change and cascading impact across confidentiality, integrity, and availability. No public exploit identified at time of analysis, but attack complexity is low (AC:L) requiring only basic authenticated access.

Technical ContextAI

Rucio is a scientific data management framework used by CERN and other research institutions to manage exabyte-scale datasets across distributed storage. The vulnerability resides in the FilterEngine.create_postgres_query method which constructs SQL queries for the DID (Data IDentifier) search endpoint. When the optional postgres_meta external metadata plugin is enabled, user-supplied filter keys and values from GET /dids/<scope>/dids/search requests are passed directly to Python's str.format method without sanitization or parameterization, creating classic CWE-89 SQL injection. PostgreSQL's support for stacked queries and administrative functions (COPY...FROM PROGRAM, file I/O operations) elevates this from data theft to potential RCE. The single-iteration SHA-256 password hashing scheme (mentioned as lacking a proper KDF) compounds the risk by making extracted password hashes trivially crackable with modern GPUs. Affected versions span multiple major releases: 1.30.0-35.8.4, 36.0.0-38.5.4, 39.0.0-39.4.1, and 40.0.0-40.1.0.

RemediationAI

Upgrade immediately to patched versions: 35.8.5 (for 1.30.x-35.x branch), 38.5.5 (for 36.x-38.x branch), 39.4.2 (for 39.x branch), or 40.1.1 (for 40.x branch). Patches implement parameterized queries replacing the vulnerable str.format interpolation in FilterEngine.create_postgres_query. Until patching is possible, disable the postgres_meta metadata plugin entirely by removing it from the Rucio server configuration - this eliminates the vulnerable code path while preserving core DID functionality using internal metadata storage. For deployments requiring postgres_meta functionality during remediation windows, implement defense-in-depth: restrict /dids/<scope>/dids/search endpoint access via reverse proxy ACLs to only trusted user populations, apply PostgreSQL REVOKE pg_execute_server_program to the metadata database user to prevent COPY...FROM PROGRAM RCE escalation, run the metadata database connection with minimal privileges (read-only to metadata schema, no superuser), and enable PostgreSQL query logging to detect injection attempts. Note that these compensating controls reduce but do not eliminate risk - privilege restrictions prevent RCE but not data exfiltration. Reference GitHub security advisory GHSA-6j7p-qjhg-9947 for complete remediation guidance and version-specific upgrade paths.

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

Share

CVE-2026-29090 vulnerability details – vuln.today

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