Логотип exploitDog
Консоль
Логотип exploitDog

exploitDog

github логотип

GHSA-84m6-5m72-45fp

Опубликовано: 07 апр. 2025
Источник: github
Github: Прошло ревью
CVSS3: 7.5

Описание

Apollo Router Operation Limits Vulnerable to Bypass via Integer Overflow

Impact

Summary

A vulnerability in Apollo Router allowed certain queries to bypass configured operation limits, specifically due to integer overflow.

Details

The operation limits plugin uses unsigned 32-bit integers to track limit counters (e.g. for a query's height). If a counter exceeded the maximum value for this data type (4,294,967,295), it wrapped around to 0, unintentionally allowing queries to bypass configured thresholds. This could occur for large queries if the payload limit were sufficiently increased, but could also occur for small queries with deeply nested and reused named fragments.

Fix/Mitigation

Logic was updated to ensure counter overflow is handled correctly and does not wrap around to 0.

Patches

This has been remediated in apollo-router versions 1.61.2 and 2.1.1.

Workarounds

The only known workaround is "Safelisting" or "Safelisting with IDs only" per Safelisting with Persisted Queries - Apollo GraphQL Docs.

Acknowledgements

We appreciate the efforts of the security community in identifying and improving the performance and security of operation limiting mechanisms.

Пакеты

Наименование

apollo-router

rust
Затронутые версииВерсия исправления

< 1.61.2

1.61.2

Наименование

apollo-router

rust
Затронутые версииВерсия исправления

>= 2.0.0-alpha.0, < 2.1.1

2.1.1

EPSS

Процентиль: 59%
0.00378
Низкий

7.5 High

CVSS3

Дефекты

CWE-190

Связанные уязвимости

CVSS3: 7.5
nvd
10 месяцев назад

The Apollo Router Core is a configurable, high-performance graph router written in Rust to run a federated supergraph that uses Apollo Federation 2. Prior to 1.61.2 and 2.1.1, the operation limits plugin uses unsigned 32-bit integers to track limit counters (e.g. for a query's height). If a counter exceeded the maximum value for this data type (4,294,967,295), it wrapped around to 0, unintentionally allowing queries to bypass configured thresholds. This could occur for large queries if the payload limit were sufficiently increased, but could also occur for small queries with deeply nested and reused named fragments. This has been remediated in apollo-router versions 1.61.2 and 2.1.1.

EPSS

Процентиль: 59%
0.00378
Низкий

7.5 High

CVSS3

Дефекты

CWE-190