
ZTE File Manager(zte.com.cn.filer)의 취약점에 대한 PoC로, 이 파일 관리자의 권한으로 다른 앱의 임의 파일을 읽을 수 있습니다.
CVE-2026-40000에 대한 PoC로, ZTE 파일 관리자(zte.com.cn.filer)의 취약점으로 이 파일 관리자의 권한으로 다른 앱의 임의 파일을 읽을 수 있게 해줍니다
사용 방법: 프로젝트를 빌드하거나(releases에서 앱을 받으세요), PoC를 설치하고 실행한 다음, 열고자 하는 파일을 입력하고 Open as zte.com.cn.filer 버튼을 눌러 열기를 시도합니다. ZTE 파일 관리자에서 extract all을 선택한 후 압축 해제를 확인하면, 실패하면서 외부 앱을 선택해 열라는 메시지가 표시됩니다(Android 오픈 피커에서 선택할 수 있습니다). ZTE 파일 관리자는 해당 파일을 /sdcard/Android/data/zte.com.cn.filer/cache로 복사하고 임시 하위 디렉터리에 압축을 해제합니다. 시스템 PATH에 있는 파일 이름(또는 시스템 PATH에 직접 있는 파일)으로 파일을 열려고 하면, 해당 파일이 /sdcard/Android/data/zte.com.cn.filer/cache로 직접 복사되고 앱이 덮어쓸지 묻습니다. 또한 열려는 파일이 ZTE 파일 관리자에 의해 접근 가능한지 아닌지를 즉시 확인할 수 있는 방법도 있습니다(앱이 해당 파일을 읽을 권한이 없다고 가정할 때): FilePreViewActivity의 왼쪽 상단 모서리와 뒤로 가기 화살표가 있는 상단 부분에, 파일을 열 수 있을 때는 파일 이름이 표시되지만, 열기에 실패하면 이름이 표시되지 않습니다.
PoC 작동 방식: 대략 adb shell am start -d content://zte.com.cn.filer.fileprovider/root_path/filetoopen zte.com.cn.filer/zte.com.cn.filer.FilePreViewActivity와 같은 동작을 합니다
앱에는 다음과 같은 provider가 있습니다
<provider
android:name="androidx.core.content.FileProvider"
android:exported="false"
android:authorities="zte.com.cn.filer.fileprovider"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths"/>
</provider>
exported가 아니더라도 다음 액티비티를 통해 호출될 수 있습니다
android:name="zte.com.cn.filer.FilePreViewActivity"
android:exported="true"
provider를 앱 자체의 액티비티 중 하나에서 호출하기 때문에 exported 설정은 무의미해집니다. 해당 액티비티는 exported가 true이므로 다른 컴포넌트에서 호출할 수 있습니다.
물론 이것만으로는 충분하지 않으며, 앱이 / 또는 최소한 민감한 경로에 대한 접근을 허용해야 합니다. 확인해 보니 (android:resource="@xml/provider_paths에서) 그렇게 하고 있었는데, .을 사용함에도 불구하고 /를 가리켜 파일 앱이 접근할 수 있는 어디서든 파일을 열 수 있게 합니다
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<files-path
name="files-path"
path="."/>
<external-path
name="external_files"
path="."/>
<root-path
name="root_path"
path="."/>
<external-cache-path
name="external_cache_path"
path="."/>
</paths>
영향받는 기기: ZTE Blade A75 5G 및 업데이트되지 않은 한 새로운 모델들(제가 가지고 있지 않아 추측입니다). Android 9부터 12까지(아마 이전 Android 버전에서도 상황은 동일할 것입니다)에서는 앱에 zte.com.cn.filer.FilePreViewActivity가 없어 취약하지 않은 것으로 보이며, 앱이 완전히 존재하지 않을 수도 있습니다(적어도 제가 시도한 곳에서는 기본 Google 파일 관리자가 사용됩니다).
이것의 오용에 대해 저는 책임지지 않습니다. 이 취약점은 로컬 취약점이며 CVE가 부여되어 패치되었습니다. 걱정된다면 시스템 업데이트를 하거나 더 새로운 기기로 업그레이드하세요.