В Composer е установена уязвимост, която компрометира хранилището на Packagist PHP

Преди няколко дни избухна новина, че е установена критична уязвимост en мениджърът на зависимостите на композирам (CVE-2021-29472), която ви позволява да изпълнявате произволни команди в системата при обработка на пакет със специално оформена стойност на URL, която определя посоката за изтегляне на изходния код.

Проблемът се проявява в компонентите GitDriver, SvnDriver и HgDriver използва се със системите за контрол на източници Git, Subversion и Mercurial. Уязвимостта е отстранена във версиите на Composer 1.10.22 и 2.0.13.

По-специално, по подразбиране хранилището на пакети Packagist по подразбиране, което съдържа 306.000 1.400 PHP пакета за разработчици и предлага над XNUMX милиарда изтегляния месечно, е особено засегнато.

В екосистемата PHP Composer е основният инструмент за управление и инсталиране на софтуерни зависимости. Екипите по целия свят го използват, за да улеснят процеса на надстройка и да гарантират, че приложенията работят без усилие във всички среди и версии.

Експериментът показа, че ако има информация за проблема, нападателите могат да поемат контрола над инфраструктурата на Packagist и да прихванат идентификационните данни на поддържащите или да пренасочат изтеглянето на пакети към сървър на трета страна, като организират доставката на варианти на пакети с промени. злонамерени потребители да заменят задната вратичка по време на инсталирането на зависимост.

Опасността за крайните потребители е ограничена поради факта, че съдържанието на composer.json обикновено се определя от потребителя и връзките към източника се предават при достъп до хранилища на трети страни, които обикновено са надеждни. Основният удар падна върху хранилището Packagist.org и услугата Private Packagist, това обаждане Composer с прехвърляне на данни, получени от потребители. Атакуващите могат да пускат своя код на Packagist сървъри, като пуснат специално изработен пакет.

Екипът на Packagist отстрани уязвимостта в рамките на 12 часа след уведомяването на уязвимост. Изследователите уведомиха частно разработчиците на Packagist на 22 април и проблемът беше отстранен същия ден. Публична актуализация на Composer с корекция на уязвимостта беше пусната на 27 април, а подробностите бяха разкрити на 28 април. Одит на регистрационните файлове на сървърите на Packagist не разкри никаква подозрителна дейност, свързана с уязвимостта.

Грешките за впръскване на аргументи са наистина интересен клас грешки, които често се пренебрегват по време на прегледите на кода и напълно се пренебрегват при взаимодействията в черното поле.

Проблемът е причинен от грешка в кода за проверка на URL в основния файл composer.json и в връзките за изтегляне на източника. Грешката присъства в кода от ноември 2011 г. Packagist използва специални слоеве за управление на изтеглянията на код, без да е обвързан със специфична система за контрол на източника, която се изпълнява чрез извикване на "fromShellCommandline" с аргументи от командния ред.

Сърцевината на проблема е, че методът ProcessExecutor позволява да се посочат допълнителни параметри на извикване в URL адреса. Такова бягство липсваше в драйверите на GitDriver.php, SvnDriver.php и HgDriver.php. Атаката на GitDriver.php беше възпрепятствана от факта, че командата "git ls-remote" не поддържа посочване на допълнителни аргументи след пътя.

Атаката срещу HgDriver.php стана възможна чрез предаване на параметъра „–config“ на помощната програма „hq“, която позволява организиране на изпълнението на всяка команда чрез манипулиране на конфигурацията „alias.identify“.

Чрез изпращане на тестов пакет с подобен URL адрес на Packagist, изследователите се увериха, че след публикуването им техният сървър получи HTTP заявка от един от сървърите на Packagist на AWS, който съдържа списък с файловете в текущата директория.

Трябва да се отбележи, че поддържащите не са идентифицирали никакви признаци на предишна експлоатация на тази уязвимост в публичната инстанция на пакетиста.

И накрая, ако се интересувате да научите повече за това, можете да се консултирате с подробностите В следващия линк.


Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорник за данните: AB Internet Networks 2008 SL
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.