We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
参考:
如果攻击者向 Yggdrasil 服务端上传了一个精心设计的材质,并且 Yggdrasil 服务端对此材质并未进行任何处理,那么客户端将其获取到本地后,可能造成远程代码执行(前提是客户端处理此图像的类库存在漏洞)。
需要注意的是,此漏洞单独而言无法对客户端造成威胁,必须配合客户端的其他漏洞才能被利用。 而由于图像处理类库出现漏洞的情况较为罕见,该漏洞被利用的可能性较低。
解决方法:Yggdrasil 服务端必须对用户上传的材质进行处理,绝不能直接保存用户上传的材质。具体方法为将上传的图像解析后再重新写入,丢弃掉任何与图像本身无关的成分。在解析前需要对图像大小等进行检查,以防拒绝服务攻击。
注意:即使 PNG 文件的文件大小很小,但其存储的图像也可能奇大无比(即 PNG Bomb)。 参考:https://www.bamsoftware.com/hacks/deflate.html
注意:即使 PNG 文件的文件大小很小,但其存储的图像也可能奇大无比(即 PNG Bomb)。
参考:https://www.bamsoftware.com/hacks/deflate.html
此解决方法需要写入文档。
The text was updated successfully, but these errors were encountered:
除上面所述外,浏览器也是一个攻击面。如果 Yggdrasil 服务端返回的图像没有指明 content-type,那么攻击者可以进行 content-type sniffing 攻击。
解决方法:服务端指明材质的 content-type 为 image/png。
image/png
我会在 yggdrasil-mock 的测试样例中增加对此漏洞的检测。
参考:https://security.stackexchange.com/questions/8587/how-can-i-be-protected-from-pictures-vulnerabilities
Sorry, something went wrong.
已在 1a94cd7f9578e6510425a2c470b5c4d246017dd8 中增加对用户上传材质安全性的说明。
1a94cd7f9578e6510425a2c470b5c4d246017dd8
关于防止 content-type sniffing 攻击的提醒已添加到文档。a84d9f25383ca3b7ae65929113ff560b0ae0e5e2
a84d9f25383ca3b7ae65929113ff560b0ae0e5e2
已在 yushijinhun/yggdrasil-mock@3d35c78 中添加对 Content-Type 的检查。
Content-Type
yushijinhun
No branches or pull requests
参考:
如果攻击者向 Yggdrasil 服务端上传了一个精心设计的材质,并且 Yggdrasil 服务端对此材质并未进行任何处理,那么客户端将其获取到本地后,可能造成远程代码执行(前提是客户端处理此图像的类库存在漏洞)。
需要注意的是,此漏洞单独而言无法对客户端造成威胁,必须配合客户端的其他漏洞才能被利用。
而由于图像处理类库出现漏洞的情况较为罕见,该漏洞被利用的可能性较低。
解决方法:Yggdrasil 服务端必须对用户上传的材质进行处理,绝不能直接保存用户上传的材质。具体方法为将上传的图像解析后再重新写入,丢弃掉任何与图像本身无关的成分。在解析前需要对图像大小等进行检查,以防拒绝服务攻击。
此解决方法需要写入文档。
The text was updated successfully, but these errors were encountered: