CVE-2017-12850 프로젝트 관리를 위해 사용하는 KanBoard 에서 다른 사용자의 비밀번호를 변경할 수 있는 취약점(CVE-2017-12850)이 발생하였다. KanBoard Github 의 Commit 에서 두 개 파일을 수정한 것을 확인할 수 있다. app/Controller/UserCredentialController.php list ( $valid , $errors ) = $this ->userValidator->validatePasswordModification( $values ); + if (! $this ->userSession->isAdmin()) { + $values [ 'id' ] = $this ->userSession->getId(); + } + if ( $valid ) { if ( $this ->userModel->update( $values )) { $this ->flash->success(t( 'Password modified successfully.' )); 먼저 UserCredentialController.php 파일에 추가된 소스코드를 살펴보자. if 문을 이용하여 관리자 계정 유무를 확인하고 관리자 계정이 아닐 경우 유저 인증 값에서 ID 값을 추출하여 $values[‘id’] 값에 넣는 것을 확인할 수 있다. 관리자 계정이 아닐 경우, 비밀번호 변경을 요청 세션 값에서 ID를 추출하여 변경하게 함으로 다른 사용자의 비밀번호를 무단으로 변경하지 못하게 막았을 것이라 추측해볼 수 있다. app/Validator/UserValidator.php $v = new Validator( $values , array_merge( $rules , $...