SUPEE-9767,modman和符号链接


16

我想用SUPEE-9767给Magento商店打补丁。SUPEE-9767文档告诉我在应用补丁之前禁用符号链接设置:

在应用补丁或升级到最新版本之前,请确保禁用Symlinks设置...如果启用该设置,它将覆盖配置文件设置,而更改该设置将需要直接修改数据库。

但是我使用modman来管理模块,并且由于某些模块正在使用模板文件,因此将根据modman的自述文件中的建议启用符号链接设置。将Symlinks设置保持为安全补丁SUPEE-9767-可能的问题之一是 安全的吗?建议(由于我是新用户,所以我无法评论帖子)?

使用modman管理Magento 1.x模块的用户应确保他们不禁用符号链接,因为这将禁用modman模块。

如果我将Symlinks设置保持启用状态,那么商店是否不会受到APPSEC-1281的影响:通过symlinks远程执行代码,此补丁旨在解决安全威胁?

在此修补程序之后,还有其他方式将modman与模板文件一起使用吗?(我知道modman的自述文件提到的“ Mage / Core / Block / Template.php的修补版本”选项,但是修补核心文件似乎很危险。)


1
我在项目中使用Modman和Composer。我不敢相信Magento中的Symlinks选项多年以来都没有被视为炸弹。突然间它是一颗炸弹!没有任何通知和解释的此更改将给许多人带来很多麻烦。对于Magento中的Modman和Composer的未来感到遗憾。
ADDISON74

1
那是很大的挑战。如果您愿意进行投资,那么创建一个生成合并(没有符号链接)工件的构建过程是一个非常不错的方法。
SwiftOtter上的约瑟夫,17年

可以在tomlankhorst.nl/…上找到有关此问题的出色文章,他在那里还解释了如何摆脱Magento 1.9.3.4中引入的“启用了符号链接”警告。
ehannes

Answers:


14

以下是有关此更改的一些说明:

首先阅读彼得·奥卡拉汉(Peter O'Callaghan)的解释,这将为您提供深刻的理解:https : //peterocallaghan.co.uk/2017/06/appsec-1281-dangerous-symlinks/

Max Chadwick的这则帖子也是另一个有趣的读物https://maxchadwick.xyz/blog/what-allow-symlinks-actually-does

此修改实际上是关于通过模板指令调用可上传内容(例如图像)。

与符号链接有关的问题仅可通过管理员访问来利用,并且Magento还在图像上传周围添加了更多保护。

请注意,除了设置本身以外,它们还提供了一些防止已知方法利用它的保护措施。

因此,如果您了解所涉及的风险,则可以启用符号链接。

如果需要启用它们进行全新安装,则可以运行:

UPDATE core_config_data SET value = 1 WHERE path = "dev/template/allow_symlink";

如果我将其符号链接保持启用状态,如何保护商店免受“ APPSEC-1281:通过符号链接远程执行代码”的影响?
ehannes

@ehannes通过保护您的后端访问权限开始,因为漏洞利用需要后端访问。最重要的是,图像上传现在具有额外的回调验证。
拉斐尔(Raphael)在Digital Pianism上,2013年

3
获得管理员访问权限意味着您可以访问整个Magento后端界面。谁会在意此阶段在上载图像脚本中发现的漏洞?恶意用户可以删除您所有的产品,可以做不可思议的事情。讨论应该从“如果此用户获得管理员权限,因为真正的管理员愚蠢地不以多种方式保护后端”
ADDISON74,2013年


2
彼得·奥卡拉汉(Peter O'Callaghan)写道:“因此,如果有人设法访问您的管理面板,则他们可以执行恶意包含来实现RCE。” 这似乎是本次讨论的共同结论。如前所述,如果恶意用户有权访问您的管理面板,则除了RCE之外,还有其他事情需要担心。如果有人要添加讨论内容,请这样做。无论如何,我想您已经使@RaphaelatDigitalPianism的事情变得更加清晰了,我将接受这个答案。
ehannes

6

问题不在于符号链接,而是路径之类的路径../../../../../media/tmp/hahaha.png。如果我在这方面做错了,请启发我。“修复”的标题为“允许符号链接”,启用此功能将禁用使用实施的检查realpath()。在我看来,一个与符号链接一样安全,性能更高且仍与符号链接兼容的修复程序是使用strpos($path, '..')和/或检查realpath()与某些危险目录(例如media和)匹配var。如果以这种方式实现,则不需要进行配置,就可以始终启用它,而不会破坏成千上万的存储。

无论如何,您的Web服务器用户都无权访问源代码目录中的文件(如Magento Connect一样),这是另一种防止恶意代码写入某处并作为块模板执行的方法。

因此,对符号链接的攻击只是被误导了,并且存在更好的修复方法。实际上,我是一年多以前提供的,并且在modman github README中甚至有指向它的链接。


0

如果您在作曲家文件的其他部分设置了magento-deploystrategy以复制文件,则将从供应商文件夹而非Symlinks复制文件。

    "extra":{
        "magento-root-dir":"./",
        "magento-deploystrategy":"copy",
        "magento-force": true
    }

然后,您可以修改core_config_data以将dev / template / allow_symlink的值设置为0

信息资源


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.