Skip to content

[JENKINS-47736] JEP-200: Switch Remoting/XStream blacklist to a whitelist #22391

Closed
6 of 6 issues completed
Closed

Description

@jenkins-infra-bot

Currently Remoting and XStream2 share a blacklist of classes thought to be dangerous to deserialize, due to historically reported remote code execution attacks. We should instead switch to a whitelist, plus some categorical exemptions.


Originally reported by jglick, imported from: JEP-200: Switch Remoting/XStream blacklist to a whitelist
  • assignee: jglick
  • status: Resolved
  • priority: Critical
  • component(s): core, jenkins-test-harness
  • label(s): JEP-200, classloader, remoting, security, xstream
  • resolution: Fixed
  • resolved: 2018-01-12T22:42:19+00:00
  • votes: 1
  • watchers: 5
  • imported: 2025-11-24
Raw content of original issue

Currently Remoting and XStream2 share a blacklist of classes thought to be dangerous to deserialize, due to historically reported remote code execution attacks. We should instead switch to a whitelist, plus some categorical exemptions.

Activity

  1. jenkins-infra-bot commented on Oct 30, 2017

    @jenkins-infra-bot
    Author
    jglick:
    • Original comment link
    • Raw content of original comment:

      I filed a JEP which should be referred to for all details.

    I filed a JEP which should be referred to for all details.

  2. jenkins-infra-bot commented on Oct 31, 2017

    @jenkins-infra-bot
    Author
    scm_issue_link:

    Code changed in jenkins
    User: Jesse Glick
    Path:
    src/main/java/org/jenkinsci/plugins/registry/notification/webhook/dockerregistry/DockerRegistryWebHookPayload.java
    http://jenkins-ci.org/commit/dockerhub-notification-plugin/162947aa5d4267fbb25ea8528c4fcdf2186eb31e
    Log:
    JENKINS-47736 Unnecessary serialization of a JSONObject.

  3. jenkins-infra-bot commented on Oct 31, 2017

    @jenkins-infra-bot
    Author
    scm_issue_link:

    Code changed in jenkins
    User: Jesse Glick
    Path:
    src/main/java/org/jenkinsci/plugins/registry/notification/webhook/dockerregistry/DockerRegistryWebHookPayload.java
    http://jenkins-ci.org/commit/dockerhub-notification-plugin/9641b4f4d9d416119f9bc803a132994a9278340d
    Log:
    Merge pull request #16 from jglick/whitelist-JENKINS-47736

    JENKINS-47736 Unnecessary serialization of a JSONObject

    Compare: jenkinsci/dockerhub-notification-plugin@5932021...9641b4f

  4. jenkins-infra-bot commented on Nov 1, 2017

    @jenkins-infra-bot
    Author
    scm_issue_link:

    Code changed in jenkins
    User: Jesse Glick
    Path:
    jep/200/README.adoc
    http://jenkins-ci.org/commit/jep/feb7c55886d3ccf494537e1f35780b4166e699e1
    Log:
    DRAFT: JEP-200: Switch Remoting/XStream blacklist to a whitelist (#23)

    • Changes from proofreading.
    • Noting RemoteClassLoader rule.
    • Formatting for links
    • Replace plus with backtick
    • Assign JEP Number: 200
  5. jenkins-infra-bot commented on Nov 28, 2017

    @jenkins-infra-bot
    Author
    scm_issue_link:

    Code changed in jenkins
    User: Jesse Glick
    Path:
    src/main/java/org/jvnet/hudson/test/MockQueueItemAuthenticator.java
    http://jenkins-ci.org/commit/jenkins-test-harness/3d9ebde50cf9dfcb297588f57d50905f8f94accc
    Log:
    JENKINS-47736 Do not even try to persist an Authentication.

  6. jenkins-infra-bot commented on Nov 28, 2017

    @jenkins-infra-bot
    Author
    scm_issue_link:

    Code changed in jenkins
    User: Jesse Glick
    Path:
    src/main/java/org/jvnet/hudson/test/MockQueueItemAuthenticator.java
    http://jenkins-ci.org/commit/jenkins-test-harness/0639913590297601158e9aca395c3461005357df
    Log:
    Merge pull request #81 from jglick/whitelist-JENKINS-47736

    JENKINS-47736 Do not even try to persist an Authentication

    Compare: jenkinsci/jenkins-test-harness@52ef2fe...0639913

  7. jenkins-infra-bot commented on Dec 7, 2017

    @jenkins-infra-bot
    Author
    scm_issue_link:

    Code changed in jenkins
    User: Jesse Glick
    Path:
    src/test/java/hudson/plugins/copyartifact/CopyArtifactTest.java
    http://jenkins-ci.org/commit/copyartifact-plugin/e225ab7c034eb424a59372d55ac020aca8fe762f
    Log:
    Avoid a warning under JENKINS-47736.

  8. jenkins-infra-bot commented on Jan 5, 2018

    @jenkins-infra-bot
    Author
    oleg_nenashev:
    • Original comment link
    • Raw content of original comment:

      I am going to convert it to EPIC so that we can track other action items separately

    I am going to convert it to EPIC so that we can track other action items separately

  9. jenkins-infra-bot commented on Jan 5, 2018

    @jenkins-infra-bot
    Author
    scm_issue_link:

    Code changed in jenkins
    User: Oleg Nenashev
    Path:
    pom.xml
    http://jenkins-ci.org/commit/lib-jenkins-maven-embedder/fdf0ac0ce2fac2d706ddca98b06cd825cbdfe319
    Log:
    Merge pull request #15 from jglick/Jenkins-ClassFilter-Whitelisted

    JENKINS-47736 Jenkins-ClassFilter-Whitelisted

  10. jenkins-infra-bot commented on Jan 9, 2018

    @jenkins-infra-bot
    Author
    scm_issue_link:

    Code changed in jenkins
    User: Jesse Glick
    Path:
    src/main/java/hudson/remoting/ClassFilter.java
    src/test/java/hudson/remoting/ClassFilterTest.java
    http://jenkins-ci.org/commit/remoting/1fda115f080dc3fc1063ca3496f49bb2853f380e
    Log:
    JENKINS-47736 Introduced ClassFilter.setDefault (#208)

    • Review comments from @​oleg-nenashev.
  11. jenkins-infra-bot commented on Jan 12, 2018

    @jenkins-infra-bot
    Author
    scm_issue_link:
    • Original comment link
    • Raw content of original comment:

      Code changed in jenkins User: Jesse Glick Path: core/src/main/java/hudson/util/XStream2.java core/src/main/java/jenkins/model/Jenkins.java core/src/main/java/jenkins/security/ClassFilterImpl.java core/src/main/java/jenkins/security/CustomClassFilter.java core/src/main/resources/jenkins/security/whitelisted-classes.txt pom.xml test/pom.xml test/src/test/groovy/hudson/cli/BuildCommandTest.groovy test/src/test/java/hudson/cli/BuildCommand2Test.java test/src/test/java/hudson/util/XStream2Security383Test.java test/src/test/java/jenkins/install/InstallUtilTest.java test/src/test/java/jenkins/install/SetupWizardTest.java test/src/test/java/jenkins/security/ClassFilterImplTest.java test/src/test/java/jenkins/security/CustomClassFilterTest.java test/src/test/java/jenkins/security/Security218CliTest.java test/src/test/java/jenkins/security/Security218Test.java test/src/test/resources/plugins/custom-class-filter.jpi http://jenkins-ci.org/commit/jenkins/903b4461d37170ccda49ce6637adf7cf4a261b93 Log: JENKINS-47736 Switch Remoting/XStream blacklist to a whitelist.

    Code changed in jenkins
    User: Jesse Glick
    Path:
    core/src/main/java/hudson/util/XStream2.java
    core/src/main/java/jenkins/model/Jenkins.java
    core/src/main/java/jenkins/security/ClassFilterImpl.java
    core/src/main/java/jenkins/security/CustomClassFilter.java
    core/src/main/resources/jenkins/security/whitelisted-classes.txt
    pom.xml
    test/pom.xml
    test/src/test/groovy/hudson/cli/BuildCommandTest.groovy
    test/src/test/java/hudson/cli/BuildCommand2Test.java
    test/src/test/java/hudson/util/XStream2Security383Test.java
    test/src/test/java/jenkins/install/InstallUtilTest.java
    test/src/test/java/jenkins/install/SetupWizardTest.java
    test/src/test/java/jenkins/security/ClassFilterImplTest.java
    test/src/test/java/jenkins/security/CustomClassFilterTest.java
    test/src/test/java/jenkins/security/Security218CliTest.java
    test/src/test/java/jenkins/security/Security218Test.java
    test/src/test/resources/plugins/custom-class-filter.jpi
    http://jenkins-ci.org/commit/jenkins/903b4461d37170ccda49ce6637adf7cf4a261b93
    Log:
    JENKINS-47736 Switch Remoting/XStream blacklist to a whitelist.

  12. jenkins-infra-bot commented on Jan 12, 2018

    @jenkins-infra-bot
    Author
    scm_issue_link:

    Code changed in jenkins
    User: Oleg Nenashev
    Path:
    pom.xml
    http://jenkins-ci.org/commit/jenkins/29362a5b7b94ddfe0ead38c423c54c81bfced53d
    Log:
    JENKINS-47736 - Use the new snapshot: remoting-3.16-20171228.162243-1

  13. jenkins-infra-bot commented on Jan 12, 2018

    @jenkins-infra-bot
    Author
    scm_issue_link:

    Code changed in jenkins
    User: Oleg Nenashev
    Path:
    pom.xml
    http://jenkins-ci.org/commit/jenkins/88e756de6fe6c3333658e6d4be6aad2323a63e09
    Log:
    JENKINS-47736 - Use the released version of Remoting 3.16

  14. jenkins-infra-bot commented on Jan 12, 2018

    @jenkins-infra-bot
    Author
    scm_issue_link:
    • Original comment link
    • Raw content of original comment:

      Code changed in jenkins User: Jesse Glick Path: core/src/main/java/hudson/PluginManager.java core/src/main/java/hudson/util/XStream2.java core/src/main/java/jenkins/MasterToSlaveFileCallable.java core/src/main/java/jenkins/SlaveToMasterFileCallable.java core/src/main/java/jenkins/model/Jenkins.java core/src/main/java/jenkins/security/ClassFilterImpl.java core/src/main/java/jenkins/security/CustomClassFilter.java core/src/main/java/jenkins/security/MasterToSlaveCallable.java core/src/main/java/jenkins/security/SlaveToMasterCallable.java core/src/main/resources/jenkins/security/whitelisted-classes.txt pom.xml test/src/test/java/hudson/util/XStream2Security383Test.java test/src/test/java/jenkins/install/InstallUtilTest.java test/src/test/java/jenkins/install/SetupWizardTest.java test/src/test/java/jenkins/security/ClassFilterImplTest.java test/src/test/java/jenkins/security/CustomClassFilterTest.java test/src/test/java/jenkins/security/Security218CliTest.java test/src/test/java/jenkins/security/Security218Test.java test/src/test/resources/plugins/custom-class-filter.jpi http://jenkins-ci.org/commit/jenkins/cb4903c20e788f015f6210a965a2759009ff24f2 Log: [JEP-200] JENKINS-47736 Merged #3120: ClassFilterImpl

    Code changed in jenkins
    User: Jesse Glick
    Path:
    core/src/main/java/hudson/PluginManager.java
    core/src/main/java/hudson/util/XStream2.java
    core/src/main/java/jenkins/MasterToSlaveFileCallable.java
    core/src/main/java/jenkins/SlaveToMasterFileCallable.java
    core/src/main/java/jenkins/model/Jenkins.java
    core/src/main/java/jenkins/security/ClassFilterImpl.java
    core/src/main/java/jenkins/security/CustomClassFilter.java
    core/src/main/java/jenkins/security/MasterToSlaveCallable.java
    core/src/main/java/jenkins/security/SlaveToMasterCallable.java
    core/src/main/resources/jenkins/security/whitelisted-classes.txt
    pom.xml
    test/src/test/java/hudson/util/XStream2Security383Test.java
    test/src/test/java/jenkins/install/InstallUtilTest.java
    test/src/test/java/jenkins/install/SetupWizardTest.java
    test/src/test/java/jenkins/security/ClassFilterImplTest.java
    test/src/test/java/jenkins/security/CustomClassFilterTest.java
    test/src/test/java/jenkins/security/Security218CliTest.java
    test/src/test/java/jenkins/security/Security218Test.java
    test/src/test/resources/plugins/custom-class-filter.jpi
    http://jenkins-ci.org/commit/jenkins/cb4903c20e788f015f6210a965a2759009ff24f2
    Log:
    [JEP-200] JENKINS-47736 Merged #3120: ClassFilterImpl

  15. 4 remaining items

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions