TA 팀이 “Joomla! CMS Security Bypass (CVE-2023-23752)”를 분석하여 작성한 취약점 보고서
CVE-2023-23752는 잘못된 액세스 유효성 검사로 인해 웹 서비스 엔드포인트에 대한 무단 액세스를 허용하는 줌라! 버전 4.0.0~4.2.7에서 발견되는 취약점입니다. 이로 인해 악의적인 사용자가 인증 없이 시스템에 액세스하거나 데이터를 조작할 수 있는 위험이 발생할 수 있습니다.
Joomla의 기본 라우팅 항목 중 하나인 REST API api/index.php는 기본적으로 차단되어 있지만 특정 매개변수(public=true)를 포함하면 액세스할 수 있습니다. 이 API는 데이터베이스 계정 및 비밀번호와 같은 민감한 구성 정보를 노출할 수 있습니다.
이에 따라 영향을 받는 버전에 최신 보안 패치를 적용하고, 서버 수준에서 접근 제어를 강화하며, 웹 애플리케이션 방화벽(WAF)을 통해 데이터를 차단해야 합니다.
1. 개요
CVE-2023-23752는 Joomla! 4.0.0에서 4.2.7까지의 버전에서 발견된 취약점입니다. 이 취약점은 잘못된 접근 확인으로 인해 웹 서비스 엔드포인트에 대한 무단 접근을 허용합니다. 이로 인해 악의적인 사용자가 인증 없이 데이터에 접근하거나 시스템을 조작할 수 있는 위험이 존재합니다.
출처 : https://www.idappcom.co.uk/post/joomla-cms-security-bypass-cve-2023-23752
2. 공격 유형
Joomla 기본 라우팅 항목 중 개발자를 위한 REST API인 api/index.php 아래 API는 기본적으로 접근이 막혀있습니다.
하지만 특정 API는 파라미터에 public=true를 포함 시켜 접근하면 접근이 가능하며, 이를 통해 내부 정보에 대해 접근이 가능합니다.
출처: https://xz.aliyun.com/t/12175?time__1311=GqGxRDuDgA0%3D%3DGN4eeTq18e40KD%3DDcnQWoD
- 접근 가능한 API
v1/banners
v1/banners/:id
v1/banners/:id/contenthistory
v1/banners/:id/contenthistory/keep
v1/banners/clients
v1/banners/clients/:id
v1/banners/categories
v1/banners/categories/:id
v1/config/application
v1/config/:component_name
v1/contacts/form/:id
v1/contacts
v1/contacts/:id
v1/contacts/categories
v1/contacts/categories/:id
v1/fields/contacts/contact
v1/fields/contacts/contact/:id
v1/fields/contacts/mail
v1/fields/contacts/mail/:id
v1/fields/contacts/categories
v1/fields/contacts/categories/:id
v1/fields/groups/contacts/contact
v1/fields/groups/contacts/contact/:id
v1/fields/groups/contacts/mail
v1/fields/groups/contacts/mail/:id
v1/fields/groups/contacts/categories
v1/fields/groups/contacts/categories/:id
v1/contacts/:id/contenthistory
v1/contacts/:id/contenthistory/keep
v1/content/articles
v1/content/articles/:id
v1/content/categories
v1/content/categories/:id
v1/fields/content/articles
v1/fields/content/articles/:id
v1/fields/content/categories
v1/fields/content/categories/:id
v1/fields/groups/content/articles
v1/fields/groups/content/articles/:id
v1/fields/groups/content/categories
v1/fields/groups/content/categories/:id
v1/content/articles/:id/contenthistory
v1/content/articles/:id/contenthistory/keep
v1/extensions
v1/languages/content
v1/languages/content/:id
v1/languages/overrides/search
v1/languages/overrides/search/cache/refresh
v1/languages/overrides/site/zh-CN
v1/languages/overrides/site/zh-CN/:id
v1/languages/overrides/administrator/zh-CN
v1/languages/overrides/administrator/zh-CN/:id
v1/languages/overrides/site/en-GB
v1/languages/overrides/site/en-GB/:id
v1/languages/overrides/administrator/en-GB
v1/languages/overrides/administrator/en-GB/:id
v1/languages
v1/media/adapters
v1/media/adapters/:id
v1/media/files
v1/media/files/:path
v1/menus/site
v1/menus/site/:id
v1/menus/administrator
v1/menus/administrator/:id
v1/menus/site/items
v1/menus/site/items/:id
v1/menus/administrator/items
v1/menus/administrator/items/:id
v1/menus/site/items/types
v1/menus/administrator/items/types
v1/messages
v1/messages/:id
v1/modules/types/site
v1/modules/types/administrator
v1/modules/site
v1/modules/site/:id
v1/modules/administrator
v1/modules/administrator/:id
v1/newsfeeds/feeds
v1/newsfeeds/feeds/:id
v1/newsfeeds/categories
v1/newsfeeds/categories/:id
v1/plugins
v1/plugins/:id
v1/privacy/requests
v1/privacy/requests/:id
v1/privacy/requests/export/:id
v1/privacy/consents
v1/privacy/consents/:id
v1/redirects
v1/redirects/:id
v1/tags
v1/tags/:id
v1/templates/styles/site
v1/templates/styles/site/:id
v1/templates/styles/administrator
v1/templates/styles/administrator/:id
v1/users
v1/users/:id
v1/fields/users
v1/fields/users/:id
v1/fields/groups/users
v1/fields/groups/users/:id
v1/users/groups
v1/users/groups/:id
v1/users/levels
v1/users/levels/:id
- 이 API는 데이터베이스 계정 및 비밀번호를 포함하여 웹사이트의 가장 중요한 구성 정보를 얻는 데 사용됩니다.
3. 대응
CVE-2023-23752 취약점에 대한 보편 적인 대응 방법은 다음과 같습니다:
- Joomla! 4.0.0에서 4.2.7까지의 버전을 사용하는 경우, 최신 보안 패치
- 서버 차원에서 접근 통제 강화 및 WAF 기능을 통해 데이터 차단
4. 결론
CVE-2023-23752는 Joomla! 4.0.0부터 4.2.7까지의 버전에서 발견된 취약점으로, 잘못된 접근 확인으로 인해 웹 서비스 엔드포인트에 대한 무단 접근을 허용합니다. 이로 인해 악의적인 사용자가 인증 없이 시스템에 접근하거나 데이터를 조작할 수 있는 위험이 발생합니다.
Joomla의 기본 라우팅 항목 중 REST API인 api/index.php는 기본적으로 접근이 차단되어 있지만, 특정 파라미터(public=true)를 포함하면 내부 정보에 접근할 수 있습니다. 이 API는 데이터베이스 계정 및 비밀번호와 같은 중요한 구성 정보를 노출시킬 수 있습니다.
이에 대한 대응으로는, affected versions의 최신 보안 패치를 적용하고, 서버 차원에서 접근 통제를 강화하며, 웹 애플리케이션 방화벽(WAF)을 통해 데이터를 차단하는 것이 필요합니다.