点击上方蓝字“Ots安全”一起玩耍
rsyslog是一个快速处理收集系统日志的开源程序,提供了高性能、安全功能和模块化设计。当使用八位字节计数的帧时,用于 TCP 系统日志接收的模块可能存在堆缓冲区溢出。这可能会导致段错误或其他一些故障。
当检查最大八位字节数时,即使八位字节计数超过最大值,数字也会写入堆缓冲区,这可用于溢出内存缓冲区。但是,一旦数字序列停止,就不能将其他字符添加到缓冲区中。在我们看来,这使得远程攻击变得不可能或至少非常复杂。八位组计数成帧是两种可能的成帧模式之一。它相对不常见,但默认情况下在接收器上启用。模块 `imtcp`、`imptcp`、`imgssapi` 和 `imhttp` 用于常规 syslog 消息接收。
# | 漏洞状态 | 描述 |
---|---|---|
1 | 漏洞细节 | 有 |
2 | 漏洞类型 | 缓冲溢出、代码执行 |
3 | 漏洞等级 | 未知 |
4 | 野外利用 | 未知 |
5 | EXP | 未知 |
6 | POC | 未知 |
7 | CVE编号 | CVE-2022-24903 |
-
https://github.com/rsyslog/rsyslog/commit/f211042ecbb472f9d8beb4678a65d272b6f07705
-
https://github.com/rsyslog/rsyslog/security/advisories/GHSA-ggw7-xr6h-mmr8
-
无
-
<= 8.2204.0
描述
影响
使用八位字节计数的帧时,用于接收 TCP 系统日志的模块会出现堆缓冲区溢出。攻击者可以破坏堆值,导致数据完整性问题和可用性影响。远程代码执行不太可能发生,但并非不可能。
受影响的模块
-
imtcp
-
imptcp
-
imhttp(贡献模块)
-
imgssapi(长期半贡献模块)
-
imdiag
细节
读取八位字节计数时会发生错误。当检查最大八位字节数时,即使八位字节计数超过最大值,数字也会写入堆缓冲区,这可用于溢出内存缓冲区。这也可用于破坏其他堆缓冲区。一旦数字序列停止,就不能将其他字符添加到缓冲区中。在我们看来,这使得远程攻击变得不可能或至少非常复杂。
八位组计数成帧是两种可能的成帧模式之一。它相对不常见,但默认情况下在接收器上启用。
模块imtcp、imptcp、imgssapi和imhttp用于常规 syslog 消息接收。最好不要将它们直接暴露给公众。如果遵循这种做法,风险就会大大降低。
模块imdiag是主要用于测试台运行的诊断模块。我们不希望它出现在任何生产安装中。
补丁
该补丁可通过提交 ID [PUT HERE] 获得。
解决方法
八位字节组帧并不常见。通常,它需要在发件人处专门启用。如果用户不需要它,他们可以为最重要的模块关闭它。这将减轻漏洞。如何做到这一点取决于模块:
-
对于imtcp. imptcp,添加SupportOctetCountedFraming="off"到input()定义中。
文档:https://www.rsyslog.com/doc/v8-stable/configuration/modules/imtcp.html,https://www.rsyslog.com/doc/v8-stable/configuration/modules/imptcp.html,https://www.rsyslog.com/doc/v8-stable/configuration/modules/imhttp.html
-
对于imgssapi八位字节计数的帧不能关闭。
-
对于imdiag八位字节计数的帧,不能关闭。但是,imdiag不应出现在生产系统上。
请注意,虽然可以禁用八位字节计数的帧,但发送系统必须明确启用它,但默认情况下,接收系统会自动检测它是否正在使用中。启用它的“正常”原因是如果您发送带有嵌入换行符的日志。
原文始发于微信公众号(Ots安全):【未知】rsyslog缓冲区溢出、远程代码执行
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论