【问题标题】:Finding a library with a Vulnerability查找存在漏洞的库
【发布时间】:2022-11-29 05:06:13
【问题描述】:

在 Android 应用程序中发现了一个漏洞 CVE-2022-38750。

正如我在mvnrepository.com/artifact/org.yaml/snakeyaml上看到的,这个漏洞在蛇药图书馆。在应用程序中,没有直接使用这个库。

使用后:

.\gradlew  app:dependencies --configuration xyz

我没有看到这个库在任何地方都被使用过。

如何找到哪个库在依赖项中有 snakeyaml?

【问题讨论】:

  • 也许这是您正在使用的库之一的依赖项?尝试查看他们的 Maven 人工制品
  • @Shark 我如何查看库依赖项? .\gradlew app:dependencies 没有列出所有依赖项?
  • 库可以重新打包并包含在其他库中,这样它们就不会显示为依赖项。将您拥有的 APK 文件加载到 Jadx 等反编译器中,并搜索 snakeyaml 相关包或字符串。如果你在属于 snakeyaml 的类之外找到对 smakeyaml 类的引用,你就有了一个起点(假设这个包没有被混淆,或者你设法找到一个字符串,让你猜测它属于哪个库。
  • 不,./gradlew app:dependencies 没有列出所有依赖项,我认为它也省略了传递依赖项。理想情况下,你想找到绘制依赖图的插件,然后在其中的某处找到 snakeyaml,沿着依赖链向上移动到你认识的库,然后希望告诉依赖项不要包含(排除)snakeyaml 并且仍然有一个功能正常的无崩溃应用程序。实际上,情况很可能并非如此:D 请参阅link

标签: android security


【解决方案1】:

如前所述,听起来您需要运行一个 SCA 工具,该工具列出了您的应用程序的完整依赖关系树,以便您可以找出引入 org.yaml/snakeyaml 的位置。我知道 https://soos.io/ 会列出完整的依赖关系树,并且可以很容易地找到树中引入漏洞的位置。该应用程序非常快速且易于设置,并提供免费试用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-17
    • 1970-01-01
    • 1970-01-01
    • 2020-11-25
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    相关资源
    最近更新 更多