Jenkins temporary plugin file created with insecure permissions
High severity
GitHub Reviewed
Published
Sep 20, 2023
to the GitHub Advisory Database
•
Updated Jan 4, 2024
Package
Affected versions
>= 2.50, < 2.414.2
>= 2.415, < 2.424
Patched versions
2.414.2
2.424
Description
Published by the National Vulnerability Database
Sep 20, 2023
Published to the GitHub Advisory Database
Sep 20, 2023
Reviewed
Sep 21, 2023
Last updated
Jan 4, 2024
Jenkins creates a temporary file when a plugin is deployed directly from a URL.
Jenkins 2.423 and earlier, LTS 2.414.1 and earlier creates this temporary file in the system temporary directory with the default permissions for newly created files.
If these permissions are overly permissive, they may allow attackers with access to the Jenkins controller file system to read and write the file before it is installed in Jenkins, potentially resulting in arbitrary code execution.
This vulnerability only affects operating systems using a shared temporary directory for all users (typically Linux). Additionally, the default permissions for newly created files generally only allow attackers to read the temporary file, but not write to it.
This issue complements SECURITY-2823, which affected plugins uploaded from an administrator’s computer.
Jenkins 2.424, LTS 2.414.2 creates the temporary file in a subdirectory with more restrictive permissions.
As a workaround, you can change your default temporary-file directory using the Java system property java.io.tmpdir, if you’re concerned about this issue but unable to immediately update Jenkins.
References