🇰🇷 한글 설명
libcurl에서 재사용되는 easy 또는 multi 핸들을 사용하여 TLS 전송을 수행할 때, `CURLSSLOPT_NO_PARTIALCHAIN` 옵션을 변경하면 메모리에 캐시된 CA 저장소가 의도치 않게 재사용될 수 있습니다. 이로 인해 사용자의 설정과 달리 libcurl이 허용되지 않아야 할 신뢰 체인을 찾아 수락할 수 있는 보안 취약점이 존재합니다.
💡 쉬운 설명
인터넷 연결 설정을 바꿨음에도 불구하고, 프로그램이 이전의 잘못된 보안 설정을 그대로 사용하여 보안이 취약한 사이트를 안전하다고 착각할 수 있는 문제입니다. 이로 인해 가짜 인증서를 사용하는 사이트에 연결될 위험이 있습니다.
🇺🇸 원문 (English)
When doing TLS related transfers with reused easy or multi handles and
altering the `CURLSSLOPT_NO_PARTIALCHAIN` option, libcurl could accidentally
reuse a CA store cached in memory for which the partial chain option was
reversed. Contrary to the user's wishes and expectations. This could make
libcurl find and accept a trust chain that it otherwise would not.
📍 영향받는 시스템
libcurl (CURLSSLOPT_NO_PARTIALCHAIN 옵션 변경 및 핸들 재사용 시)
⚔️ 공격 벡터
공격자가 조작된 인증서를 사용하여 중간자 공격(MitM)을 통해 신뢰할 수 없는 연결을 강제로 수락하게 유도
🛡️ 대응 방법
libcurl을 최신 보안 패치가 적용된 버전으로 업데이트하거나, 핸들 재사용 시 옵션 변경에 주의하여 구현
🔧 검증 코드
출력된 libcurl 버전을 확인하여 취약점이 해결된 최신 버전인지 제조사의 보안 권고문과 비교