🔍 CVE-2021-22926

7.5
CVSS Score
HIGH
2021-08-05
2026-10-14 12:17
✅ 완료

🇰🇷 한글 설명

macOS의 Secure Transport 라이브러리를 사용하는 libcurl 기반 애플리케이션에서 발생하는 취약점입니다. 공격자가 애플리케이션의 작업 디렉토리에 특정 이름의 파일을 생성함으로써, 애플리케이션이 의도한 인증서 대신 공격자가 준비한 악성 인증서를 사용하도록 유도할 수 있습니다.

💡 쉬운 설명

프로그램이 특정 인증서를 사용하려고 할 때, 해커가 미리 같은 이름의 가짜 파일을 만들어 놓으면 프로그램이 속아서 가짜 인증서를 사용하게 되는 문제입니다. 이로 인해 보안 연결 과정에서 잘못된 인증서가 전송될 수 있습니다.

🇺🇸 원문 (English)

libcurl-using applications can ask for a specific client certificate to be used in a transfer. This is done with the `CURLOPT_SSLCERT` option (`--cert` with the command line tool).When libcurl is built to use the macOS native TLS library Secure Transport, an application can ask for the client certificate by name or with a file name - using the same option. If the name exists as a file, it will be used instead of by name.If the appliction runs with a current working directory that is writable by other users (like `/tmp`), a malicious user can create a file name with the same name as the app wants to use by name, and thereby trick the application to use the file based cert instead of the one referred to by name making libcurl send the wrong client certificate in the TLS connection handshake.

📍 영향받는 시스템

macOS의 Secure Transport를 사용하여 빌드된 libcurl 기반 애플리케이션

⚔️ 공격 벡터

쓰기 권한이 있는 디렉토리에 인증서 이름과 동일한 파일을 생성하여 인증서 교체 유도

🛡️ 대응 방법

libcurl을 최신 버전으로 업데이트하거나, 애플리케이션이 인증서를 로드할 때 절대 경로를 사용하도록 수정

🔧 검증 코드

출력 결과에 'Secure Transport'가 포함되어 있다면 해당 취약점에 노출될 가능성이 있는 환경입니다.

Shell / Script
curl --version | grep -i 'Secure Transport'

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H