^javax[.]imageio[.].* ^java[.]util[.]ServiceLoader$ ^java[.]net[.]URLClassLoader$
每个部分都涵盖了从之前的LTS版本升级,2.32.1部分涵盖了从2.19.4升级。
控制台记录,通常是粗体或彩色的附加功能,可以通过插件创建日志,例如 Timestamper or AnsiColor, 在升级到Jenkins 2.43或2.32.2之前创建的文件将因安全原因不再被加载。
要恢复先前(不安全)的行为,请设置系统属性 hudson.console.ConsoleNote.INSECURE
为`true` 如 wiki 页面所述。
Maven集成插件2.14及更早版本中使用Maven 3.0.x构建的Maven项目将创建控制台记录,这些笔记不能再由Jenkins读取,因此其构建输出的部分内容不会被着色/粗体显示。 这对自由式项目不影响。
加密的秘密不是AES-128 CBC,而是随机IV,而不是没有IV的AES-128 ECB。 因此加密秘密的格式已经改变。 尽管仍然可以读取现有秘密,但保存配置文件将导致以新格式重新加密存储的秘密。 在更改Jenkins存储的密码作为密钥后,单击_Apply_重复提交相同的表单,现在会导致配置文件被更改。
重新键入,为Jenkins 1.480.2安全更新实施的一个流程,并且仅在从版本1.480.1或1.497或更低版本升级Jenkins时执行,并留下没有限制性文件访问权限的备份文件。 在应用2.32.2更新后的第一次重新启动时,Jenkins将删除这些备份文件(如果存在)。
如果您依靠文件系统权限来保护存储在Jenkins中的秘密,并且正在运行最初运行Jenkins 1.480.1或1.497(或更早版本)的实例,那么请考虑更改Jenkins中存储的任何秘密。
如果您依靠文件系统权限来保护存储在Jenkins主目录备份中的秘密,建议您从所有备份中删除 `JENKINS_HOME/jenkins.security.RekeySecretAdminMonitor/backups`目录。
禁止在XStream和Java对象序列化中使用的类的远程黑名单已被扩展。 这些条目已被添加:
^javax[.]imageio[.].* ^java[.]util[.]ServiceLoader$ ^java[.]net[.]URLClassLoader$
预计不会合法使用这些类型,但可能。 Jenkins 2.19.3升级指南 中先前的建议仍然适用。
Jenkins管理员可以通过访问URL `/user/example`来创建用户。 这样做会为(此URL)创建一个ID为`example`的新用户,如果它以前不存在的话。
虽然方便,但这构成了一个 跨站请求伪造漏洞,因为Jenkins管理员可能被骗入创建数百个(并非总是短暂的)用户。 因此此功能已被删除。
在使用内部Jenkins用户数据库时,可以通过 Manage Jenkins » Manage Users 创建新用户。
要恢复先前(不安全)的行为,请设置系统属性`hudson.model.User.allowUserCreationViaUrl`为 true
,如 wiki 页面所述。
Jenkins现在将在安装的组件(插件或核心)出现安全问题时显示警告。 这些警告还会显示在插件管理器的_Available_ 和 _Updates_标签中,以在安装易受攻击的插件或更新为易受攻击的版本之前发出警告。 由于这些警告是由您配置的更新站点发布的,因此通常每天更新一次。 请注意,第三方更新站点可能不支持此功能(尚未)。
Remoting,处理Jenkins master和代理之间通信的库,进行了一次重大升级,引入了一种新的通信协议(JNLP4)。
通过此次升级,可以限制哪些`Launcher`实现可以连接。 一些插件(主要是_cloud_实现)可能无法连接。 如果发生这种情况,请设置系统属性`jenkins.slaves.DefaultJnlpSlaveReceiver.disableStrictVerification`作为解决方法。
java -Djenkins.slaves.DefaultJnlpSlaveReceiver.disableStrictVerification=true … -jar jenkins.war
此外,这是第一个需要Java 7的远程处理版本。尽管代理现在需要Java 7,但远程处理也用于与Maven集成插件中的Maven项目类型中的Maven进程进行通信。 这些版本现在需要运行JDK 7或更新的版本。 使用工具链与旧版Java进行编译。