Computer >> 컴퓨터 >  >> 네트워킹 >> 네트워크 보안

OpenCart Journal 테마 3.1.0 SQL 오류로 인한 민감한 데이터 노출 취약점 - 지금 바로 업데이트하세요

인기 있는 Journal 테마를 사용하는 OpenCart 웹사이트에 대한 보안 감사 과정에서, 특정 엔드포인트가 SQL 오류를 통해 민감한 데이터 노출(Sensitive Data Exposure)에 취약하다는 사실을 발견했습니다. 이 문제를 수정한 Journal 3.1.0 버전은 2020년 7월 1일에 출시되었습니다.

CVE ID: CVE-2020-15478

취약점 개요

25,000개 이상의 웹사이트에서 사용되는 OpenCart 최고 판매량 테마인 Journal이 민감한 정보를 노출하고 있으며, SQL 인젝션과 같은 추가 공격에도 잠재적으로 취약한 것으로 확인되었습니다.

민감한 데이터 노출은 OWASP Top 10 취약점 중 하나로, 애플리케이션이 민감한 데이터를 충분히 보호하지 못할 때 발생합니다. 이때 노출될 수 있는 정보에는 비밀번호, 세션 토큰, 신용카드 데이터, 개인 건강 정보 등이 포함됩니다.

취약점 상세

테마 사용자들이 최신 버전으로 업데이트할 충분한 시간을 확보할 수 있도록, 취약점에 대한 자세한 기술 정보는 7월 15일에 공개될 예정입니다.

기술적 세부 사항 업데이트:

/catalog/controller/journal3/blog.php 파일에서 "page" 매개변수가 정수형으로 타입 캐스팅되는 방식에 문제가 있습니다. 사용자가 여기에 문자열을 입력하면 SQL 오류, 데이터베이스 세부 정보, 내부 경로까지 표시되는 상세한 오류 메시지가 노출됩니다.

이러한 정보는 공격자가 공격을 더욱 정교하게 준비하는 데 악용될 수 있습니다. 해당 파일에서는 다음 코드를 통해 $page 변수가 정수로 타입 캐스팅되고 있습니다.

$page = (int)Arr::get($this->request->get, 'page', 1);
OpenCart Journal 테마 3.1.0 SQL 오류로 인한 민감한 데이터 노출 취약점 - 지금 바로 업데이트하세요

타임라인

2020년 6월 11일: Journal 팀에 취약점 보고
2020년 7월 1일: 취약점 수정 사항이 포함된 3.1.0 버전 출시

권장 조치

  • 테마를 반드시 최신 버전으로 업데이트하는 것이 강력히 권장됩니다.
  • 업데이트가 어려운 경우, /catalog/controller/journal3/blog.php 파일에서 $page = (int)Arr::get($this->request->get, 'page', 1); 코드 뒤에 아래 코드를 추가하여 임시 조치할 수 있습니다.
if ($page == 0)
{
    $page = 1;
}

참고 자료

  • https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-15478
  • https://docs.journal-theme.com/changelog
  • https://nvd.nist.gov/vuln/detail/CVE-2020-15478