Исправление серьёзных уязвимостей в Module::Signature

Темы:

Модуль Module::Signature используется многими CPAN-клиентами для проверки GPG-подписи модулей, полученных со CPAN или любого из его зеркал. Джон Лайтсей сообщил, что обнаружил четыре уязвимости в коде модуля:

  1. Module::Signature, из-за некорректного парсинга границ подписанных данных в файле подписи, мог извлечь информацию о файлах из неподписанной части.
  2. При проверке содержимого CPAN-модуля Module::Signature игнорировал некоторые файлы из архива, которые не были указаны в файле подписи, что затрагивает и файлы в каталоге t, которые автоматически выполняются при запуске тестов.
  3. При генерации контрольных сумм из подписанного манифеста Module::Signature использовал open() с двумя параметрами при чтении файлов. Это позволяло встраивать произвольные shell-команды в файле SIGNATURE, которые бы запускались при проверке подписи.
  4. Module::Signature подгружает некоторые модули в процессе работы, модуль Text::Diff может отсутствовать в системе и соответственно может быть загружен из текущего каталога распакованного архива модуля, что может привести к выполнению произвольного кода.

Вышло обновление Module::Signature 0.75, в котором исправлены все перечисленные проблемы.