젠킨스(Jenkins) 보안 권고 
2016.5.11
Added note on plugins 
impacted by SECURITY-170, mentioned system property disabling part of the 
SECURITY-243 fix. ( 2016년 5월 12일 개정.)
이 내용은 젠킨스의 여러 취약점을 담고 
있습니다
Description
Arbitrary build parameters are passed to build scripts as environment variables
SECURITY-170 
/ CVE-2016-3721
Build 
parameters in Jenkins typically are passed to build scripts as environment 
variables. Some plugins allow passing arbitrary (undeclared) parameters. 
Depending on access permissions and installed plugins, malicious users were able 
to trigger builds, passing arbitrary environment variables (e.g. PATH) to modify 
the behavior of those builds. Rather than expect all plugin authors to be aware 
of this potential problem, Jenkins now filters the build parameters based on 
what is defined on the job.
As 
this change is known to affect a number of plugins, it's possible to restore the 
previous behavior by setting the system property hudson.model.ParametersAction.keepUndefinedParameters to true. This is potentially very unsafe and intended as a short-term workaround 
only.
To 
allow specific, known safe parameter names to be passed to builds, set the 
system property hudson.model.ParametersAction.safeParameters to a comma-separated list of safe parameter 
names. Example:
Malicious users with multiple user accounts can prevent other users from logging in
SECURITY-243 
/ CVE-2016-3722
By 
changing the freely editable 'full name', malicious users with multiple user 
accounts could prevent other users from logging in, as 'full name' was resolved 
before actual user name to determine which account is currently trying to log 
in.
Part 
of this fix can be disabled by setting the system property hudson.model.User.SECURITY_243_FULL_DEFENSE to false. This is not generally 
encouraged, but may be necessary in rare circumstances.
Information on installed plugins exposed via API
SECURITY-250 
/ CVE-2016-3723
The 
XML/JSON API endpoints providing information about installed plugins were 
missing permissions checks, allowing any user with read access to Jenkins to 
determine which plugins and versions were installed.
Encrypted secrets (e.g. passwords) were leaked to users with permission to read configuration
SECURITY-266 
/ CVE-2016-3724
Users 
with extended read access could access encrypted secrets stored directly in the 
configuration of those items.
As 
a side-effect of this change, copying a job that contains secrets in its 
configuration now requires the Configure permission on that job.
Regular users can trigger download of update site metadata
SECURITY-273 
/ CVE-2016-3725
A 
missing permissions check allowed any user with access to Jenkins to trigger an 
update of update site metadata. This could be combined with DNS cache poisoning 
to disrupt Jenkins service.
Open redirect to scheme-relative URLs
SECURITY-276 
/ CVE-2016-3726
Some 
Jenkins URLs did not properly validate the redirect URLs, which allowed 
malicious users to create URLs that redirect users to arbitrary scheme-relative 
URLs.
Granting the permission to read node configurations allows access to overall system configuration
SECURITY-281 
/ CVE-2016-3727
The 
API URL /computer/(master)/api/xml allowed users with the 'extended read' 
permission for the master node to see some global Jenkins configuration, 
including the configuration of the security realm.
This 
URL now unconditionally sends HTTP 400 Bad Request when accessed. There is no 
workaround.
Severity
- SECURITY-170 is considered medium.
- SECURITY-243 is considered low.
- SECURITY-250 is considered medium.
- SECURITY-266 is considered medium.
- SECURITY-273 is considered low.
- SECURITY-276 is considered medium.
- SECURITY-281 is considered medium.
Affected versions
- All Jenkins main line releases up to and including 2.2
- All Jenkins LTS releases up to and including 1.651.1
Fix
- Jenkins main line users should update to 2.3
- Jenkins LTS users should update to 1.651.2
These 
versions include fixes to all the vulnerabilities described above. All prior 
versions are affected by these vulnerabilities.
Credit
The 
Jenkins project would like to thank the following people for discovering 
and reporting these vulnerabilities:
- Adam Cazzolla and Ben Bleiberg, Sonatype Inc. for SECURITY-276
- Charles Nelson for SECURITY-250
- James Nord, CloudBees, Inc. for SECURITY-273
- Jesse Glick, CloudBees, Inc. for SECURITY-281
- Stephen Connolly, CloudBees, Inc. for SECURITY-170
- Steve Marlowe <smarlowe@cisco.com> of Cisco ASIG for SECURITY-243 and SECURITY-266
Other Resources
 참고 : 
 1) Jenkins 오픈소스 프로젝트의 기본 인프라가 이미 해킹되었다? 
http://blog.alyac.co.kr/613

 
댓글 없음:
댓글 쓰기