Azure's Weakest Link – Five Full Cross-Tenant Compromises
연구원, Azure API Connections 교차 테넌트 취약점 5건 공개
Binary Security 연구원이 Azure Logic Apps API Connections에서 다른 테넌트의 Key Vault와 SQL에 접근할 수 있는 취약점 다섯 건을 공개했습니다. 연구원은 Microsoft가 보고된 취약점을 모두 수정했다고 밝혔지만, 게시물에는 개별 수정일과 영향받은 버전이 제시되지 않았습니다.
- 주제
본문
Binary Security의 Haakon Wik Gulbrandsrud 연구원이 2026년 10월 2일 Azure Logic Apps의 API Connections에서 발견한 취약점 다섯 건을 공개했습니다. 연구원은 이 취약점으로 다른 테넌트의 Key Vault 비밀값을 읽거나 Azure SQL 데이터베이스에 쓰는 사례를 재현했고, Microsoft에 보고한 뒤 모두 수정됐다고 밝혔습니다. 총 보상금은 20만 달러라고 설명했습니다.
API Connections는 Logic Apps의 워크플로가 외부 서비스나 Azure 서비스에 연결하도록 돕습니다. Microsoft 문서에 따르면 커넥터 호출은 Azure API Management(APIM)를 거치며, APIM은 커넥터의 OpenAPI 정의와 인증 정보를 처리합니다. 연결에 설정된 자격 증명으로 백엔드에 요청을 보내므로, 연결을 잘못 지정하거나 검증을 우회하면 해당 연결의 권한으로 데이터에 접근할 여지가 생깁니다. 실제 영향은 연결 자격 증명에 부여된 권한 범위에 달려 있습니다.
연구원은 자신의 연결에서 DynamicInvoke를 호출하며 경로 순회 문자열을 넣어 다른 테넌트의 Key Vault 비밀값을 읽는 재현 사례를 제시했습니다. Microsoft가 이 경로를 제한한 뒤에는 DynamicInvoke와 비슷한 기능을 가진 다른 동적 엔드포인트에서 우회가 가능했고, 연구원은 DynamicList를 통해 다른 테넌트의 SQL 데이터베이스에 쓰는 사례도 공개했습니다. 연구원에 따르면 Microsoft는 해당 엔드포인트들을 차단했습니다.
이후 연구원은 Logic Apps 워크플로 입력의 RuntimeUrl을 바꾸는 경로를 찾았습니다. Consumption과 Standard Logic Apps는 연결을 만드는 방식이 다르며, 연구원은 Consumption 워크플로에서 RuntimeUrl 검증이 연결 소유권 검사와 별도로 작동하는 점을 이용했다고 설명했습니다. Microsoft가 RuntimeUrl을 연결에 지정된 주소와 일치시키도록 바꾼 뒤에도, 검증이 URL 경로 정규화보다 먼저 이뤄져 우회가 가능했다고 합니다. 연구원은 후속 수정 과정에서 기존 경로에 대한 검증이 빠져 앞선 공격이 다시 가능해지는 문제도 보고했습니다.
게시물은 연구원이 재현한 공격 경로와 Microsoft의 대응 경과를 설명하지만, 실제 피해가 발생했다는 증거를 제시하지는 않습니다. 연구원은 다섯 건 모두 수정됐다고 밝혔으나, 게시물에는 취약점별 식별자와 수정일, 영향받은 버전이나 지역이 나오지 않습니다. Microsoft의 공개 문서는 커넥터의 일반 구조를 설명하며 이 취약점들과 수정 상태를 확인하지는 않습니다.
자료: Binary Security / 정리·해설: Trawling
참고 자료
- Connectors architecture | Microsoft Learn — https://learn.microsoft.com/en-us/connectors/connector-architecture