gpt4 book ai didi

python - Python 中识别的漏洞是否被视为 Jython 中的漏洞?

转载 作者:太空宇宙 更新时间:2023-11-04 05:13:49 25 4
gpt4 key购买 nike

Python、Jython 和 CPython 之间的差异让我有点困惑。我知道 Jython 是 Python 在 Java 中的实现,CPython 是相同的,只是它是在 C 中实现的。

但我真正感到困惑的是识别 Python 中的漏洞。比如下面这两个。

例如 - CVE-2016-5636 - 此处显示该漏洞无法在 Jython 中重现。

https://bugzilla.redhat.com/show_bug.cgi?id=1345857

类似地查看 - CVE-2016-5699 https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-5699

它说“2.7.10 之前和 3.x 3.4.4 之前的 urllib2 和 urllib 中的 HTTPConnection.putheader 函数中的 CRLF 注入(inject)漏洞允许远程攻击者通过 CRLF 序列注入(inject)任意 HTTP header 在 URL 中。”

这是否意味着 CVE-2016-5699 在 Jython 中不易受攻击?

总的来说,我想知道 Python 中的漏洞是否意味着它在 Jython 中也存在漏洞?

最佳答案

不一定。当您提到诸如“Python”之类的东西时,您可能指的是两种不同的东西:

  • Python 语言
  • Python 虚拟机 (VM) 或其他特定实现

通常情况下,Python 语言在不同的实现中不会发生(很大)变化。改变的是语言的处理方式,包括调用了哪些外部系统函数。

没有任何其他区别的 Python 通常指 CPython,标准实现。正如您在上面提到的,其他的是 Jython 和 IronPython。它们中的每一个都在不同的 VM 中运行:Jython 的 JVM 和 IronPython 的 dotnet。例如,这些 VM 可能会以不同方式分配内存,从而防止在不同的 VM 中发生基于内存的错误。在提到的 CVE-2016-5636 案例中,注意到 Jython 调用了 Java 版本的 zip,而 CPython 可能调用了 C 版本的 zip。

简而言之 - 如果语言处理问题的方式出现缺陷,它可能会影响所有实现。否则,您将需要单独检查每个平台的漏洞。

附录:根据 the Red Hat tracker for CVE-2016-5699 ,这是语言错误,因此在更新之前很可能(但不保证)在所有实现中都容易受到攻击。

关于python - Python 中识别的漏洞是否被视为 Jython 中的漏洞?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42303200/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com