Skip to content

CVE-2024-7254 unbounded recursion when parsing deeply nested SGROUP tags causes a stack overflow DoS#86

Merged
vharseko merged 2 commits intomasterfrom
copilot/update-protobuf-java-version
Apr 18, 2026
Merged

CVE-2024-7254 unbounded recursion when parsing deeply nested SGROUP tags causes a stack overflow DoS#86
vharseko merged 2 commits intomasterfrom
copilot/update-protobuf-java-version

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 16, 2026

protobuf-java 3.0.2 is vulnerable to CVE-2024-7254 (CVSS 8.7) — unbounded recursion when parsing deeply nested SGROUP tags causes a stack overflow DoS.

Changes

  • OpenICF-java-framework/pom.xml: bump protobuf-java.version property from 3.0.23.25.5 (minimum fixed version in the 3.x line)
<!-- before -->
<protobuf-java.version>3.0.2</protobuf-java.version>

<!-- after -->
<protobuf-java.version>3.25.5</protobuf-java.version>

connector-framework-protobuf inherits this version via ${protobuf-java.version}; no other files reference it.

Original prompt

CVE-2024-7254: Denial of Service via Stack Overflow in protobuf-java

Problem

The file OpenICF-java-framework/pom.xml defines protobuf-java.version as 3.0.2 (line 57). This version is vulnerable to CVE-2024-7254 — a high-severity (CVSS 8.7) Denial of Service vulnerability where a maliciously crafted protobuf message with deeply nested SGROUP tags causes unbounded recursion and stack overflow.

Fix Required

Update the protobuf-java.version property in OpenICF-java-framework/pom.xml from 3.0.2 to 3.25.5 (the minimum fixed version in the 3.x branch).

Change line 57 in OpenICF-java-framework/pom.xml:

<!-- Before -->
<protobuf-java.version>3.0.2</protobuf-java.version>

<!-- After -->
<protobuf-java.version>3.25.5</protobuf-java.version>

Make sure to also check if this property is referenced in any other pom.xml files in the repository and verify the dependency coordinates are consistent.

References

The following is the prior conversation context from the user's chat exploration (may be truncated):

User: предложи исправление CVE-2024-7254

User: предложи исправление CVE-2024-7254

Assistant: Зависимость protobuf-java в этом репозитории приходит транзитивно через OpenICF (org.openidentityplatform.openicf), который импортируется как BOM в корневом pom.xml (строка 371–377). В частности, артефакт connector-framework-protobuf использует Google Protocol Buffers.

О CVE-2024-7254

CVE-2024-7254 — уязвимость типа Denial of Service (DoS) в com.google.protobuf:protobuf-java. Злоумышленник может создать специально сформированное сообщение с глубокой вложенностью (SGROUP-теги), которое вызывает неконтролируемую рекурсию и переполнение стека при парсинге.

  • Серьёзность: High (CVSS 8.7)
  • Исправлено в версиях: protobuf-java3.25.5, 4.27.5 или 4.28.2

Рекомендуемое исправление

Поскольку зависимость protobuf-java приходит транзитивно через OpenICF BOM, есть два подхода:

Вариант 1: Переопределить версию protobuf в корневом pom.xml (быстрое исправление)

Добавьте в секцию <dependencyManagement> корневого pom.xml:

<!-- CVE-2024-7254 fix: override transitive protobuf-java version -->
<dependency>
    <groupId>com.google.protobuf</groupId>
    <artifactId>protobuf-java</artifactId>
    <version>3.25.5</version>
</dependency>

Это принудительно переопределит транзитивную версию protobuf-java для всего проекта.

Вариант 2: Обновить OpenICF BOM (предпочтительно)

Обновите версию OpenICF в корневом pom.xml (строка 374) до версии, которая уже включает исправленный protobuf-java ≥ 3.25.5:

<dependency>
    <groupId>org.openidentityplatform</groupId>
    <artifactId>openicf</artifactId>
    <version><!-- обновить до версии с исправленным protobuf --></version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

Проверка

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

mvn dependency:tree -Dincludes=com.google.protobuf:protobuf-java

Версия protobuf-java в выводе должна быть ≥ 3.25.5.


Вариант 1 — самый быстрый способ закрыть уязвимость. Вариант 2 — более чистое решение, если в OpenICF уже выпущена версия с обновлённым protobuf. Хотите, чтобы я создал PR с исправлением?

User: сделай PR вариант 2

Assistant: Нашёл! В OpenICF-java-framework/pom.xml строка 57: <protobuf-java.version>3.0.2</protobuf-java.version> — уязвимая версия. Нужно обновить до 3.25.5. Создаю PR в репозитории OpenICF:

Assistant: I've started the process of creating a PR in OpenIdentityPlatform/OpenICF to fix CVE-2024-7254. The coding agent will:

  1. Update protobuf-java.version from 3.0.2 to 3.25.5 in OpenICF-java-framework/pom.xml
  2. Check for any other references to this property across the repo
  3. Open a pull request with the change

Once the OpenICF PR is merged and a new version is released (e.g. 2.0.3), you'll then need to update the OpenICF BOM version in OpenIdentityPlatform/OpenIDM's pom.xml (line 374) from 2.0.2 to the new version. Let me know if you'd also like me to prepare that follow-up PR for OpenIDM.

This pull request was created from Copilot chat.

Copilot AI changed the title [WIP] Update protobuf-java.version to mitigate CVE-2024-7254 vulnerability Fix CVE-2024-7254: upgrade protobuf-java from 3.0.2 to 3.25.5 Apr 16, 2026
Copilot AI requested a review from vharseko April 16, 2026 13:47
@vharseko vharseko requested review from maximthomas and removed request for vharseko April 16, 2026 14:11
@vharseko vharseko changed the title Fix CVE-2024-7254: upgrade protobuf-java from 3.0.2 to 3.25.5 CVE-2024-7254 unbounded recursion when parsing deeply nested SGROUP tags causes a stack overflow DoS Apr 16, 2026
@vharseko vharseko marked this pull request as ready for review April 16, 2026 14:38
@vharseko vharseko merged commit c063fd7 into master Apr 18, 2026
16 of 17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants