跳转到主要内容

各种Plone热补丁,2016-08-30

项目描述

Plone热补丁,2016-08-30

此热补丁修复了多个安全问题

  • 攻击者可以绕过Plone的安全方法来检查URL是否为合法、安全的URL,这可能导致对某些页面的XSS攻击。

  • 在多个地方,Plone盲目使用< cite> referer 标头在特定操作后将用户重定向到下一页。攻击者可以利用这一点来将用户引诱到重定向攻击。

  • z3c.form目前会在表单应为POST时接受GET请求的数据。这允许用户将潜在XSS攻击注入到表单中,保存后会导致XSS攻击。此外,在Plone管理表单的某些小部件中,输入预期为安全,可能引起反射性XSS攻击。

  • 修复用户信息页面上的XSS

  • 修复多个ZMI页面上的XSS

  • 通过使用相对路径和在Plone安装的服务器上的位置猜测,攻击者可以读取Plone运行进程有权限读取的目标服务器上的数据。攻击者需要在Plone网站上拥有管理员权限才能执行此攻击。

应将此热补丁应用于以下版本的Plone

  • Plone 5.0.6和任何更早的5.x版本

  • Plone 4.3.11和任何更早的4.x版本

  • 任何旧版本的Plone

此补丁由Plone安全团队在以下Plone版本中官方支持,遵循Plone 版本支持策略:4.0.10,4.1.6,4.2.7,4.3.11和5.0.6。然而,它也已在较旧版本的Plone上进行了一些测试。这里包含的修复将纳入Plone的后续版本,因此Plone 4.3.12,5.0.7及以上版本不需要此补丁。

安装

安装说明可在https://plone.org/security/hotfix/20160830找到。

应用补丁

并非所有补丁都需要应用于所有Plone版本。

如果您使用的是plone.protect 3之前的版本,则“confirm”补丁是不必要的,也无法成功应用。这适用于任何未安装plone4.csrffixes的Plone 4网站。

在默认安装的Plone 4.x中,“user”补丁无法成功应用且不需要修复。只有在安装了plone.app.users 2以上的版本时,该补丁才会应用。

在默认安装的Plone 4.1.x或更低的版本中,“resource”补丁无法成功应用且不需要修复。只有在安装了plone.resource时,该补丁才会应用。

在默认安装的Plone 4.0.x或更低的版本中,“discussion”补丁无法成功应用且不需要修复。只有在安装了plone.app.discussion时,该补丁才会应用。

在默认安装的Plone 3或更低的版本中,“plonerootlogin”补丁无法成功应用且不需要修复。只有在Plone 4及以上版本中,该补丁才会应用。

在默认安装的Plone 3或更低的版本中,“z3c_form”补丁无法成功应用且不需要修复。只有在安装了z3c.form时,该补丁才会应用。

重定向到外部站点

对于任何使用redirect_to操作的控制器页面模板或脚本,现在将检查URL。如果URL不在当前门户中,且域名不在“allow_external_login_sites”属性中,则Plone拒绝重定向到该URL,而改为重定向到当前页面。

这可能会影响您的一个例子是,如果您使用外部站点登录(例如openid,Facebook,Google),或者当Plone站点本身被设置为其他站点的openid提供者时。在这种情况下或类似情况下,您需要更新“allow_external_login_sites”属性。

  • 在Plone 5中,这可以在配置注册表中完成:/portal_registry/edit/plone.allow_external_login_sites

  • 在Plone 4及以下版本中,这只能在Zope管理界面中完成:portal_properties/site_properties/manage_propertiesForm

如果您有自己的控制器页面模板或脚本,并希望在不编辑此属性的情况下允许重定向到外部站点,您可以编辑此模板或脚本的.metadata文件,并将redirect_to更改为external_redirect_to。这允许内部和外部重定向。此操作已在此补丁中添加,并将添加到未来版本的Products.CMFFormController

z3c.form和预填充数据

使用此补丁,我们只在请求方法与表单方法匹配时使用请求中的数据。默认情况下,所有表单都针对POST请求,在这些请求中,我们不再允许从GET请求中预填充数据。反过来也是如此,我们不会在预期GET请求的表单中填充来自POST请求的数据,但这可能很少发生。

如果您有一个不需要这种保护的表单,您可以在表单上添加一个属性 allow_prefill_from_GET_request 并将其设置为 True 值。如果您愿意,可以从 Products.PloneHotfix20160830.z3c_form.ALLOW_PREFILL 导入这个属性名称。这个属性可能会被移植到 z3c.form 包。

该属性是在热补丁的版本 1.3 中引入的。

问答

问:如何确认热补丁已正确安装并且我的网站受到保护?

答:在启动时,热补丁会将一些类似于以下内容的消息记录到 Zope 事件日志中

2016-08-30 08:46:09 INFO Products.PloneHotfix20160830 Applied resource patch
2016-08-30 08:46:09 INFO Products.PloneHotfix20160830 Applied confirm patch
2016-08-30 08:46:09 INFO Products.PloneHotfix20160830 Applied z3c_form patch
2016-08-30 08:46:09 INFO Products.PloneHotfix20160830 Applied in_portal patch
2016-08-30 08:46:09 INFO Products.PloneHotfix20160830 Applied plonerootlogin patch
2016-08-30 08:46:09 INFO Products.PloneHotfix20160830 Applied redirects patch
2016-08-30 08:46:09 INFO Products.PloneHotfix20160830 Applied redirect_folderfactories patch
2016-08-30 08:46:09 INFO Products.PloneHotfix20160830 Applied redirect_qi patch
2016-08-30 08:46:09 INFO Products.PloneHotfix20160830 Applied redirectto patch
2016-08-30 08:46:09 INFO Products.PloneHotfix20160830 Applied discussion patch
2016-08-30 08:46:09 INFO Products.PloneHotfix20160830 Applied user patch
2016-08-30 08:46:09 INFO Products.PloneHotfix20160830 Applied zmi patch
2016-08-30 08:46:09 INFO Products.PloneHotfix20160830 Hotfix installed

应用的补丁的确切数量将根据您使用的包而有所不同。如果尝试应用补丁但失败,它将记录一条警告消息,表示“无法应用”。这可能表明您有一个非标准化的 Plone 安装。

问:如何报告安装补丁时的问题?

答:请联系 Plone 安全团队 security@plone.org,或访问 freenode IRC 上的 #plone 频道。

问:如何报告其他潜在的安全漏洞?

答:请通过电子邮件将安全团队 security@plone.org 报告潜在的安全问题,而不是公开讨论这些问题。

变更日志

1.3 (2016-09-08)

  • 添加了 allow_prefill_from_GET_request 属性检查。使用此热补丁,我们仅在请求方法与表单方法匹配时使用请求中的数据。如果您有一个不需要这种保护的 z3c.form,您可以在表单上添加一个属性 allow_prefill_from_GET_request 并将其设置为 True 值。如果您愿意,可以从 Products.PloneHotfix20160830.z3c_form.ALLOW_PREFILL 导入这个属性名称。只有当您有需要此功能的表单时,才需要更新到这个版本的热补丁。

1.2 (2016-09-06)

  • 修复了 plone.app.discussion 补丁,使其仍能在 2.3.3 版本以下的版本中删除评论。

1.1 (2016-09-01)

  • 修复了 Plone 3 的 z3c.form 补丁。默认情况下,Plone 3 不使用 z3c.form。如果您有一个使用它的附加组件,您应该升级,否则在显示此类表单时会出现错误。Plone 4 及更高版本可以很好地与补丁的先前版本协同工作。

  • 更新了 plone.app.users 补丁,使其适用于 Plone 4.x,尽管它没有漏洞。在标准 Plone 4 中,没有必要升级到这个版本。如果您有修改 UserDataPanel 的自定义代码,可能需要此更新。有一个简单的检查:如果您在 Plone 4 的管理员用户身份下访问 @@user-information?userid=non-existing-user 并出现错误,那么您是安全的。

1.0 (2016-08-30)

  • 首次发布

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源代码发行版

Products.PloneHotfix20160830-1.3.tar.gz (23.1 kB 查看哈希值)

上传时间

由以下支持