安全分析报告: Legado v3.22.080318

安全分数


安全分数 51/100

风险评级


等级

  1. A
  2. B
  3. C
  4. F

严重性分布 (%)


隐私风险

0

用户/设备跟踪器


调研结果

高危 2
中危 26
信息 2
安全 2
关注 4

高危 如果一个应用程序使用WebView.loadDataWithBaseURL方法来加载一个网页到WebView,那么这个应用程序可能会遭受跨站脚本攻击

如果一个应用程序使用WebView.loadDataWithBaseURL方法来加载一个网页到WebView,那么这个应用程序可能会遭受跨站脚本攻击
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x05h-Testing-Platform-Interaction.md#static-analysis-7

Files:
io/legado/app/ui/browser/WebViewActivity.java, line(s) 206,18,19
io/legado/app/ui/rss/read/ReadRssActivity.java, line(s) 499,501,23,24

中危 应用程序数据可以被备份

[android:allowBackup=true]
这个标志允许任何人通过adb备份你的应用程序数据。它允许已经启用了USB调试的用户从设备上复制应用程序数据。

中危 Activity (io.legado.app.ui.welcome.Launcher1) 未被保护。

[android:exported=true]
发现 Activity与设备上的其他应用程序共享,因此可被设备上的任何其他应用程序访问。

中危 Activity (io.legado.app.ui.welcome.Launcher2) 未被保护。

[android:exported=true]
发现 Activity与设备上的其他应用程序共享,因此可被设备上的任何其他应用程序访问。

中危 Activity (io.legado.app.ui.welcome.Launcher3) 未被保护。

[android:exported=true]
发现 Activity与设备上的其他应用程序共享,因此可被设备上的任何其他应用程序访问。

中危 Activity (io.legado.app.ui.welcome.Launcher4) 未被保护。

[android:exported=true]
发现 Activity与设备上的其他应用程序共享,因此可被设备上的任何其他应用程序访问。

中危 Activity (io.legado.app.ui.welcome.Launcher5) 未被保护。

[android:exported=true]
发现 Activity与设备上的其他应用程序共享,因此可被设备上的任何其他应用程序访问。

中危 Activity (io.legado.app.ui.welcome.Launcher6) 未被保护。

[android:exported=true]
发现 Activity与设备上的其他应用程序共享,因此可被设备上的任何其他应用程序访问。

中危 Activity (io.legado.app.ui.book.read.ReadBookActivity) 未被保护。

[android:exported=true]
发现 Activity与设备上的其他应用程序共享,因此可被设备上的任何其他应用程序访问。

中危 Activity (io.legado.app.receiver.SharedReceiverActivity) 未被保护。

[android:exported=true]
发现 Activity与设备上的其他应用程序共享,因此可被设备上的任何其他应用程序访问。

中危 Activity (io.legado.app.ui.association.OnLineImportActivity) 未被保护。

[android:exported=true]
发现 Activity与设备上的其他应用程序共享,因此可被设备上的任何其他应用程序访问。

中危 Activity (io.legado.app.ui.association.VerificationCodeActivity) 未被保护。

[android:exported=true]
发现 Activity与设备上的其他应用程序共享,因此可被设备上的任何其他应用程序访问。

中危 Activity (io.legado.app.ui.association.FileAssociationActivity) 未被保护。

[android:exported=true]
发现 Activity与设备上的其他应用程序共享,因此可被设备上的任何其他应用程序访问。

中危 Service (io.legado.app.service.WebTileService) 受权限保护, 但是应该检查权限的保护级别。

Permission: android.permission.BIND_QUICK_SETTINGS_TILE [android:exported=true]
发现一个 Service被共享给了设备上的其他应用程序,因此让它可以被设备上的任何其他应用程序访问。它受到一个在分析的应用程序中没有定义的权限的保护。因此,应该在定义它的地方检查权限的保护级别。如果它被设置为普通或危险,一个恶意应用程序可以请求并获得这个权限,并与该组件交互。如果它被设置为签名,只有使用相同证书签名的应用程序才能获得这个权限。

中危 Broadcast Receiver (io.legado.app.receiver.MediaButtonReceiver) 未被保护。

[android:exported=true]
发现 Broadcast Receiver与设备上的其他应用程序共享,因此可被设备上的任何其他应用程序访问。

中危 Content Provider (io.legado.app.api.ReaderProvider) 未被保护。

[android:exported=true]
发现 Content Provider与设备上的其他应用程序共享,因此可被设备上的任何其他应用程序访问。

中危 Activity (androidx.compose.ui.tooling.PreviewActivity) 未被保护。

[android:exported=true]
发现 Activity与设备上的其他应用程序共享,因此可被设备上的任何其他应用程序访问。

中危 Broadcast Receiver (androidx.profileinstaller.ProfileInstallReceiver) 受权限保护, 但是应该检查权限的保护级别。

Permission: android.permission.DUMP [android:exported=true]
发现一个 Broadcast Receiver被共享给了设备上的其他应用程序,因此让它可以被设备上的任何其他应用程序访问。它受到一个在分析的应用程序中没有定义的权限的保护。因此,应该在定义它的地方检查权限的保护级别。如果它被设置为普通或危险,一个恶意应用程序可以请求并获得这个权限,并与该组件交互。如果它被设置为签名,只有使用相同证书签名的应用程序才能获得这个权限。

中危 文件可能包含硬编码的敏感信息,如用户名、密码、密钥等

文件可能包含硬编码的敏感信息,如用户名、密码、密钥等
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x05d-Testing-Data-Storage.md#checking-memory-for-sensitive-data-mstg-storage-10

Files:
cn/hutool/core/lang/Pair.java, line(s) 31
cn/hutool/core/lang/tree/TreeNodeConfig.java, line(s) 14,13,11,12
com/jeremyliao/liveeventbus/ipc/consts/IpcConst.java, line(s) 5
fi/iki/elonen/NanoWSD.java, line(s) 28
io/legado/app/api/ReaderProvider.java, line(s) 27
io/legado/app/constant/AppConst.java, line(s) 33
io/legado/app/constant/PreferKey.java, line(s) 119
io/legado/app/data/entities/Cache.java, line(s) 67
io/legado/app/data/entities/KeyboardAssist.java, line(s) 91
io/legado/app/help/config/LocalConfig.java, line(s) 13
io/legado/app/lib/theme/ThemeStorePrefKeys.java, line(s) 10,11
io/legado/app/model/BookCover.java, line(s) 50
io/legado/app/ui/book/cache/CacheActivity.java, line(s) 149
io/legado/app/ui/book/local/rule/TxtTocRuleActivity.java, line(s) 139
io/legado/app/ui/book/read/config/SpeakEngineDialog.java, line(s) 190
io/legado/app/ui/book/read/config/TocRegexDialog.java, line(s) 101
io/legado/app/ui/book/source/edit/EditEntity.java, line(s) 61
io/legado/app/ui/book/source/manage/BookSourceActivity.java, line(s) 197
io/legado/app/ui/replace/ReplaceRuleActivity.java, line(s) 176
io/legado/app/ui/rss/source/edit/EditEntity.java, line(s) 61
io/legado/app/ui/rss/source/manage/RssSourceActivity.java, line(s) 164
io/noties/markwon/html/CssProperty.java, line(s) 30
io/noties/markwon/html/jsoup/nodes/DocumentType.java, line(s) 4,5
org/jsoup/helper/W3CDom.java, line(s) 204
org/jsoup/nodes/DocumentType.java, line(s) 13,14,16
org/seimicrawler/xpath/core/Constants.java, line(s) 7,8,9

中危 IP地址泄露

IP地址泄露


Files:
cn/hutool/core/net/Ipv4Util.java, line(s) 195,195,20,195,195,195,195,195
cn/hutool/core/net/MaskBit.java, line(s) 12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43
cn/hutool/core/net/NetUtil.java, line(s) 49,173
cn/hutool/crypto/asymmetric/Sign.java, line(s) 176
fi/iki/elonen/NanoHTTPD.java, line(s) 492

中危 应用程序创建临时文件。敏感信息永远不应该被写进临时文件

应用程序创建临时文件。敏感信息永远不应该被写进临时文件


Files:
cn/hutool/core/io/FileUtil.java, line(s) 493
cn/hutool/core/net/multipart/UploadFile.java, line(s) 133
fi/iki/elonen/NanoHTTPD.java, line(s) 297,898,996

中危 不安全的Web视图实现。可能存在WebView任意代码执行漏洞

不安全的Web视图实现。可能存在WebView任意代码执行漏洞
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x05h-Testing-Platform-Interaction.md#testing-javascript-execution-in-webviews-mstg-platform-5

Files:
io/legado/app/ui/browser/WebViewActivity.java, line(s) 271,265
io/legado/app/ui/rss/read/ReadRssActivity.java, line(s) 328,520,606

中危 应用程序使用不安全的随机数生成器

应用程序使用不安全的随机数生成器
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x04g-Testing-Cryptography.md#weak-random-number-generators

Files:
cn/hutool/core/img/ImgUtil.java, line(s) 58
cn/hutool/core/lang/id/NanoId.java, line(s) 5
cn/hutool/core/util/ArrayUtil.java, line(s) 31
cn/hutool/core/util/PrimitiveArrayUtil.java, line(s) 5
cn/hutool/core/util/RandomUtil.java, line(s) 21
io/legado/app/ui/widget/anima/explosion_field/ExplosionAnimator.java, line(s) 13
io/legado/app/ui/widget/anima/explosion_field/ExplosionView.java, line(s) 17
io/legado/app/utils/RandomColor.java, line(s) 5
j$/util/concurrent/ThreadLocalRandom.java, line(s) 19
me/ag2s/umdlib/tool/UmdUtils.java, line(s) 12
org/jsoup/helper/DataUtil.java, line(s) 16

中危 应用程序可以读取/写入外部存储器,任何应用程序都可以读取写入外部存储器的数据

应用程序可以读取/写入外部存储器,任何应用程序都可以读取写入外部存储器的数据
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x05d-Testing-Data-Storage.md#external-storage

Files:
io/legado/app/help/storage/Backup$backup$2.java, line(s) 125
io/legado/app/ui/document/adapter/PathAdapter.java, line(s) 165
io/legado/app/utils/ContextExtensionsKt.java, line(s) 551
io/legado/app/utils/FileUtils.java, line(s) 210
io/legado/app/utils/RealPathUtil.java, line(s) 37

中危 MD5是已知存在哈希冲突的弱哈希

MD5是已知存在哈希冲突的弱哈希
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x04g-Testing-Cryptography.md#identifying-insecure-andor-deprecated-cryptographic-algorithms-mstg-crypto-4

Files:
cn/hutool/core/lang/UUID.java, line(s) 63
cn/hutool/core/lang/hash/KetamaHash.java, line(s) 27

中危 SHA-1是已知存在哈希冲突的弱哈希

SHA-1是已知存在哈希冲突的弱哈希
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x04g-Testing-Cryptography.md#identifying-insecure-andor-deprecated-cryptographic-algorithms-mstg-crypto-4

Files:
cn/hutool/core/util/RandomUtil.java, line(s) 47
fi/iki/elonen/NanoWSD.java, line(s) 701

中危 此应用可能包含硬编码机密信息

从应用程序中识别出以下机密确保这些不是机密或私人信息
"latest_release_api" : "https://api.github.com/repos/gedoor/legado/releases/latest"
028c189be828501449b61b32ab47a36f
7f0e27f0e47f531b0723b0b6fb0722
9778397bd097c36b0b6fc9274c91aa
7f0e397bd07f595b0b0bc920fb0722
97bd09801d98082c95f8e1cfcc920f
7f0e397bd097c36b0b6fc9210c8dc2
7f0e37f0e366aa89801eb072297c35
977837f0e37f14998082b0723b06bd
977837f0e37f14898082b0723b02d5
9778397bd097c36c9210c9274c920e
7f0e37f5307f595b0b0bc920fb0722
258EAFA5-E914-47DA-95CA-C5AB0DC85B11
97bd097bd07f595b0b6fc920fb0722
97b6b97bd19801ec9210c965cc920e
7f07e7f0e47f531b0723b0b6fb0721
7f0e27f1487f531b0b0bb0b6fb0722
97bd097bd097c35b0b6fc920fb0722
665f67f0e37f14898082b072297c35
977837f0e37f14998082b0787b0721
97b6b7f0e47f149b0723b0787b0721
97bcf97c359801ec95f8c965cc920f
9778397bd19801ec9210c9274c920e
6GlFKjLeIk5RhQnR3PNVDaKB6j10royo
97b6b97bd19801ec95f8c965cc920e
977837f0e37f149b0723b0787b0721
97bcf7f1487f531b0b0bb0b6fb0722
7ace4a8a1ae415311b646babd6ca2cb6
7ec967f0e37f14998082b0787b0721
-66379bdee8214093872696e413f6dda9
665f67f0e37f1489801eb072297c35
7f07e7f0e37f14998083b0787b0721
9778397bd097c36b0b6fc9210c91aa
7f0e27f1487f595b0b0bb0b6fb0722
97bcf7f0e47f531b0b0bb0b6fb0722
7f0e36665b66aa89801e9808297c35
9778397bd197c36c9210c9274c91aa
7ec967f0e37f14898082b0723b02d5
9778397bd097c36c9210c9274c91aa
97bcf7f1487f595b0b0bb0b6fb0722
5Bm5w6OgLupXnICbYvbgzpPUgf0UlsJF
97b6b7f0e47f531b0723b0b6fb0722
7f0e26665b66a449801e9808297c35
7f0e37f0e37f14898082b0723b02d5
0123456789ABCDEFGHJKLMNPQRTUWXY
97bcf97c3598082c95f8c965cc920f
7f0e397bd097c35b0b6fc9210c8dc2
665f67f0e37f14898082b0723b02d5
7ec967f0e37f14998082b0787b06bd
59627784-3BE5-417A-B9EB-8131A7286089
7f0e37f1487f595b0b0bb0b6fb0722
9778397bd097c36b0b70c9274c91aa
97bd07f1487f595b0b0bc920fb0722
7f0e37f0e37f14898082b072297c35
97bcf97c3598082c95f8e1cfcc920f
-d8e6963d6ae122a3c2e818f3c4bc09cf
97b6b97bd19801ec9210c9274c920e
7f07e7f0e37f14998082b0787b0721
7f07e7f0e47f531b0723b0b6fb0722
33761B2D-78BB-4A43-8B0B-4F5BEE8AACF3
-6dfbcd1d680cfd831b93490a91052656
97bd0b06bdb0722c965ce1cfcc920f
7ec967f0e37f14998082b0723b06bd
H3UM16TDFPSBZJ90CW28QYRE45AXKNGV7L
97bd097bd097c36b0b6fc9210c8dc2
7f07e7f0e37f149b0723b0787b0721
0123456789ABCDEFGHJKLMNPQRSTUVWXYZ
-2c10b25f67f4354eec5ab5bd6080285f
977837f0e37f14998082b0787b06bd
b027097bd097c36b0b6fc9274c91aa
oW9ksY0sAWUEq0hfM5irN5aOdvKVgMEE
97b6b97bd197c36c9210c9274c920e
97b6b7f0e47f531b0723b0b6fb0721
7f0e397bd07f595b0b6fc920fb0722
97b6b7f0e47f531b0723b0787b0721
97b6b97bd19801ec95f8c965cc920f
97bd07f5307f595b0b0bc920fb0722
7f0e36665b66a449801e9808297c35
7f07e7f0e47f149b0723b0787b0721
7f0e37f1487f531b0b0bb0b6fb0722
1DA0C57D-6C06-438A-9B27-10BCB3CE0F61
7f0e397bd097c35b0b6fc920fb0722
9778397bd097c36b0b6fc9210c8dc2
9778397bd19801ec9210c965cc920e
AADB8D7E-AEEF-4415-AD2B-8204D6CF042E
7f0e27f0e47f531b0b0bb0b6fb0722
vh9wGkfK8YmqbsoENP3764SeCX0dVzrgy1HRtpnTaLjJW2xQiZAcBMUFDu5

信息 应用程序记录日志信息,不得记录敏感信息

应用程序记录日志信息,不得记录敏感信息
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x05d-Testing-Data-Storage.md#logs

Files:
cn/hutool/core/lang/Console.java, line(s) 90,119,12,41,86
com/jaredrummler/android/colorpicker/ColorPickerDialog.java, line(s) 499,513
com/jeremyliao/liveeventbus/logger/DefaultLogger.java, line(s) 22,41,12,31,20,39,24,43,16,35
fi/iki/elonen/util/ServerRunner.java, line(s) 15,18,24
io/legado/app/help/http/cronet/AbsCallBack.java, line(s) 150,193,123,266
io/legado/app/help/http/cronet/CronetHelperKt.java, line(s) 51
io/legado/app/help/http/cronet/CronetLoader$download$1.java, line(s) 61,74
io/legado/app/help/http/cronet/CronetLoader$preDownload$1.java, line(s) 64,68,81
io/legado/app/help/http/cronet/CronetLoader.java, line(s) 69,73,77,81,137,149,160,172,193,226
io/legado/app/help/storage/ImportOldData.java, line(s) 255
io/legado/app/model/localBook/UmdFile.java, line(s) 167
io/legado/app/ui/widget/anima/explosion_field/ExplosionView.java, line(s) 197,206
io/legado/app/ui/widget/recycler/DividerNoLast.java, line(s) 39
io/legado/app/ui/widget/recycler/DragSelectTouchHelper.java, line(s) 772,780,788
io/legado/app/utils/ACache.java, line(s) 64
io/legado/app/utils/DebugLog.java, line(s) 50,43,57,64
io/legado/app/utils/EncodingDetect.java, line(s) 106
io/legado/app/utils/ZipUtils.java, line(s) 223
io/noties/markwon/LinkResolverDef.java, line(s) 23
io/noties/markwon/PrecomputedTextSetterCompat.java, line(s) 38
me/ag2s/epublib/domain/LazyResource.java, line(s) 52
me/ag2s/epublib/epub/BookProcessorPipeline.java, line(s) 33
me/ag2s/epublib/epub/EpubProcessorSupport.java, line(s) 75,95
me/ag2s/epublib/epub/EpubReader.java, line(s) 76,88,102
me/ag2s/epublib/epub/EpubWriter.java, line(s) 70,91
me/ag2s/epublib/epub/NCXDocumentV2.java, line(s) 77,68,87,123,143,126,127,128
me/ag2s/epublib/epub/NCXDocumentV3.java, line(s) 95,97,100,104,106,282,287,292,297,81,112,162,182,91,165,166,167
me/ag2s/epublib/epub/PackageDocumentMetadataReader.java, line(s) 30,112,137
me/ag2s/epublib/epub/PackageDocumentReader.java, line(s) 71,94,103,108,136,140,170,180,188,196,260,287,176
me/ag2s/epublib/epub/PackageDocumentWriter.java, line(s) 94,98,102
me/ag2s/epublib/epub/ResourcesLoader.java, line(s) 82
me/ag2s/umdlib/domain/UmdChapters.java, line(s) 46,47,48
me/ag2s/umdlib/tool/StreamReader.java, line(s) 55,66
me/ag2s/umdlib/umd/UmdReader.java, line(s) 31,38,43,58,66,67,69,96,100,104,108,112,116,120,124,128,131,136,141,156,164,176
org/antlr/v4/runtime/ConsoleErrorListener.java, line(s) 10
org/antlr/v4/runtime/DefaultErrorStrategy.java, line(s) 61
org/antlr/v4/runtime/Parser.java, line(s) 55,60,65,542,544,545
org/antlr/v4/runtime/RuntimeMetaData.java, line(s) 14,17
org/antlr/v4/runtime/TokenStreamRewriter.java, line(s) 312
org/antlr/v4/runtime/atn/ParserATNSimulator.java, line(s) 700,717,720
org/antlr/v4/runtime/misc/FlexibleHashMap.java, line(s) 274,275
org/antlr/v4/runtime/misc/LogManager.java, line(s) 74
org/antlr/v4/runtime/misc/TestRig.java, line(s) 7,11,14,15
org/mozilla/classfile/TypeInfo.java, line(s) 175,176,177,178,179

信息 此应用程序将数据复制到剪贴板。敏感数据不应复制到剪贴板,因为其他应用程序可以访问它

此应用程序将数据复制到剪贴板。敏感数据不应复制到剪贴板,因为其他应用程序可以访问它
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x04b-Mobile-App-Security-Testing.md#clipboard

Files:
io/legado/app/utils/ContextExtensionsKt.java, line(s) 8,519

安全 此应用程序使用SSL Pinning 来检测或防止安全通信通道中的MITM攻击

此应用程序使用SSL Pinning 来检测或防止安全通信通道中的MITM攻击
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x05g-Testing-Network-Communication.md#testing-custom-certificate-stores-and-certificate-pinning-mstg-network-4

Files:
fi/iki/elonen/NanoHTTPD.java, line(s) 1463,1461,1463,1487,1460,1460
io/legado/app/help/http/SSLHelper.java, line(s) 212,56,162,187,211,203,210,210

安全 此应用程序没有隐私跟踪程序

此应用程序不包括任何用户或设备跟踪器。在静态分析期间没有找到任何跟踪器。

关注 应用程序可能与位于OFAC制裁国家 (中国) 的服务器 (apii.dict.cn) 通信。

{'ip': '139.224.50.247', 'country_short': 'CN', 'country_long': '中国', 'region': '上海', 'city': '上海', 'latitude': '31.224333', 'longitude': '121.468948'}

关注 应用程序可能与位于OFAC制裁国家 (中国) 的服务器 (gitee.com) 通信。

{'ip': '222.184.195.60', 'country_short': 'CN', 'country_long': '中国', 'region': '北京', 'city': '北京', 'latitude': '39.907501', 'longitude': '116.397102'}

关注 应用程序可能与位于OFAC制裁国家 (中国) 的服务器 (www.legado.top) 通信。

{'ip': '222.184.195.60', 'country_short': 'CN', 'country_long': '中国', 'region': '江苏', 'city': '南通', 'latitude': '32.030296', 'longitude': '120.874779'}

关注 应用程序可能与位于OFAC制裁国家 (中国) 的服务器 (dav.jianguoyun.com) 通信。

{'ip': '222.184.195.60', 'country_short': 'CN', 'country_long': '中国', 'region': '江苏', 'city': '无锡', 'latitude': '31.569349', 'longitude': '120.288788'}

安全评分: ( Legado 3.22.080318)