Skip to content

Commit 3051924

Browse files
authored
Merge pull request #828 from dwnusbaum/revert-default-allowlist-cleanup
Revert "Merge pull request #538 from dwnusbaum/post-SECURITY-359"
2 parents c2a8f91 + 86250ad commit 3051924

File tree

2 files changed

+41
-0
lines changed

2 files changed

+41
-0
lines changed

plugin/src/main/java/org/jenkinsci/plugins/workflow/cps/GroovySourceFileAllowlist.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,15 @@
2929
import hudson.Extension;
3030
import hudson.ExtensionList;
3131
import hudson.ExtensionPoint;
32+
import hudson.Main;
3233
import java.io.BufferedReader;
3334
import java.io.IOException;
3435
import java.io.InputStream;
3536
import java.io.InputStreamReader;
3637
import java.net.URL;
3738
import java.nio.charset.StandardCharsets;
3839
import java.util.ArrayList;
40+
import java.util.Arrays;
3941
import java.util.Collections;
4042
import java.util.Enumeration;
4143
import java.util.List;
@@ -186,6 +188,15 @@ public DefaultAllowlist() throws IOException {
186188
}
187189
}
188190
loadDefaultAllowlist(ALLOWED_SOURCE_FILES);
191+
// Some plugins use test-specific Groovy DSLs.
192+
if (Main.isUnitTest) {
193+
ALLOWED_SOURCE_FILES.addAll(List.of(
194+
// pipeline-model-definition
195+
"/org/jenkinsci/plugins/pipeline/modeldefinition/agent/impl/LabelAndOtherFieldAgentScript.groovy",
196+
"/org/jenkinsci/plugins/pipeline/modeldefinition/parser/GlobalStageNameTestConditionalScript.groovy",
197+
"/org/jenkinsci/plugins/pipeline/modeldefinition/parser/GlobalStepCountTestConditionalScript.groovy"
198+
));
199+
}
189200
}
190201

191202
private static void loadDefaultAllowlist(List<String> allowlist) throws IOException {

plugin/src/main/resources/org/jenkinsci/plugins/workflow/cps/GroovySourceFileAllowlist/default-allowlist

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,34 @@
11
# This list is ordered from most popular to least popular plugin to minimize performance impact.
2+
# pipeline-model-definition
3+
/org/jenkinsci/plugins/pipeline/modeldefinition/ModelInterpreter.groovy
4+
/org/jenkinsci/plugins/pipeline/modeldefinition/agent/impl/AnyScript.groovy
5+
/org/jenkinsci/plugins/pipeline/modeldefinition/agent/impl/LabelScript.groovy
6+
/org/jenkinsci/plugins/pipeline/modeldefinition/agent/impl/NoneScript.groovy
7+
/org/jenkinsci/plugins/pipeline/modeldefinition/when/impl/AbstractChangelogConditionalScript.groovy
8+
/org/jenkinsci/plugins/pipeline/modeldefinition/when/impl/AllOfConditionalScript.groovy
9+
/org/jenkinsci/plugins/pipeline/modeldefinition/when/impl/AnyOfConditionalScript.groovy
10+
/org/jenkinsci/plugins/pipeline/modeldefinition/when/impl/BranchConditionalScript.groovy
11+
/org/jenkinsci/plugins/pipeline/modeldefinition/when/impl/ChangeLogConditionalScript.groovy
12+
/org/jenkinsci/plugins/pipeline/modeldefinition/when/impl/ChangeRequestConditionalScript.groovy
13+
/org/jenkinsci/plugins/pipeline/modeldefinition/when/impl/ChangeSetConditionalScript.groovy
14+
/org/jenkinsci/plugins/pipeline/modeldefinition/when/impl/EnvironmentConditionalScript.groovy
15+
/org/jenkinsci/plugins/pipeline/modeldefinition/when/impl/EqualsConditionalScript.groovy
16+
/org/jenkinsci/plugins/pipeline/modeldefinition/when/impl/ExpressionConditionalScript.groovy
17+
/org/jenkinsci/plugins/pipeline/modeldefinition/when/impl/IsRestartedRunConditionalScript.groovy
18+
/org/jenkinsci/plugins/pipeline/modeldefinition/when/impl/NotConditionalScript.groovy
19+
/org/jenkinsci/plugins/pipeline/modeldefinition/when/impl/TagConditionalScript.groovy
20+
/org/jenkinsci/plugins/pipeline/modeldefinition/when/impl/TriggeredByConditionalScript.groovy
21+
# pipeline-model-extensions
22+
/org/jenkinsci/plugins/pipeline/modeldefinition/agent/CheckoutScript.groovy
23+
# docker-workflow
24+
/org/jenkinsci/plugins/docker/workflow/Docker.groovy
25+
/org/jenkinsci/plugins/docker/workflow/declarative/AbstractDockerPipelineScript.groovy
26+
/org/jenkinsci/plugins/docker/workflow/declarative/DockerPipelineFromDockerfileScript.groovy
27+
/org/jenkinsci/plugins/docker/workflow/declarative/DockerPipelineScript.groovy
28+
# kubernetes
29+
/org/csanchez/jenkins/plugins/kubernetes/pipeline/KubernetesDeclarativeAgentScript.groovy
30+
# amazon-ecs
31+
/com/cloudbees/jenkins/plugins/amazonecs/pipeline/ECSDeclarativeAgentScript.groovy
232
# workflow-remote-loader:
333
/org/jenkinsci/plugins/workflow/remoteloader/FileLoaderDSL/FileLoaderDSLImpl.groovy
434
# confluence-publisher

0 commit comments

Comments
 (0)