🇰🇷 한글 설명
libcurl에서 HTTP(S) 전송 시, 이전에 PUT 요청에 사용된 읽기 콜백(CURLOPT_READFUNCTION)이 CURLOPT_POSTFIELDS가 설정된 이후의 POST 요청에서도 잘못 사용될 수 있는 취약점입니다. 이로 인해 애플리케이션이 잘못된 데이터를 전송하거나, Use-After-Free와 같은 메모리 오류를 일으켜 시스템 불안정성을 초래할 수 있습니다.
💡 쉬운 설명
데이터를 보내는 도구가 이전 작업의 설정을 잘못 기억하여 엉뚱한 데이터를 보내거나 프로그램이 갑자기 꺼질 수 있는 문제입니다. 특히 데이터를 올리는 방식(PUT)에서 보내는 방식(POST)으로 바꿀 때 발생합니다.
🇺🇸 원문 (English)
When doing HTTP(S) transfers, libcurl might erroneously use the read callback (`CURLOPT_READFUNCTION`) to ask for data to send, even when the `CURLOPT_POSTFIELDS` option has been set, if the same handle previously was used to issue a `PUT` request which used that callback. This flaw may surprise the application and cause it to misbehave and either send off the wrong data or use memory after free or similar in the subsequent `POST` request. The problem exists in the logic for a reused handle when it is changed from a PUT to a POST.
📍 영향받는 시스템
libcurl 7.77.0 미만 버전 (PUT에서 POST로 핸들을 재사용하는 경우)
⚔️ 공격 벡터
동일한 libcurl 핸들을 사용하여 PUT 요청 후 POST 요청을 수행하는 애플리케이션 대상
🛡️ 대응 방법
libcurl을 최신 보안 패치가 적용된 버전(7.84.0 이상 권장)으로 업데이트하십시오.
🔧 검증 코드
출력된 libcurl 버전을 확인하여 취약한 버전 범위에 해당하는지 체크합니다.
curl --version | grep libcurl