{
  "affected": [
    {
      "ranges": [
        {
          "database_specific": {
            "cpe": "cpe:2.3:a:cern:rucio:*:*:*:*:*:*:*:*",
            "extracted_events": [
              {
                "introduced": "1.30.0"
              },
              {
                "fixed": "35.8.5"
              },
              {
                "introduced": "36.0.0"
              },
              {
                "fixed": "38.5.5"
              }
            ],
            "source": "CPE_RANGE"
          },
          "events": [
            {
              "introduced": "0c04740b4a15b6a37dcc8430c66473aff97226e8"
            },
            {
              "fixed": "0e7ce8e9ce3654f9e3b92a8b53a1717e6f9a2b9e"
            },
            {
              "introduced": "46cc73438ba4042ac937fff1c5a0dfabc83e91f3"
            },
            {
              "fixed": "e8c591df9aa46ed25bc1683ab0110a44981c5582"
            }
          ],
          "repo": "https://github.com/rucio/rucio",
          "type": "GIT"
        }
      ]
    }
  ],
  "aliases": [
    "GHSA-6j7p-qjhg-9947"
  ],
  "database_specific": {
    "cna_assigner": "GitHub_M",
    "cwe_ids": [
      "CWE-89"
    ],
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/29xxx/CVE-2026-29090.json",
    "unresolved_ranges": [
      {
        "extracted_events": [
          {
            "introduced": "38.6.0"
          },
          {
            "fixed": "39.4.2"
          },
          {
            "introduced": "40.0.0"
          },
          {
            "fixed": "40.1.1"
          }
        ],
        "source": "AFFECTED_FIELD"
      }
    ]
  },
  "details": "### Summary\n\nA 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/\u003cscope\u003e/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. \n\nDepending 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.",
  "id": "CVE-2026-29090",
  "modified": "2026-07-08T05:36:59.086887478Z",
  "published": "2026-05-06T17:21:24.141Z",
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/29xxx/CVE-2026-29090.json"
    },
    {
      "type": "ADVISORY",
      "url": "https://github.com/rucio/rucio/security/advisories/GHSA-6j7p-qjhg-9947"
    },
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-29090"
    }
  ],
  "schema_version": "1.7.5",
  "severity": [
    {
      "score": "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",
      "type": "CVSS_V4"
    }
  ],
  "summary": "Rucio SQL injection in postgres_meta DID search path compromises PostgreSQL metadata database"
}