Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
mojarra-2.2.13-patched — Бэкпорт исправления безопасности CVE-2020-6950 для Mojarra 2.2.13, предоставляющий пропатченный JAR-файл jsf-impl с минимальными, проверяемыми изменениями для устаревших приложений. | Kitploit
Инструменты/GitHubGitHub/thelonelycoder/mojarra-2.2.13-patched
Анализ уязвимостейБезопасность Цепочки ПоставокОбучение и ОбразованиеПодобранные Ресурсы
GitHubthelonelycoder/mojarra-2.2.13-patched

mojarra-2.2.13-patched

Бэкпорт исправления безопасности CVE-2020-6950 для Mojarra 2.2.13, предоставляющий пропатченный JAR-файл jsf-impl с минимальными, проверяемыми изменениями для устаревших приложений.

Репозиторий
301 месяц назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Mojarra 2.2.13 – обратный порт исправления CVE-2020-6950

Этот репозиторий содержит воспроизводимый обратный порт исправления для CVE-2020-6950 в Mojarra 2.2.13.

Он создан в первую очередь для обеспечения прослеживаемости и поддержки устаревших приложений, которые по причинам совместимости не могут быть просто обновлены до более новой версии JSF/Mojarra.

Благодарности и исходные источники

Mojarra

Mojarra — это эталонная реализация JavaServer Faces (JSF), изначально разработанная в рамках экосистемы GlassFish/Java EE, а в настоящее время поддерживаемая как проект Eclipse Mojarra.

Исходный код Mojarra, содержащийся в этом репозитории, не является моей работой. Все авторские права остаются за оригинальными авторами и участниками Mojarra.

Текущий вышестоящий проект:

  • Eclipse Mojarra: https://github.com/eclipse-ee4j/mojarra
  • Страница проекта Eclipse: https://projects.eclipse.org/projects/ee4j.mojarra

Немодифицированные артефакты Mojarra 2.2.13, использованные в качестве основы для этой работы, были получены из Maven Central.

Патч CVE-2020-6950

Используемое здесь исправление безопасности не было разработано мной.

Обратный порт для Mojarra 2.2.13 был получен из пакета Mojarra openEuler, где CVE-2020-6950.patch применяется к Mojarra 2.2.13.

Исходный код пакета openEuler:

  • https://gitee.com/src-openeuler/mojarra

Оригинальный патч сохранён, чтобы происхождение и точный характер модификации безопасности оставались прослеживаемыми.

Моя благодарность разработчикам вышестоящего проекта Mojarra, а также сопровождающим и участникам openEuler, которые предоставили и опубликовали обратно портированный патч безопасности.

Зачем существует этот репозиторий

Я столкнулся с устаревшим приложением, которое по-прежнему зависит от Mojarra 2.2.13 и было затронуто уязвимостью CVE-2020-6950.

Обновление полной реализации JSF не было практичным краткосрочным вариантом, поскольку приложение и окружающий его фреймворк являются устаревшим программным обеспечением со значительными ограничениями совместимости.

В то же время я хотел, чтобы модификация безопасности была:

  • основана на общедоступном вышестоящем/вендорском патче,
  • минимальной,
  • проверяемой,
  • воспроизводимой,
  • и прослеживаемой до оригинальной реализации Mojarra 2.2.13.

По этой причине я пересобрал затронутые классы самостоятельно, а не распространял необъяснимый модифицированный бинарный файл.

Таким образом, этот репозиторий не представляет собой независимую реализацию исправления безопасности. Он документирует и упаковывает существующее опубликованное исправление для использования с Mojarra 2.2.13.

Что было изменено

Патч openEuler для CVE-2020-6950 модифицирует три класса Mojarra:

com/sun/faces/application/resource/ClasspathResourceHelper.java
com/sun/faces/application/resource/ResourceManager.java
com/sun/faces/application/resource/WebappResourceHelper.java

Патч добавляет проверку имени контракта ресурса с использованием:

ResourceManager.nameContainsForbiddenSequence(...)

В патченном JAR-файле jsf-impl-2.2.13 заменяются только эти три класса.

Было выполнено сравнение распакованных оригинального и патченного JAR-файлов для проверки того, что никакие другие файлы не отличаются.

Подход к сборке

Оригинальные исходники Mojarra 2.2.13 использовались вместе с опубликованным патчем openEuler для CVE.

Поскольку восстановление полной исторической среды сборки Mojarra 2.2.13 и её старых зависимостей сборки добавило бы ненужную сложность и затруднило бы аудит результата, были перекомпилированы только три затронутых класса.

Они были скомпилированы с OpenJDK 8 с использованием:

-source 1.5 -target 1.5

Было проверено, что полученные файлы классов имеют:

major version: 49

что соответствует версии байткода оригинальных классов Mojarra 2.2.13.

Затем три полученных файла классов были вставлены в неизменённую копию оригинального jsf-impl-2.2.13.jar.

Проверка

Полученный JAR-файл был распакован и сравнён с оригиналом.

Отличаются только эти файлы:

ClasspathResourceHelper.class
ResourceManager.class
WebappResourceHelper.class

Полученный байткод был дополнительно проверен с помощью javap, чтобы убедиться, что оба класса помощников ресурсов содержат предполагаемый вызов:

ResourceManager.nameContainsForbiddenSequence(...)

Все три заменённых класса также были проверены на сохранение основной версии 49 файлов классов Java.

Артефакт развёртывания

Для приложений, которые в настоящее время используют раздельные библиотеки Mojarra:

jsf-api-2.2.13.jar
jsf-impl-2.2.13.jar

соответствующей заменой, созданной этим проектом, является:

jsf-impl-2.2.13-patched.jar

Имя JAR-файла само по себе не имеет значения для загрузчика классов Java. Суффикс -patched намеренно сохранён, чтобы администраторы могли немедленно отличить модифицированную реализацию от оригинальной.

Не развёртывайте оригинальный и патченный JAR-файлы jsf-impl одновременно.

Безопасная процедура развёртывания заключается в следующем: сначала создайте резервную копию существующего приложения, удалите оригинальный jsf-impl-2.2.13.jar, разверните jsf-impl-2.2.13-patched.jar, перезапустите приложение/контейнер и проверьте как нормальную работу приложения, так и проблему безопасности, устранённую CVE-2020-6950.

Область применения и отказ от ответственности

Этот репозиторий предназначен как узконаправленный обратный порт совместимости/безопасности для устаревших установок Mojarra 2.2.13.

Это не форк Mojarra, не новый выпуск Mojarra и не аффилирован с Eclipse Foundation, Oracle, GlassFish или openEuler и не одобрен ими.

Где это возможно, обновление до поддерживаемой в настоящее время реализации JSF/Jakarta Faces предпочтительнее, чем поддержание старого выпуска Mojarra с отдельными патчами безопасности.

Этот репозиторий устраняет конкретную CVE, описанную выше. Его не следует интерпретировать как делающий Mojarra 2.2.13 в целом безопасным, актуальным, поддерживаемым или официально поддерживаемым.

Пользователи несут ответственность за тестирование патченного артефакта в своей собственной среде перед развёртыванием его в производственных системах.

Лицензирование

Оригинальный исходный код и бинарные файлы Mojarra остаются предметом соответствующих вышестоящих лицензий и уведомлений об авторских правах.

Mojarra 2.2.13 распространялась на условиях двойной лицензии GPL v2 / CDDL, применимых к этому выпуску, включая исключение Classpath GPL, где это указано в оригинальных заголовках исходных файлов.

Оригинальный файл лицензии Mojarra включён без изменений по адресу:

packager/legal/LICENSE.txt

Оригинальные заголовки авторских прав и лицензий в исходных файлах Mojarra сохранены.

Патч, предоставленный openEuler, остаётся атрибутируемым соответствующим авторам и исходному проекту.

Этот репозиторий не претендует на право собственности на оригинальный код Mojarra или исправление CVE.

Скачать инструмент