CVE-2024-38809:Spring Framework 通过条件 HTTP 请求进行 DoS

问题描述 投票:0回答:1

https://spring.io/security/cve-2024-38809

根据上面的链接,我们应该升级版本或应用过滤器。

现在我的问题是我正在使用较旧的 Spring 版本,由于其他依赖项和较长的测试周期,我无法升级。

我想应用过滤器,上面的链接提到了 “旧的、不受支持的版本的用户可以对“If-Match”和“If-None-Match”标头强制执行大小限制,例如通过过滤器。”

“If-Match”和“If-None-Match”标头的适当大小限制应该是多少?

如何通过限制其大小限制来解决问题?

有人如何通过请求中的“If-Match”和“If-None-Match”标头进行攻击?

没有适用于旧版本及其解决方案的文档或 github 链接。

spring spring-security
1个回答
0
投票

我想应用过滤器,上面的链接中提到“旧的、不受支持的版本的用户可以对“If-Match”和“If-None-Match”标头强制实施大小限制,例如通过过滤器。”

太棒了。

有人如何通过请求中的“If-Match”和“If-None-Match”标头进行攻击?

总而言之,攻击者将通过在 If-Match 或 If-None-Match 标头中提供非常长的值列表来尝试耗尽您的 CPU(导致 DoS)...您可以在 here 阅读更多内容。

如何通过限制其大小限制来解决问题?

好吧,它将充当快速逻辑......而不是解析整个值列表,您将最多读取 X 个值,从而防止 CPU 耗尽。

“If-Match”和“If-None-Match”标头的适当大小限制应该是多少?

这要看情况。没有神奇的数字。您应该根据您的 API 使用或业务案例选择一个数字...

没有适用于旧版本及其解决方案的文档或 github 链接。

你是对的。他们没有提供建议的过滤器的示例。然而,这是 GIT commit,显示了他们如何解决问题...您可以使用它作为实现过滤器(或与之相关的逻辑)的起点...注意:如您所见,他们所做的是将用于解析 Etag 值的 RegEx 的使用替换为更普通(但高效)的解析...

此外,更多资源:

某库的问题轨迹

mend.io

© www.soinside.com 2019 - 2024. All rights reserved.