🔍 CVE-2026-107728

7.5
CVSS Score
HIGH
2026-10-08
2026-10-14 02:16
✅ 완료

🇰🇷 한글 설명

Strawberry GraphQL 라이브러리에서 권한 확인 로직의 오류로 인해 보안 취약점이 발견되었습니다. 동기식 필드 리졸버에서 커스텀 권한 함수가 비동기 객체를 반환할 경우, 시스템이 이를 제대로 기다리지(await) 않고 객체의 존재 여부만 확인하여 권한이 있는 것으로 잘못 판단합니다. 이로 인해 권한이 없는 사용자가 보호된 리졸버를 실행할 수 있습니다.

💡 쉬운 설명

보안 검사관이 '예/아니오'라고 대답해야 하는데, 대답을 기다리지 않고 그냥 '대답이 도착했으니 통과'라고 처리해버리는 문제입니다. 이 때문에 권한이 없는 사람도 마치 허가된 것처럼 시스템에 접근할 수 있습니다.

🇺🇸 원문 (English)

Strawberry GraphQL is a library for creating GraphQL APIs. From 0.217.0 until 0.326.1, PermissionExtension.resolve() on a synchronous field resolver evaluates the result of has_permission() for truthiness. When a custom permission declares has_permission() as a normal function but returns an awaitable, supports_sync does not classify it as asynchronous, the awaitable is not awaited, and its inherently truthy object value permits the protected resolver to run even when the result would resolve to false. This affects synchronous field resolvers under both execute_sync() and execute(); permissions declared with async def has_permission() and synchronous permissions returning a boolean are not affected. This issue is fixed in version 0.326.1.

📍 영향받는 시스템

Strawberry GraphQL 0.217.0 ~ 0.326.1 버전

⚔️ 공격 벡터

비동기 객체를 반환하는 커스텀 권한 설정을 악용하여 권한 검사를 우회하고 보호된 데이터에 접근

🛡️ 대응 방법

Strawberry GraphQL 라이브러리를 0.326.1 이상의 최신 버전으로 업데이트

🔧 검증 코드

출력된 버전이 0.326.1보다 낮으면 취약한 상태이며, 0.326.1 이상이면 안전합니다.

Shell / Script
pip show strawberry-graphql | grep Version

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N

💻 영향받는 소프트웨어

Spring for GraphQL