Особенность отображения проектов на GitHub создала видимость внедрения бэкдора в ядро Linux

В интерфейсе GitHub выявлена интересная особенность, позволяющая представить любое стороннее изменение как изменение, уже включённое в основной проект. Например, сегодня в социальных сетях стала распространяться ссылка на изменение в официальном зеркале основного репозитория ядра Linux, свидетельствующее о подстановке бэкдора в драйвер hid-samsung.

Разбор ситуации показал, что GitHub в целях оптимизации хранения и минимизации дублирования данных, хранит основной репозиторий и все связанные с ним форки вместе, логически разделяя коммиты. Подобное хранение позволяет просмотреть в любом из связанных репозиторие любой коммит, явно указав его хэш в URL.

Например, в случае с демонстрацией бэкдора, один из пользователей создал в интерфейсе GitHub форк основного репозитория ядра Linux, далее добавил в свой форк коммит с кодом, похожим на бэкдор. После чего он сформировал ссылку, в которой SHA1-идентификатор внешего изменения был подставлен в URL основного репозитория. При открытии подобной ссылки посторонний коммит показывается в интерфейсе GitHub в контексте основного репозитория, несмотря на то, что совершён в форке и не имеет к основному репозиторию никакого отношения и в нём подобный коммит отсутствует. Более того, в основном репозитории в списке изменений для отдельных файлов показываются и сторонние коммиты, что создаёт большую путаницу.

0_1545408291.png

©  OpenNet