DIRAC · CVE-2026-45579 · Package
FIX → 9.1.10 · 8.0.79 +1
DIRAC's RequestManager passes a user-supplied grouping attribute into a Python eval() call, so any authenticated user can reach os functions. An attacker who can log in can run commands as the account that runs the DIRAC services, then read dirac.cfg, database passwords and stored proxies and tokens.
first public Jul 13, 2026 · 2 sources
Could this affect your app?
Free first check from your website. Connect your repo for the full answer.
Any DIRAC server running the RequestManager service is exposed, because export_getRequestCountersWeb accepts input from any authenticated user and passes it into eval(). Deployments where only trusted staff hold accounts are still exposed to any insider or to a stolen account. Servers without the RequestManager service, or on a fixed version, are not affected.
Not affected if fixed-version, no-requestmanager-service
Who cares dirac, grid-computing, python, self-hosted
pip show DIRAC on each DIRAC server and compare it with the fixed versions below.Upgrade to 9.1.10 · 8.0.79 +1
An remote code execution vulnerability exists in RequestManager due to the use of eval on untrusted input that allows any authenticated user to run code/commands on the DIRAC server as the system user running the DIRAC services.
The export_getRequestCountersWeb function is callable by any authenticated user and just passes its parameters directly to the database instance: https://github.com/DIRACGrid/DIRAC/blob/f7e0a3ac153315030fb3520e8ca747f013758967/src/DIRAC/RequestManagementSystem/Service/ReqManagerHandler.py#L270
If the groupingAttribute string is unrecognised, Request. is prepended to it and the result is passed into an eval() call:
https://github.com/DIRACGrid/DIRAC/blob/f7e0a3ac153315030fb3520e8ca747f013758967/src/DIRAC/RequestManagementSystem/DB/RequestDB.py#L766-L776
By passing in a dunder string that is applicable to the Request object, it's possible to work back up to functions in the os module and trigger them to be called in the server context.
There are other uses of eval in ReqManager/RequestDB which may be equally accessible.
This allows any authenticated user to run commands on the server, which allows a full compromise of the DIRAC system (they can read the local dirac.cfg, get database passwords and export all stored proxies and tokens). If local logging is used, they can also remove evidence of the exploit from the log (it leaves an exception printout in the RequestManager log when used).
Check it with your coding agent
It reads this page and tells you if your code is affected.
Are you affected?
Ask from here. InfraStack checks the affected versions against your stack and answers in your inbox.
InfraStack checks the affected versions against your stack and answers in Slack, with the evidence and the fix.
8.0.79 for the 8.0 line (affected from 6 up to before 8.0.79)9.0.22 for the 9.0 line (affected from 8.1.0a1 up to before 9.0.22)9.1.10 for the 9.1 line (affected from 9.1.0 up to before 9.1.10)https://pypi.org/project/DIRAC/8.0.79/ https://pypi.org/project/DIRAC/9.0.22/ https://pypi.org/project/DIRAC/9.1.10/
This page as .md · .json · CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
GitHub Advisory Database, CC-BY 4.0 · NVD data is provided by NIST and is public domain. Posts quoted belong to their authors.