eggjs / egg

🥚 Born to build better enterprise frameworks and apps with Node.js & Koa

Home Page:https://eggjs.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

egg-logger存在CRLF漏洞问题

waltbest2 opened this issue · comments

commented

在此输入你需要反馈的 Bug 具体信息(Bug in Detail):

CRLF 指的是回车符(CR,ASCII 13,\r,%0d) 和换行符(LF,ASCII 10,\n,%0a),

当我们把url中添加%0a%0d 参数,这时如果打印日志的话,日志内容会被分行,也就是有CRLF漏洞问题。

可复现问题的仓库地址(Reproduction Repo)

内部代码,不方便提供

Node 版本号:

14.20

Eggjs 版本号:

2.34.0

相关插件名称与版本号(PlugIn and Name):

"egg-logger": "3.2.1",

操作平台与版本号(Platform and Version):

linux

@waltbest2 如果可以,请将攻击示例代码发到我的邮箱 fengmk2#gmail.com ,确认后,我们会尽快看看如何修复。

commented

@waltbest2 如果可以,请将攻击示例代码发到我的邮箱 fengmk2#gmail.com ,确认后,我们会尽快看看如何修复。
例如请求参数https://domain/healthCheck?target=http://baidu.com/xxx%0a%0dSet-Cookie: test123=123

然后代码中打印url参数target

ctx.logger.info(ctx.query.url);

效果如下:
image

@waltbest2 这种算应用层手动打印的日志,不会在框架自动处理。