🔍 CVE-2026-75513

9.1
CVSS Score
CRITICAL
2026-09-16
2026-09-19 02:16
✅ 완료

🇰🇷 한글 설명

PostgreSQL 기반의 .NET 문서 DB인 Marten의 특정 버전에서 LINQ 및 테넌트 관리 경로를 통해 공격자가 제어 가능한 문자열이 이스케이프 처리 없이 SQL 리터럴에 삽입되는 취약점이 발견되었습니다. 이를 통해 공격자는 필터링을 우회하거나 데이터를 탈취할 수 있으며, 설정에 따라 데이터 수정까지 가능합니다.

💡 쉬운 설명

데이터베이스를 다루는 프로그램에서 사용자가 입력한 값을 검증 없이 명령어로 바로 사용하면서 발생하는 보안 구멍입니다. 나쁜 의도를 가진 사람이 특수 문자를 입력하면 데이터베이스의 보안 벽을 뚫고 정보를 몰래 빼가거나 내용을 바꿀 수 있습니다.

🇺🇸 원문 (English)

Marten is a .NET Transactional Document DB and Event Store on PostgreSQL. From version 7.0.0 until 9.13.0, several Marten LINQ and tenant-management paths interpolate runtime, potentially attacker-controlled strings into single-quoted SQL literals without escaping or parameterization. The primary confirmed vector is a dictionary indexer key used by Where filters in src/Marten/Linq/Members/Dictionaries/DictionaryItemMember.cs. Additional affected sinks include SelectParser.cs, DatabaseScopedTenantPartitions.cs, and DeleteAllForTenant.cs reached through IEventStore.DeleteProjectionProgressAsync, while DictionaryContainsKeyFilter.cs (Newtonsoft serializer only; System.Text.Json is not affected) handles ContainsKey calls. Events/Daemon/Internals/EventLoader.cs contains a related per-tenant partition-pruning literal that the advisory identifies as a defense-in-depth sink. A crafted single quote can escape the generated literal, enabling filter or multi-tenant authorization bypass and blind data exfiltration, and deployments that permit semicolon-batched Npgsql statements may also allow data modification. This issue is fixed in version 9.13.0.

📍 영향받는 시스템

Marten version 7.0.0 ~ 9.13.0

⚔️ 공격 벡터

조작된 단일 인용구(')를 포함한 문자열을 LINQ 필터나 테넌트 관리 기능에 입력하여 SQL 인젝션 수행

🛡️ 대응 방법

Marten 버전을 9.13.0 이상으로 업데이트

🔧 검증 코드

출력된 Marten의 버전이 9.13.0 미만인지 확인하여 취약 여부를 판단합니다.

Shell / Script
dotnet list package | grep Marten

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

PostgreSQL