🇰🇷 한글 설명
Kiota는 OpenAPI 기반 HTTP 클라이언트 코드 생성기입니다. 1.29.1 및 1.31.1 미만 버전에서는 여러 writer 싱크(직렬화 키, 경로/쿼리 파라미터 매핑, URL 템플릿 메타데이터, enum/속성 메타데이터, 기본값 출력 등)에서 코드 생성 리터럴 인젝션 취약점이 존재합니다. OpenAPI 명세의 악성 값이 적절한 이스케이프 없이 생성 소스코드에 출력되면, 공격자가 문자열 리터럴을 탈출하여 생성된 클라이언트에 추가 코드를 삽입할 수 있습니다. 이 문제는 신뢰할 수 없는 출처의 OpenAPI 명세를 사용하거나, 정상적인 명세가 변조된 경우에만 실질적으로 악용 가능합니다.
💡 쉬운 설명
API 설계 문서(OpenAPI)를 기반으로 코드를 자동 생성하는 도구에 결함이 있습니다. 악의적으로 조작된 설계 문서를 사용하면 생성된 코드에 공격자의 코드가 몰래 섞일 수 있습니다.
🇺🇸 원문 (English)
Kiota is an OpenAPI based HTTP Client code generator. Versions prior to 1.29.1 and 1.31.1 are affected by a code-generation literal injection vulnerability in multiple writer sinks (for example: serialization/deserialization keys, path/query parameter mappings, URL template metadata, enum/property metadata, and default value emission). When malicious values from an OpenAPI description are emitted into generated source without context-appropriate escaping, an attacker can break out of string literals and inject additional code into generated clients. This issue is only practically exploitable when the OpenAPI description used for generation is from an untrusted source, or a normally trusted OpenAPI description has been compromised/tampered with. Only generating from trusted, integrity-protected API descriptions significantly reduces the risk. To remediate the issue, upgrade Kiota to 1.29.1, 1.31.1, or later and regenerate/refresh existing generated clients as a precaution. Refreshing generated clients ensures previously generated vulnerable code is replaced with hardened output.
📍 영향받는 시스템
Kiota 1.29.1 미만 및 1.31.1 미만 버전 (Kiota로 생성된 클라이언트 코드 포함)
⚔️ 공격 벡터
조작된 OpenAPI 명세 파일을 Kiota로 코드 생성 시, 문자열 탈출을 통해 생성 코드에 악성 코드 삽입
🛡️ 대응 방법
Kiota를 1.29.1, 1.31.1 이상으로 업그레이드한 후 기존 생성 클라이언트를 재생성하고, 신뢰할 수 있고 무결성이 보호된 OpenAPI 명세만 사용
🔧 검증 코드
출력된 Kiota 버전이 1.29.1 또는 1.31.1 이상이면 패치 적용된 상태이며, 미만이거나 출력이 없으면 업그레이드(dotnet tool update -g Microsoft.OpenApi.Kiota) 및 클라이언트 재생성이 필요합니다.
dotnet tool list -g 2>/dev/null | grep -i kiota