CVE-2019-14339
Canon PRINT 2.5.5 上的内容提供程序 URI 注入 (CVE-2019-14339)。概念验证由 @0x48piraj 提供
运行于 Android 上的 Canon PRINT 2.5.5 应用程序中的 ContentProvider 未能正确限制数据访问。这允许攻击者的恶意应用程序获取敏感信息,包括管理员 Web 界面的出厂密码和 WPA2-PSK 密钥。
影响
该漏洞可以泄露 Canon PRINT 2.5.5 支持的每台打印机的数据,例如:
- PIXMA TS Series
- TR Series, MG Series, PRO Series, MP Series, iP Series, iX Series
- MAXIFY MB Series, iB Series
- ImagePROGRAF PRO Series, TM Series
- SELPHY CP900 Series, CP1200, CP1300
应用下载量:1,00,00,000 +
收录情况
漏洞
移动应用包含未受保护的导出内容提供程序('IJPrinterCapabilityProvider',位于 android/AndroidManifest.xml 中),该程序会在特定条件下泄露应用的敏感数据。
为了安全地导出内容提供程序,应通过在 Android Manifest 文件中设置 android:protectionLevel 或 android:grantUriPermissions 属性来限制对其的访问。
你需要什么?
- 已安装 Canon PRINT 2.5.5(最新版)Android 应用。
- 该应用支持的 Canon 打印机。
如何运行?
有两种测试此漏洞的方法。
通过 ADB
设置 ADB,克隆仓库,进入 /poc-scripts 并运行 leak.py
git clone https://github.com/0x48piraj/CVE-2019-14339
cd CVE-2019-14339/poc-scripts
python leak.py
通过恶意 Android 应用
方法一
克隆仓库,构建源代码。
方法二
使用预构建的应用,进入 /release 目录并下载 cannon-pwn.apk,或通过 releases 获取
注意: 禁用 Play Protect,否则会抛出 'App Not Installed' 错误(在 Google Play 内)> 菜单 > Play Protect > 扫描设备的安全威胁(禁用)。
演示
泄露脚本演示

恶意 Android 应用

问题(?)
此仓库已禁用 Issues。这只是我想与社区分享的一个简单概念验证。
参考资料
- 标准映射 - Common Weakness Enumeration CWE ID 89
- 标准映射 - DISA Control Correlation Identifier Version 2 CCI-002754
- 标准映射 - FIPS200 SI
- 标准映射 - General Data Protection Regulation (GDPR) Indirect Access to Sensitive Data
- 标准映射 - NIST Special Publication 800-53 Revision 4 SI-10 Information Input Validation (P1)
- 标准映射 - OWASP Mobile 2014 M7 Client Side Injection
- 标准映射 - OWASP Top 10 2017 A1 Injection Flaws
- 标准映射 - SANS Top 25 2011 Insecure Interaction - CWE ID 089
- 标准映射 - Web Application Security Consortium Version 2.00 SQL Injection (WASC-19)