В открытой платформе для организации совместной работы с Git-репозиториями GitLab выявлены две уязвимости, которые могут быть использованы для выполнения произвольного кода на сервере Первая уязвимость (http://permalink.gmane.org/gmane.comp.security.oss.general/1...) (CVE-2013-4489) найдена в системе поиска по коду и позволяет выполнить произвольные команды через отправку специально сформированного поискового запроса. Вторая уязвимость CVE-2013-4490 (http://permalink.gmane.org/gmane.comp.security.oss.general/1...) присутствует в модуле gitlab-shell, используемом для установки ключей SSH, загруженных через web-интерфейс. Проблемы проявляются только для аутентифицированных пользователей и уже исправлены (http://blog.gitlab.org/gitlab-ce-6-2-and-5-4-security-release/) в выпусках GitLab 6.2.3 и 5.4.1.URL: http://blog.gitlab.org/gitlab-ce-6-2-and-5-4-security-release/
Новость: http://www.opennet.me/opennews/art.shtml?num=38342
Патч говорит сам за себя;- cmd = "echo \'#{cmd}\' >> #{auth_file}"
- system(cmd)
+ open(auth_file, 'a') { |file| file.puts(cmd) }Подумывал использовать GitLab, но после такого ляпа уж лучше останусь на GitHub.
> - cmd = "echo \'#{cmd}\' >> #{auth_file}"
> - system(cmd)мощно. я бы так не смог.
поясните для непрограммиста, в чем соль?
> поясните для непрограммиста, в чем соль?Ну представь, что параметр #{cmd} выглядит как "1; rm -rf /*"
Блин, кавычку забыл :(
> поясните для непрограммиста, в чем соль?Редкостный быдлoкод, который потом делает system() не валидируя входные данные. Что позволяет выполнить ... да все что может текущий юзер - то и можно :)
- cmd = "echo \'#{cmd}\' >> #{auth_file}"
- system(cmd)Это шикарно.
sudo rm -rf /* сработал
/.hidden_porno не удалилося... ибо нефиг юзать "*"!
А нефиг создавать скрытые каталоги в корне. Тогда и проблем у взламывающих вас хаксоров не будет.
ну если у вас пользователю под которым GitLab крутится разрешено sudo rm без пароля дергать, так при чем тут GitLab
давно пора знать, что ценны на машинах именно пользовательские данные. другими словами, sudo для rm не нужен (если пакостник не клинический "Аноним")
p.s. щас начнется... бэкапы, распределенность и тд. все это круто, но N времени сервис будет не доступен, привычными путями.
> давно пора знать, что ценны на машинах именно пользовательские данные.Отсюда мораль: не держите ценных данных под юзером под которым httpd крутится. Впрочем бсдоидным кулсисопам это бесполезно объяснять.
>> давно пора знать, что ценны на машинах именно пользовательские данные.
> Отсюда мораль: не держите ценных данных под юзером под которым httpd крутится.
> Впрочем бсдоидным кулсисопам это бесполезно объяснять.как давно gitlab крутится под httpd ?
луноходные спициалисты с путти.экзе сегодня, смотрю, в ударе
>давно пора знать, что ценны на машинах именно пользовательские данные. другими словами, sudo для rm не нужен (если пакостник не клинический "Аноним")Пора бы уже знать что gitlab ставится от имени служебного пользователя
> Пора бы уже знать что gitlab ставится от имени служебного пользователяА что, на серваке могут быть еще и данные _не служебных_ пользователей?
> ну если у вас пользователю под которым GitLab крутится разрешено sudo rm
> без пароля дергать, так при чем тут GitLabKVM виртуалку не жалко
а git репозитории ?
> а git репозитории ?git бэкапиться на отдельную машину
месте с внедрёнными бэкдорам?
рыдаю от умиления. хочу посмотреть в широко открытые стеклянные глаза того, кто это изначально написал. просто так, из любопытства.
> рыдаю от умиления. хочу посмотреть в широко открытые стеклянные глаза того, кто
> это изначально написал. просто так, из любопытства.Рубисты же. Модно-стильно-молодежно. Офигенно безопасно. И system() освоили заодно.
руби хороший. the planet is fine. the people are fucked.
бонусом надо посмотреть в глаза и остальным членам команды, которые "делают review" кода друг друга :-))
А зачем оно, если есть gitolite?
А зачем ты, если есть я?