🇰🇷 한글 설명
SAP Cloud SDK for Python의 IASContextProvider가 Authorization 헤더의 IAS JWT 서명을 검증하지 않고 app_tid, sap_gtid, user_uuid 클레임을 신뢰하여 런타임 컨텍스트에 기록합니다. 이로 인해 위조된 테넌트/사용자 정보가 OTel 스팬, 로그, 감사 이벤트, 테넌트 라우팅 전체로 전파될 수 있습니다.
💡 쉬운 설명
공격자가 피해자의 신원이 담긴 가짜 토큰을 만들어 보내면 시스템이 이를 진짜로 믿습니다. 그 결과 다른 고객의 권한으로 작업이 기록되고 처리되는 문제가 생깁니다.
🇺🇸 원문 (English)
The SAP Cloud SDK for Python contains an improper cryptographic signature verification vulnerability (CWE-347) in IASContextProvider, the runtime-context provider registered by default via bootstrap(app).IASContextProvider extracted the app_tid, sap_gtid and user_uuid claims from the IAS JWT in the Authorization header using an unverified decoder and wrote them into the request-scoped RuntimeContext without validating the token signature. A remote caller could submit a self-signed JWT naming a victim tenant/user; the forged identity then propagated to every consumer of the runtime context:OTel span attributes (sap.tenancy.tenant_id, user.id) via RuntimeContextSpanProcessorlog records via IdentityLogFilteraudit events (tenant_id, user_initiator_id) via AuditClienttenant routing via CBCClientThis completes an earlier remediation that fixed the same unverified pattern in StarletteIASTelemetryMiddleware but did not cover IASContextProvider.
📍 영향받는 시스템
SAP Cloud SDK for Python (bootstrap(app)로 기본 등록되는 IASContextProvider를 사용하는 버전, 수정 버전 확인 필요)
⚔️ 공격 벡터
원격 공격자가 피해자의 tenant/user 클레임을 담은 자체 서명 JWT를 Authorization 헤더로 전송
🛡️ 대응 방법
SAP 보안 공지에 따른 최신 SAP Cloud SDK for Python 버전으로 업그레이드하고, IASContextProvider에서 JWT 서명을 검증하도록 적용
🔧 검증 코드
출력된 Version 값을 SAP 보안 공지의 수정 버전과 비교하며, 수정 버전보다 낮으면 취약할 수 있고 같거나 높으면 패치된 것입니다.
pip show sap-cloud-sdk 2>/dev/null || pip3 show sap-cloud-sdk 2>/dev/null