CVE-2026-29090 Rucio SQL injection in postgres_meta DID search path compromises PostgreSQL metadata database

Critical 9.0 Published Updated

Authenticated users can execute arbitrary SQL in Rucio's PostgreSQL metadata database via the DID search endpoint when the postgres_meta plugin is enabled.

Exploited in the wild
Not known
Login needed
Any signed-in user
Attackable
Over the internet
Victim action needed
Not needed
Fix
Available

What is CVE-2026-29090?

CVE-2026-29090 is a critical SQL injection vulnerability in rucio, published on 6 May 2026. Any signed-in user can exploit it over the network, with no action from the victim.

Official description

### Summary

A SQL injection vulnerability exists in Rucio versions 1.30.0 and later before 35.8.5, 38.5.5, 39.4.2, and 40.1.1, in `FilterEngine.create_postgres_query()`. This allows any authenticated Rucio user to execute arbitrary SQL against the PostgreSQL metadata database through the DID search endpoint (`GET /dids/<scope>/dids/search`). When the `postgres_meta` metadata plugin is configured, attacker-controlled filter keys and values are interpolated directly into raw SQL strings via Python `.format()`, then passed to `psycopg3`'s `sql.SQL()` which treats the string as trusted SQL syntax.

Depending on the database privileges assigned to the service account, exploitation can expose sensitive tables, modify or delete metadata, access server-side files, or achieve code execution through PostgreSQL features such as COPY ... FROM PROGRAM. This issue affects deployments that explicitly use the postgres_meta metadata plugin. This vulnerability has been fixed in versions 35.8.5, 38.5.5, 39.4.2, and 40.1.1.

Weakness: CWE-89

Which versions are affected by CVE-2026-29090?

9 open source packages ship an affected version, including rucio. It affects 1 product.

PackageAffectedFixed in
rucio PyPIFrom 1.30.035.8.5, 38.5.5, 39.4.2, 40.1.1
rucio PyPIFrom 1.30.035.8.5
rucio PyPIFrom 1.30.035.8.5
rucio PyPIFrom 36.0.038.5.5
rucio PyPIFrom 36.0.038.5.5
rucio PyPIFrom 39.0.039.4.2
3 more packages
rucio PyPIFrom 39.0.039.4.2
rucio PyPIFrom 40.0.040.1.1
rucio PyPIFrom 40.0.040.1.1

Products include Cern Rucio.

How do I fix CVE-2026-29090?

Upgrade rucio to a fixed version for your release line: 35.8.5, 38.5.5, 39.4.2 or 40.1.1.

Use parameterised queries everywhere and never build SQL by joining strings. Upgrade affected software first; a web application firewall only buys time. More about SQL injection.

Is CVE-2026-29090 being exploited?

There is no known exploitation of CVE-2026-29090 in the wild and no public exploit code.

Sources

Also known as GHSA-6j7p-qjhg-9947, PYSEC-2026-527.

Is CVE-2026-29090 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free