CVE-2025-2825 CrushFTP

안우진·2025년 4월 3일
0

CVE

목록 보기
1/2

취약점 유형

인증 절차 우회(Unauthenticated Authentication Bypass)

CVSS

9.8 (Critical)

CrushFTP의 특정 버전에서 S3 인증 헤더 처리와 관련된 취약점입니다. 알려진 사용자명을 이용해 인증되지 않은 공격자가 해당 사용자처럼 수행할 수 있습니다. 이 취약점으로 관리자 권한으로 작업을 수행하거나 데이터에 접근할 수 있습니다.

위 이미지의 좌측은 취약점이 존재하는 코드이고, 우측은 해당 취약점을 방어한 코드입니다.
여기서 핵심은, HTTP(S) 요청의 Header의 Authorization에서 s3_username을 추출한 후 lookup_user_pass를 true로 합니다. 이후 login_user_pass 함수를 호출합니다. 이 때, 첫 인자로 lookup_user_pass를 넘겨줍니다. 여기서 문제가 발생하는데, lookup_user_pass가 true라면, user_pass (패스워드)에 대한 검증 없이 login_user_pass 함수가 true를 반환합니다. login_user_pass 함수는 아래와 같습니다. anyPass라는 파라미터가 true라면, 검증 없이 true를 반환한다고 합니다.

login_user_pass(boolean anyPass, boolean doAfterLogin, String user_name, String user_pass)

이를 방어하기 위해 패스워드 검증을 확실히 수행하려고 login_user_pass(false, false, ..) 와 같이 anyPass의 값을 false로 넘겨줍니다. 패스워드가 없는 그러한 경우에 case-work로 보안을 해주었습니다. 이를 통해 기존 취약점을 방어할 수 있습니다.

코드 수정 전후를 비교하여 exploit을 작성할 수 있습니다. 위와 같이 HTTP(S) 요청을 하면,
패스워드 검증 없이 해당 쿠키를 Credential의 유저인 것처럼 할 수 있고, 이후 해당 쿠키를 사용하여 요청을 보내면 200 응답이 오는 것을 알 수 있습니다.
관리자의 Credential을 알고 있다면, 임의의 쿠키로 관리자 권한을 얻어서 API를 호출할 수 있습니다.

CVE 분석 사이트 중 attackerkb를 선호하여 이곳에 Authorization으로 검색했습니다.
https://attackerkb.com/search?q=Authorization&sort=recent-activity

출처

https://attackerkb.com/topics/k0EgiL9Psz/cve-2025-2825/rapid7-analysis

0개의 댓글