CVE-2026-114134
Black: GitHub Action installs unvalidated required-version from pyproject.toml
Black is the uncompromising Python code formatter. Prior to 26.10.1, the Black GitHub Action with use_pyproject: true accepts tool.black.required-version from pyproject.toml without validating that it is a released Black version specifier. An attacker who can submit a pull request can change that field to a direct reference to attacker-controlled code, causing the workflow to install and execute the code in the victim repository's GitHub Actions context. This issue is fixed in version 26.10.1.
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
- High
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
8.7
Black: GitHub Action installs unvalidated required-version from pyproject.toml
Black is the uncompromising Python code formatter. Prior to 26.10.1, the Black GitHub Action with use_pyproject: true accepts tool.black.required-version from pyproject.toml without validating that it is a released Black version specifier. An attacker who can submit a pull request can change that field to a direct reference to attacker-controlled code, causing the workflow to install and execute the code in the victim repository's GitHub Actions context. This issue is fixed in version 26.10.1.
- Record
CVE-2026-114134- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N - Weakness
- CWE-829
- Updated
- 2026-11-05
EUVDEUVD-2026-117785
8.7
Black is the uncompromising Python code formatter. Prior to 26.10.1, the Black GitHub Action with use_pyproject: true accepts tool.black.required-version from pyproject.toml without validating that it is a released Black version specifier. An attacker who can submit a pull request can change that field to a direct reference to attacker-controlled code, causing the workflow to install and execute the code in the victim repository's GitHub Actions context. This issue is fixed in version 26.10.1.
- Record
EUVD-2026-117785- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N - Updated
- 2026-11-05
GitHub AdvisoriesGHSA-cg8m-r9f2-5wm2
8.7
Black: GitHub Action installs unvalidated required-version from pyproject.toml
Summary
The GitHub Action bundled with Black can read the version from tool.black.required-version if use_pyproject is set to True. This version is not validated and therefore can be used to execute untrusted code in the context of a victim's repository.
Details
This is similar to the previous CVE-2026-31900. The value in tool.black.required-version is accepted as the version to be installed by the action without validation.
Proof of concept
Reproduction requires a victim to use Black's GitHub Action with use_pyproject: true. The attacker would then issue a PR to the victim's repository with pyproject.toml edited so that Black points to a malicious repository.
Impact
This is a remote code execution vulnerability impacting users using the GitHub Action bundled with psf/black and using the use_pyproject: true setting.
- Record
GHSA-cg8m-r9f2-5wm2- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N - Weakness
- CWE-829
- Updated
- 2026-11-02
NVD
8.7
Black is the uncompromising Python code formatter. Prior to 26.10.1, the Black GitHub Action with use_pyproject: true accepts tool.black.required-version from pyproject.toml without validating that it is a released Black version specifier. An attacker who can submit a pull request can change that field to a direct reference to attacker-controlled code, causing the workflow to install and execute the code in the victim repository's GitHub Actions context. This issue is fixed in version 26.10.1.
- Record
CVE-2026-114134- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - Weakness
- CWE-829
- Updated
- 2026-11-05
OSV
8.7
Black: GitHub Action installs unvalidated required-version from pyproject.toml
Black is the uncompromising Python code formatter. Prior to 26.10.1, the Black GitHub Action with use_pyproject: true accepts tool.black.required-version from pyproject.toml without validating that it is a released Black version specifier. An attacker who can submit a pull request can change that field to a direct reference to attacker-controlled code, causing the workflow to install and execute the code in the victim repository's GitHub Actions context. This issue is fixed in version 26.10.1.
- Record
CVE-2026-114134- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N - Weakness
- CWE-829
- Updated
- 2026-11-07
OSVDEBIAN-CVE-2026-114134
8.7
Black is the uncompromising Python code formatter. Prior to 26.10.1, the Black GitHub Action with use_pyproject: true accepts tool.black.required-version from pyproject.toml without validating that it is a released Black version specifier. An attacker who can submit a pull request can change that field to a direct reference to attacker-controlled code, causing the workflow to install and execute the code in the victim repository's GitHub Actions context. This issue is fixed in version 26.10.1.
- Record
DEBIAN-CVE-2026-114134- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - Updated
- 2026-11-07
OSVGHSA-cg8m-r9f2-5wm2
8.7
Black: GitHub Action installs unvalidated required-version from pyproject.toml
Summary
The GitHub Action bundled with Black can read the version from tool.black.required-version if use_pyproject is set to True. This version is not validated and therefore can be used to execute untrusted code in the context of a victim's repository.
Details
This is similar to the previous CVE-2026-31900. The value in tool.black.required-version is accepted as the version to be installed by the action without validation.
Proof of concept
Reproduction requires a victim to use Black's GitHub Action with use_pyproject: true. The attacker would then issue a PR to the victim's repository with pyproject.toml edited so that Black points to a malicious repository.
Impact
This is a remote code execution vulnerability impacting users using the GitHub Action bundled with psf/black and using the use_pyproject: true setting.
- Record
GHSA-cg8m-r9f2-5wm2- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N - Weakness
- CWE-829
- Updated
- 2026-11-02
OSVROOT-APP-PYPI-CVE-2026-114134 No score
CVE-2026-114134 in black - Patched by Root
Root has patched CVE-2026-114134 in the black package for Root:PyPI. Multiple fixed versions available.
- Record
ROOT-APP-PYPI-CVE-2026-114134- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
blackPyPI |
before 26.10.1 | 26.10.1 |
blackDebian:12 |
All versions, plus listed versions 23.1.0-123.10.0-123.10.1-123.11.0-123.3.0-1 Show 29 moreShow less23.3.0-1~exp123.7.0-123.9.1-124.1.1-124.10.0-124.10.0-224.10.0-324.2.0-124.4.0-124.4.0-224.4.2-124.4.2-224.4.2-2~0exp024.8.0-125.1.0-0exp25.1.0-125.1.0-225.1.0-325.11.0-125.12.0-125.12.0-225.9.0-126.1.0-126.10.0-126.10.0-226.10.1-126.3.1-126.5.1-126.5.1-2 |
None known |
blackDebian:13 |
All versions, plus listed versions 25.1.0-325.1.0-3+deb13u125.11.0-125.12.0-125.12.0-2 Show 8 moreShow less25.9.0-126.1.0-126.10.0-126.10.0-226.10.1-126.3.1-126.5.1-126.5.1-2 |
None known |
blackDebian:14 |
All versions, plus listed versions 25.1.0-325.11.0-125.12.0-125.12.0-225.9.0-1 Show 7 moreShow less26.1.0-126.10.0-126.10.0-226.10.1-126.3.1-126.5.1-126.5.1-2 |
None known |
blackPyPI |
before 26.10.1, plus listed versions 18.3a018.3a118.3a218.3a318.3a4 Show 45 moreShow less18.4a018.4a118.4a218.4a318.4a418.5b018.5b118.6b018.6b118.6b218.6b318.6b418.9b019.10b019.3b020.8b020.8b121.10b021.11b021.11b121.12b021.4b021.4b121.4b221.5b021.5b121.5b221.6b021.7b021.8b021.9b022.1.022.10.022.12.022.3.022.6.022.8.023.1.023.10.023.10.123.11.023.12.023.12.123.1a123.3.0 |
26.10.1 |
blackRoot:PyPI |
before 26.10.0+aikido.1 | 26.10.0+aikido.126.3.1+aikido.126.5.1+aikido.125.12.0+aikido.2 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, aliases, references | OSV | |
| references | NVD, OSV | |
| aliases | EUVD | |
| description, facts, products, references, severity | CVE List | |
| first indexed | GitHub Advisories, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-114134 is a high vulnerability (CVSS 8.7) in Psf Black, published October 22, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.40%, the 34th percentile. Fixed in black 26.10.1.
References
github.com/psf/black/security/advisories/GHSA-cg8m-r9f2-5wm2
github.com/psf/black/pull/5510
github.com/psf/black/commit/ac1f71563aeccf73cf13ece00f231d9d6c66a514
github.com/psf/black/releases/tag/26.10.1
github.com/advisories/GHSA-cg8m-r9f2-5wm2
github.com/CVEProject/cvelistV5/tree/main/cves/2026/114xxx/CVE-2026-114134.json
nvd.nist.gov/vuln/detail/CVE-2026-114134
security-tracker.debian.org/tracker/CVE-2026-114134
github.com/psf/black
Left out here: 24 versions. The JSON record has them.