RIPS Technologies는 WordPress와 Automattic에서 만든 전자상거래 플러그인 WooCommerce에서 문제를 발견했습니다. 공식 통계에 따르면 이 솔루션은 400만 회 이상 다운로드되었으며, 활성 설치 수도 이와 거의 비슷합니다.
연구자들은 여기에 두 가지 문제가 있다고 설명합니다. 첫 번째 문제는 사용자마다 다른 역할을 사용하는 WordPress에 플러그인이 설치되면, 자체 인증 시스템을 만들지 않고 기존 CMS의 권한 시스템을 사용한다는 점입니다. 이를 위해 플러그인은 WordPress의 새로운 기능으로 새 역할을 만든 다음, 자체 함수를 통해 CMS 설정 및 다른 사용자와의 상호작용을 제한합니다.
따라서 WooCommerce를 설치하면 edit_users 권한을 가진 Shop Manager(«store manager») 역할이 새로 만들어집니다. 이 권한으로 사용자는 관리자를 포함한 WordPress의 다른 모든 사용자의 프로필뿐만 아니라 게시물도 수정할 수 있습니다.
WooCommerce 개발자들은 이 역할을 가진 사용자가 관리자 프로필에 간섭하지 못하도록 하는 기능을 제공한 것으로 보입니다. 그러나 플러그인의 권한 관리 시스템 작동에 결함이 있어, WooCommerce가 비활성화되면 «store manager» 제한 기능이 작동하지 않게 되고, 해당 역할을 가진 사용자는 다른 사용자의 계정을 자유롭게 수정할 수 있게 됩니다.
따라서 플러그인을 안전하게 비활성화할 수 있는 유일한 방법은 관리자가 플러그인을 비활성화한 뒤 모든 파일을 삭제하는 것입니다. 그리고 여기에 두 번째 문제가 있습니다.
사실 RIPS Technologies의 분석가들은 3.4.5 이하 버전의 WooCommerce 파일 삭제와 관련된 버그를 발견했습니다. Shop Manager 권한을 가진 사용자가 플러그인의 필수 파일을 포함하여 모든 파일을 삭제할 수 있다는 것이 밝혀졌습니다. 이후 플러그인은 예측할 수 없이 작동하지 않게 되고, WordPress가 이를 자동으로 비활성화하여, ‘store manager’ 역할을 가진 사용자가 모든 사용자의 프로필을 수정할 수 있는 이전 상황으로 되돌아가게 됩니다.
연구자들은 이러한 상황에서 공격자가 관리자 계정을 탈취하는 데 어려움이 없으며, 따라서 사이트 전체를 제어할 수 있다고 설명합니다. 아래 영상은 이 사건의 두 가지 문제가 결합된 모습을 보여줍니다.
전문가들은 이 시스템을 성공적으로 악용하려면 공격자가 Shop Manager 역할을 가진 계정에 접근할 수 있어야 한다고 강조합니다. 다만 연구자들에 따르면 이는 XSS 취약점이나 피싱 공격을 통해 가능합니다.
WooCommerce 개발자들은 이미 플러그인의 새 버전(3.4.6)을 배포하여 문제를 해결했습니다. 플러그인 자동 업데이트는 전혀 포함되어 있지 않으므로, 전문가들은 사용자가 직접 업데이트를 확인하고 최신 버전의 WooCommerce를 사용하고 있는지 확인할 것을 권장합니다.