🇰🇷 한글 설명
Mautic Asset API에서 경로 순회(Path Traversal) 취약점이 존재합니다. 로컬 에셋 생성 시 지정한 파일 경로가 에셋 업로드 디렉터리로 제한되지 않아, 인증된 API 사용자가 웹 서버 프로세스가 읽을 수 있는 임의의 파일을 에셋으로 등록할 수 있습니다. 해당 에셋을 게시하면 인증 없이 공개 URL을 통해 파일 내용이 노출되며, 이를 통해 데이터베이스 비밀번호, 시크릿 키, SMTP 자격 증명 등이 유출될 수 있습니다.
💡 쉬운 설명
Mautic이라는 마케팅 프로그램에서 권한이 있는 사용자가 서버의 중요한 파일을 공개 주소로 열어 볼 수 있는 문제입니다. 이 과정에서 데이터베이스나 이메일 서버의 비밀번호가 외부로 새어 나갈 수 있습니다.
🇺🇸 원문 (English)
A path traversal vulnerability exists in the Mautic Asset API. When creating a local asset through the API, the supplied file path is not restricted to the asset upload directory. An authenticated API user with permission to create assets can register any file that is readable by the web server process as a Mautic asset. When the asset is published, its public download URL serves the contents of that file without authentication. This allows the attacker to read arbitrary files from the server, including Mautic configuration files containing the database password, secret key, and mail (SMTP) credentials, as well as system files and any other file readable by the web server user. Exposed credentials can be used to access the database or other connected services, and anyone with the public asset URL can retrieve the file contents.
📍 영향받는 시스템
Mautic (Asset API를 사용하는 버전, 정확한 영향 버전은 공식 권고문 확인 필요)
⚔️ 공격 벡터
자산 생성 권한이 있는 인증된 API 사용자가 서버 내 임의 파일 경로를 지정해 에셋으로 등록하고, 이를 게시한 공개 URL로 파일 내용을 인증 없이 조회
🛡️ 대응 방법
Mautic을 공식 권고된 패치 버전으로 업그레이드하고, 노출 가능성이 있었던 DB 비밀번호·시크릿 키·SMTP 자격 증명을 즉시 교체
🔧 검증 코드
결과가 출력되면 로컬 경로 처리 로직이 존재하는 것이며, 패치 버전 여부는 'composer show mautic/core-lib' 또는 Mautic 관리자 화면의 버전 정보로 공식 패치 버전과 비교해 확인하고, 경로 검증 로직 추가 여부를 코드에서 직접 점검해야 합니다.
grep -rn "\$local\|local_path" /var/www/html/mautic/app/bundles/AssetBundle/Model/AssetModel.php 2>/dev/null