Обновление pgJDBC в существующей инсталляции DSpace

Коллеги из братского ТюмГУ сообщили об обнаруженной уязвимости в компоненте pgJDBC. Собственно с процессом обновления возникли вопросы, на которые мы совместными усилиями получили ответы.


Шатно, без пересборки при установке из репозиториев и DSpace 5 и DSpace 6 видимо собраны посредством JAVA 7 и имеют в своём составе компонент pgJDBC версии 42.2.1 в файле postgresql-42.2.1.jre7.jar. Как видно из описания уязвимости, проблема решена в версии 42.2.28, а последняя версия на момент написания данных строк — 42.2.29 (прямая ссылка на локальную копию и на файл на сайте разработчика).


Не очевидно, эксплуатируется ли данная уязвимость в DSpace, но раз есть возможность её исправить — давайте исправим. Ниже будет показан процесс исправления на примере инсталляции DSpace 5.11 в среде Windows. Для DSpace 6.х и Linux особых различий нет. И так, сначала посмотрим что у нас есть на старте:

Первой командой узнаём текущую версию компонента. Понятно, что пути у всех свои, а в других OS команда dir изменится на ls и ключи будут другие:

dir /b /c:\dspace\lib\postgresql-*

Второй командой посмотрим версию Java. Как видим, не смотря на Java8, библиотека подтянулась с подстрокой jre7 в названии. Думаю, это из-за того что пересборки DSpace в процессе установки не было:

java -version

Третя команда демонстрирует нам состояние СУБД, версию драйвера и соответствие версии базы данных. Всё совпадает:

dspace database info


После проверки исходного состояния нам остаётся только:

  • Скачать со страницы компонент для Java 7 для преемственности (на момент написания текста это был postgresql-42.2.29.jre7.jar)
  • Сделать резервную копию файла /dspace/lib/postgresql-42.2.1.jre7.jar
  • Остановить Tomcat
  • Удалить файл /dspace/lib/postgresql-42.2.1.jre7.jar
  • Поместить файл ostgresql-42.2.29.jre7.jar по адресу /dspace/lib/ostgresql-42.2.29.jre7.jar
  • Убедиться что нет проблем с правами (особенно актуально для Linux)
  • Запустить Tomcat
  • Визуально убедиться в старте сервиса


После успешного запуска сервиса можно проверить изменения тем же набором команд, что были описаны выше.

Первой командой узнаём текущую версию компонента. Фиксируем изменение версии:

dir /b /c:\dspace\lib\postgresql-*

Второй командой посмотрим версию Java. Тут изменений быть не должно:

java -version

Третя команда демонстрирует нам состояние СУБД, обновленную версию драйвера и соответствие версии базы данных. Всё совпадает:

dspace database info


Те же кто предпочитает православному UNIX WAY и болтосвару суровую документированную ынтырпрайзность, могут посмотреть куда-то сюда (но это не точно) и пересобрать DSpace.

Запись опубликована в рубрике Библиотека с метками . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *