CVE-2026-45579 json
DIRAC: RCE in RequestManager due to eval on untrusted input
published 2026-07-13 3 mo ago modified 2026-09-30 39 d ago also EUVD-2026-78894 , GHSA-9jpv-c7p4-997x , PYSEC-2026-3462
- cvss
- 9.9
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.9%
- EPSS 0.9% chance of exploitation in 30 days, percentile 58%
- public exploits
- 0
- none known
Summary
DIRAC is an interware, meaning a software framework for distributed computing. Prior to versions 8.0.79, 9.0.22, and 9.1.10, the RequestManagementSystem/Service/ReqManagerHandler.py export_getRequestCountersWeb function passes an authenticated caller-controlled groupingAttribute to RequestManagementSystem/DB/RequestDB.py getRequestCountersWeb. An unrecognized value is resolved against the Request object and evaluated as Python code, allowing a crafted dunder attribute expression to reach operating-system functions and execute commands as the account running the DIRAC services. Successful exploitation can expose dirac.cfg, database passwords, stored proxies, and tokens, fully compromise the DIRAC system, and allow alteration of local log evidence. This issue is fixed in versions 8.0.79, 9.0.22, and 9.1.10.
Patch / fix
- pypi dirac 8.0.79, 9.0.22, 9.1.10
- diracgrid dirac 8.0.79, 9.0.22, 9.1.10
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- total
- Assessed
- 54 d ago
Exploit prediction
0.86% chance of exploitation in the next 30 days, higher than 58% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 9.9 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H |
| GitHub | 3.1 | 9.9 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H |
| OSV | 3.1 | 9.9 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | dirac | >=6, <8.0.79 >=8.1.0a1, <9.0.22 >=9.1.0, <9.1.10 |
8.0.79 9.0.22 9.1.10 |
Affected products
- DIRACGrid DIRAC
Classification
- Weakness
-
- CWE-95 Improper Neutralization of Directives in Dynamically Evaluated Code
References
- github.com /DIRACGrid/DIRAC/commit/8ec11072f48103d94e8b7cca831e2c7ce304d6c7
- github.com /DIRACGrid/DIRAC/commit/99f1af88b525e69a77f204aebf7d8df3b6056142
- github.com /DIRACGrid/DIRAC/commit/a6f75ce5d369254d46ca6f1d39e3f384366fa396
-
github.com
/DIRACGrid/DIRAC/security/advisories/GHSA-9jpv-c7p4-997x
web
- github.com /DIRACGrid/DIRAC/releases/tag/v8.0.79
- github.com /DIRACGrid/DIRAC/releases/tag/v9.0.22
- github.com /DIRACGrid/DIRAC/releases/tag/v9.1.10
-
github.com
/DIRACGrid/DIRAC
package
-
pypi.org
/project/DIRAC/8.0.79
web
-
pypi.org
/project/DIRAC/9.0.22
web
-
pypi.org
/project/DIRAC/9.1.10
web
-
pypi.org
/project/dirac
package
-
github.com
/advisories/GHSA-9jpv-c7p4-997x
advisory
-
nvd.nist.gov
/vuln/detail/CVE-2026-45579
advisory
Sources
- CVE List CVE-2026-45579
- GitHub Advisory GHSA-9jpv-c7p4-997x
- NVD CVE-2026-45579
- OSV PYSEC-2026-3462
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.