🇰🇷 한글 설명
Dart 및 Flutter용 HTTP 클라이언트인 Dio의 1.0.0부터 2.8.0 버전 사이에서 dio_http2_adapter가 리다이렉트를 처리할 때 발생합니다. Http2Adapter._fetch 함수가 원본 요청의 헤더를 목적지 도메인과 비교하지 않고 그대로 복사하여, 인증 정보나 쿠키가 다른 도메인으로 유출될 수 있는 취약점입니다.
💡 쉬운 설명
인터넷 연결 도구가 다른 사이트로 이동할 때, 원래 사이트에서 사용하던 비밀번호나 로그인 정보를 새 사이트에도 그대로 전달해버리는 문제입니다. 이로 인해 해커가 만든 사이트에 사용자의 중요한 로그인 정보가 노출될 수 있습니다.
🇺🇸 원문 (English)
Dio is a powerful HTTP client for Dart and Flutter. From 1.0.0 until 2.8.0, dio_http2_adapter follows redirects in Http2Adapter._fetch by copying the original RequestOptions.headers into the redirected HTTP/2 request without comparing the source and destination origins. A server contacted by an application can return a cross-origin Location redirect to a different-origin destination, which then receives preserved Authorization, Cookie, and Proxy-Authorization headers because RequestOptions.copyWith retains the full header map. The issue applies when applications use Http2Adapter for authenticated requests, and redirect following is enabled by default. This issue is fixed in version 2.8.0.
📍 영향받는 시스템
Dio (1.0.0 ~ 2.8.0 버전 중 dio_http2_adapter 사용 시)
⚔️ 공격 벡터
인증된 요청을 처리하는 과정에서 악의적인 서버가 다른 도메인으로 리다이렉트를 유도하여 헤더 정보를 탈취함
🛡️ 대응 방법
Dio 라이브러리를 2.8.0 이상의 최신 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 결과에서 dio의 버전이 2.8.0 미만인지 확인하십시오.
flutter pub deps | grep dio
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
💻 영향받는 소프트웨어
IBM WebSphere Application Server