Description
Rucio is a scientific data management framework. From 1.16.1 until 35.9.0, 38.6.0, and 41.0.0rc1, the /credentials/signurl endpoint reads X-Rucio-Account instead of the account stored in request.environ['issuer'] by token authentication. Any authenticated low-privilege user can supply root as the header value and pass the root-only get_signed_url permission check. The server then returns a presigned read, write, or delete URL for an attacker-selected object using stored S3, GCS, or Swift credentials, and X-Rucio-VO can select another tenant in multi-VO deployments. This permits data disclosure, modification, deletion, and cross-tenant access on cloud-backed RSEs. This issue is fixed in versions 35.9.0, 38.6.0, and 41.0.0rc1.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| rucio | rucio | >= 1.16.1, < 35.9.0, >= 36.0.0, < 38.6.0, >= 39.0.0, < 41.0.0rc1 | — |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| PyPI | rucio | >= 1.16.1, < 35.9.0 | 35.9.0 | GHSA-5j9r-fx4x-rpvg |
| PyPI | rucio | >= 36.0.0rc1, < 38.6.0 | 38.6.0 | GHSA-5j9r-fx4x-rpvg |
| PyPI | rucio | >= 39.0.0rc1, < 41.0.0rc1 | 41.0.0rc1 | GHSA-5j9r-fx4x-rpvg |
References
- https://github.com/rucio/rucio/security/advisories/GHSA-5j9r-fx4x-rpvg
- https://github.com/rucio/rucio/commit/64c0e6a6a93ae88427ff3b7d77532ce08c8a69ec
- https://github.com/rucio/rucio/commit/8bdc38994a8766658d0314d36afc104c9242c96f
- https://github.com/rucio/rucio/commit/8d9ba31514e6f5dca32b8c1db4738582cb37ec3a
- https://github.com/rucio/rucio/releases/tag/35.9.0
- https://github.com/rucio/rucio/releases/tag/38.6.0
- https://github.com/rucio/rucio/releases/tag/41.0.0rc1