Code::Security/취약점

Beancount/fava 1.22.3 이전 버전의 XSS 취약점 (CVE-2022-2589)

태군 코드 2022. 8. 5. 16:38
반응형

허용받지 않은 서비스 대상으로 해킹을 시도하는 행위는 범죄 행위입니다. 해킹을 시도할 때에 발생하는 법적인 책임은 그것을 행한 사용자에게 있다는 것을 명심하시기 바랍니다.

 

CVE-ID

CVE-2022-2589

 

개요

- beancount/fava 1.22.3 이전 버전에서 XSS 취약점 발견되었습니다.

 

Beancount는 금융 거래 기록을 텍스트 파일로 정의하고, 메모리에서 읽고, 다양한 보고서를 생성하고, 웹 인터페이스를 제공하는 컴퓨터 언어입니다.

 

fava는 회계 도구 Beancount의 웹 인터페이스입니다.

 

설명

Fava v1.22에는 손익계산서 대시보드에 필터 변환에 대한 부적절한 유효성 검사로 인해 사용자가 XSS를 수행할 수 있는 변환 필터 기능이 있습니다.

 

Fava 데모 페이지 https://fava.pythonanywhere.com/example-beancount-file/income_statement/

 

Fava 데모 페이지

취약한 매개변수를 찾기 위하여 드롭/다운 메뉴에서 필터링을 해줍니다.

 

Fava 데모 페이지 소스 코드

 

스크립트 코드 입력

XSS 취약점을 확인하기 위하여 스크립트 코드를 입력한 후 확인해 보면 스크립트 코드가 동작하여 팝업창이 뜨는 것을 확인할 수 있습니다.

 

Endpoints

https://fava.pythonanywhere.com/huge-example-file/income_statement/?conversion=at_value 

 

Payload
"><img src=a onerror=alert(document.domain)>

 

Endpoints 및 Payload는 더 확인이 가능 합니다.

 

스크립트 코드 삽입후 소스코드 확인

 

영향 받는 제품 및 버전

- beancount/fava 1.22.3 이전 버전

 

대응방안

- fava버전 1.22.2 이상으로 업그레이드

- HTTP 요청의 데이터 입력을 삭제하고 검색 중 쿼리 매개변수 값과 같은 항목을 사용자에게 다시 표시하기 전에 모든 데이터의 유효성을 검사, 필터링 또는 이스케이프 합니다.
- ?, &, /, 및 공백 <과 같은 특수 문자 >를 해당 HTML 또는 URL로 인코딩 된 해당 문자로 변환합니다.
- 사용자에게 클라이언트 측 스크립트를 비활성화할 수 있는 옵션을 제공합니다.
- 잘못된 요청을 리디렉션합니다.
- 두 개의 개별 IP 주소에서 온 로그인을 포함하여 동시 로그인을 감지하고 해당 세션을 무효화합니다.

 

참고사이트

- https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-2589 

 

반응형