Every CVESearch/Get API key

GHSA-7xw9-549r-8jrc

DIRAC: SQL injection and lack of access control in PilotManager service

8.5 HighFix available

GHSA-7xw9-549r-8jrc is a high vulnerability (CVSS 8.5) in dirac, published July 13, 2026. No source lists public exploit code. Fixed in dirac 8.0.79.

What does this mean?
Severity
8.5 HighCVSS 3.1, GitHub Advisories
Exploit chance
UnscoredNo EPSS score yet
Exploitation
None knownNot on CISA’s or ENISA’s lists
Fixed in
8.0.79dirac +5 more

Description

Details

A number of the functions in PilotManager pass parameters directly through to the database layer, which then does not do any escaping on the parameters. For example setPilotStatus: https://github.com/DIRACGrid/DIRAC/blob/1738e7c6d2f31d26f1364255d9d2e87b4896c922/src/DIRAC/WorkloadManagementSystem/Service/PilotManagerHandler.py#L343-L349

https://github.com/DIRACGrid/DIRAC/blob/1738e7c6d2f31d26f1364255d9d2e87b4896c922/src/DIRAC/WorkloadManagementSystem/DB/PilotAgentsDB.py#L117

This won't accept multiple statements separated by a semicolon, but a carefully crafted set of parameters containing SQL escapes would likely be able to change or return other database entries.

Further to this, the PilotManager access control is only set to "authenticated"; this allows these functions to be called by any user. This allows any user to manage (e.g. delete, read output of) any pilot pilot job: https://github.com/DIRACGrid/DIRAC/blob/1738e7c6d2f31d26f1364255d9d2e87b4896c922/src/DIRAC/WorkloadManagementSystem/ConfigTemplate.cfg#L111-L118

This is fixed by changing the SQL statements to use proper parameter substitution and providing a suitable set of access rules for the exported pilot management functions.

Patched versions:

https://pypi.org/project/DIRAC/8.0.79/ https://pypi.org/project/DIRAC/9.0.22/ https://pypi.org/project/DIRAC/9.1.10/

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
Low
User interaction
None

What an attacker can affect

Confidentiality
Low
Integrity
High
Availability
None

Affected packages

Affected packages
PackageAffectedFixed
dirac
PyPI
6 up to 8.0.79
8.0.79
dirac
PyPI
8.1.0a1 up to 9.0.22
9.0.22
dirac
PyPI
9.1.0 up to 9.1.10
9.1.10
dirac
PyPI
6 up to 8.0.79, plus listed versions
7.2.07.2.0a327.2.0a337.2.0a347.2.0a35
Show 45 moreShow less
7.2.0a367.2.0a387.2.0a397.2.17.2.107.2.127.2.137.2.147.2.157.2.167.2.197.2.27.2.207.2.217.2.227.2.237.2.247.2.257.2.267.2.277.2.287.2.37.2.307.2.317.2.327.2.337.2.347.2.357.2.367.2.377.2.387.2.397.2.47.2.407.2.417.2.427.2.437.2.447.2.457.2.467.2.477.2.487.2.497.2.57.2.50
8.0.79
dirac
PyPI
8.1.0a1 up to 9.0.22, plus listed versions
8.1.0a108.1.0a118.1.0a128.1.0a138.1.0a14
Show 45 moreShow less
8.1.0a158.1.0a168.1.0a178.1.0a188.1.0a198.1.0a28.1.0a208.1.0a218.1.0a228.1.0a238.1.0a38.1.0a48.1.0a58.1.0a68.1.0a78.1.0a88.1.0a99.0.09.0.0a19.0.0a109.0.0a119.0.0a129.0.0a139.0.0a169.0.0a179.0.0a189.0.0a199.0.0a29.0.0a209.0.0a219.0.0a229.0.0a239.0.0a249.0.0a259.0.0a269.0.0a279.0.0a289.0.0a299.0.0a39.0.0a309.0.0a319.0.0a359.0.0a369.0.0a379.0.0a38
9.0.22
dirac
PyPI
9.1.0 up to 9.1.10, plus listed versions
9.1.19.1.29.1.39.1.49.1.5
Show 4 moreShow less
9.1.69.1.79.1.89.1.9
9.1.10

What each source reports

GitHub Advisories Score used8.5

DIRAC: SQL injection and lack of access control in PilotManager service

Details

A number of the functions in PilotManager pass parameters directly through to the database layer, which then does not do any escaping on the parameters. For example setPilotStatus: https://github.com/DIRACGrid/DIRAC/blob/1738e7c6d2f31d26f1364255d9d2e87b4896c922/src/DIRAC/WorkloadManagementSystem/Service/PilotManagerHandler.py#L343-L349

https://github.com/DIRACGrid/DIRAC/blob/1738e7c6d2f31d26f1364255d9d2e87b4896c922/src/DIRAC/WorkloadManagementSystem/DB/PilotAgentsDB.py#L117

This won't accept multiple statements separated by a semicolon, but a carefully crafted set of parameters containing SQL escapes would likely be able to change or return other database entries.

Further to this, the PilotManager access control is only set to "authenticated"; this allows these functions to be called by any user. This allows any user to manage (e.g. delete, read output of) any pilot pilot job: https://github.com/DIRACGrid/DIRAC/blob/1738e7c6d2f31d26f1364255d9d2e87b4896c922/src/DIRAC/WorkloadManagementSystem/ConfigTemplate.cfg#L111-L118

This is fixed by changing the SQL statements to use proper parameter substitution and providing a suitable set of access rules for the exported pilot management functions.

Patched versions:

https://pypi.org/project/DIRAC/8.0.79/ https://pypi.org/project/DIRAC/9.0.22/ https://pypi.org/project/DIRAC/9.1.10/

Record
GHSA-7xw9-549r-8jrc
CVSS 3.1
8.5 HighCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:H/A:N
Weakness
CWE-89, CWE-284
Updated
2026-11-10
OSV8.5

DIRAC: SQL injection and lack of access control in PilotManager service

Details

A number of the functions in PilotManager pass parameters directly through to the database layer, which then does not do any escaping on the parameters. For example setPilotStatus: https://github.com/DIRACGrid/DIRAC/blob/1738e7c6d2f31d26f1364255d9d2e87b4896c922/src/DIRAC/WorkloadManagementSystem/Service/PilotManagerHandler.py#L343-L349

https://github.com/DIRACGrid/DIRAC/blob/1738e7c6d2f31d26f1364255d9d2e87b4896c922/src/DIRAC/WorkloadManagementSystem/DB/PilotAgentsDB.py#L117

This won't accept multiple statements separated by a semicolon, but a carefully crafted set of parameters containing SQL escapes would likely be able to change or return other database entries.

Further to this, the PilotManager access control is only set to "authenticated"; this allows these functions to be called by any user. This allows any user to manage (e.g. delete, read output of) any pilot pilot job: https://github.com/DIRACGrid/DIRAC/blob/1738e7c6d2f31d26f1364255d9d2e87b4896c922/src/DIRAC/WorkloadManagementSystem/ConfigTemplate.cfg#L111-L118

This is fixed by changing the SQL statements to use proper parameter substitution and providing a suitable set of access rules for the exported pilot management functions.

Patched versions:

https://pypi.org/project/DIRAC/8.0.79/ https://pypi.org/project/DIRAC/9.0.22/ https://pypi.org/project/DIRAC/9.1.10/

Record
GHSA-7xw9-549r-8jrc
CVSS 3.1
8.5 HighCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:H/A:N
Weakness
CWE-284, CWE-89
Updated
2026-11-10

History

History
RecordedChangedSources
referencesOSV
facts, referencesGitHub Advisories
first indexedGitHub Advisories, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

References

This page doesn't list everything

Left out here: 225 versions. The JSON record has them.

MoveEnter Open