https://jenkins.io/security/advisory/2019-07-31/
其中有几个高危的,有一个中危的存储型XSS。
高危
是两个Script Security Plugin的漏洞
但是想要利用这种漏洞,需要很高的权限(able to specify sandboxed scripts
),一般人根本没有新建job的权限,所以只能结合其他漏洞才能被利用。
中危
另外有一个中危的存储型XSS,
Stored XSS vulnerability in Maven Release Plug-in Plugin
SECURITY-1184 / CVE-2019-10360
Maven Release Plug-in Plugin did not properly escape variables in multiple views, resulting in a stored cross-site scripting vulnerability.
Variables on affected views are now escaped
看官方的commit就是新加了一个属性
https://github.com/jenkinsci/m2release-plugin/commit/d32dcfe65302eeae550c022429d1e28e30c94757
至于为什么加了几个属性就可以防止XSS了,我就去这里学习了一下。
据说强烈建议在所有jelly文件里都加上这个修饰:
strongly recommended on all Jelly files
想要避免被转义的话,可以使用<j:out>
像这样:
<p>My name is <j:out value="${it.fullName}"/></p>
参考:
https://wiki.jenkins.io/display/JENKINS/Jelly+and+XSS+prevention
https://issues.jenkins-ci.org/browse/JENKINS-5135
https://www.cloudbees.com/blog/introducing-variability-jenkins-plugins