🇰🇷 한글 설명
libcurl의 multi 인터페이스를 통해 전송을 수행할 때, 풀링된 TLS 연결이 원래의 easy handle보다 오래 유지될 수 있는 취약점입니다. OpenSSL 3 프로바이더 설정에서 libcurl이 할당된 라이브러리 컨텍스트를 소유권 참조 없이 전달함에 따라, easy handle이 조기에 파괴되면 활성 연결에 댕글링 포인터가 남게 되어 이후 I/O 작업 시 힙 사용 후 해제(heap-use-after-free) 오류가 발생합니다.
💡 쉬운 설명
데이터를 주고받는 통로를 관리하는 도구가 먼저 사라졌는데, 실제 연결은 여전히 남아 있어 잘못된 메모리 주소를 참조하는 문제입니다. 이로 인해 프로그램이 갑자기 종료되거나 해커가 시스템을 제어할 위험이 있습니다.
🇺🇸 원문 (English)
When performing transfers via libcurl’s multi interface, pooled TLS
connections can outlive their originating easy handles. In OpenSSL 3 provider
configurations, libcurl attaches an allocated library context to the easy
handle's state and passes it to OpenSSL without acquiring an ownership
reference; destroying the easy handle prematurely frees this context while the
active connection retains a dangling pointer, leading to a heap-use-after-free
upon subsequent I/O or post-handshake operations.
📍 영향받는 시스템
libcurl (OpenSSL 3 프로바이더 사용 환경)
⚔️ 공격 벡터
특수하게 조작된 네트워크 트래픽을 통해 TLS 핸드셰이크 또는 I/O 작업을 유도하여 메모리 오류 유발
🛡️ 대응 방법
libcurl을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 libcurl 버전을 확인하여 해당 취약점이 해결된 최신 버전인지 제조사 보안 권고문과 비교하십시오.
curl --version | grep -i 'libcurl/'