Skip to content

Commit 69b6b46

Browse files
committed
Merge remote-tracking branch 'origin/update-from-template-merged' into develop
2 parents 99859d8 + 9b35de0 commit 69b6b46

File tree

10 files changed

+79
-13
lines changed

10 files changed

+79
-13
lines changed

.config/pmd/java/ruleset.xml

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,4 +194,52 @@
194194
</rule>
195195

196196
<rule ref="category/java/security.xml"/>
197+
198+
<rule name="AvoidSystemSetterCall"
199+
language="java"
200+
message="Setters of java.lang.System should not be called unless really needed"
201+
class="net.sourceforge.pmd.lang.rule.xpath.XPathRule">
202+
<description>
203+
Calling setters of java.lang.System usually indicates bad design and likely causes unexpected behavior.
204+
For example, it may break when multiple Threads are setting the value.
205+
It may also overwrite user defined options or properties.
206+
207+
Try to pass the value only to the place where it's really needed and use it there accordingly.
208+
</description>
209+
<priority>3</priority>
210+
<properties>
211+
<property name="xpath">
212+
<value>
213+
<![CDATA[
214+
//MethodCall[starts-with(@MethodName,'set')]/TypeExpression[pmd-java:typeIsExactly('java.lang.System')]
215+
]]>
216+
</value>
217+
</property>
218+
</properties>
219+
</rule>
220+
221+
<rule name="JavaObjectSerializationIsUnsafe"
222+
language="java"
223+
message="Using Java Object (De-)Serialization is unsafe and has led to too many security vulnerabilities"
224+
class="net.sourceforge.pmd.lang.rule.xpath.XPathRule">
225+
<description>
226+
Nearly every known usage of (Java) Object Deserialization has resulted in [a security vulnerability](https://cloud.google.com/blog/topics/threat-intelligence/hunting-deserialization-exploits?hl=en).
227+
Vulnerabilities are so common that there are [dedicated projects for exploit payload generation](https://github.com/frohoff/ysoserial).
228+
229+
Java Object Serialization may also fail to deserialize when the underlying classes are changed.
230+
231+
Use proven data interchange formats like JSON instead.
232+
</description>
233+
<priority>2</priority>
234+
<properties>
235+
<property name="xpath">
236+
<value>
237+
<![CDATA[
238+
//ClassDeclaration[@Interface = false()]/ClassBody/FieldDeclaration/VariableDeclarator/VariableId[@Name='serialVersionUID'] |
239+
//ConstructorCall/ClassType[pmd-java:typeIsExactly('java.io.ObjectInputStream') or pmd-java:typeIsExactly('java.io.ObjectOutputStream')]
240+
]]>
241+
</value>
242+
</property>
243+
</properties>
244+
</rule>
197245
</ruleset>

.github/workflows/broken-links.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
runs-on: ubuntu-latest
1414
timeout-minutes: 15
1515
steps:
16-
- uses: actions/checkout@v4
16+
- uses: actions/checkout@v5
1717

1818
- run: mv .github/.lycheeignore .lycheeignore
1919

.github/workflows/check-build.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ jobs:
3333
distribution: [temurin]
3434

3535
steps:
36-
- uses: actions/checkout@v4
36+
- uses: actions/checkout@v5
3737

3838
- name: Set up JDK
3939
uses: actions/setup-java@v4
@@ -81,7 +81,7 @@ jobs:
8181
distribution: [temurin]
8282

8383
steps:
84-
- uses: actions/checkout@v4
84+
- uses: actions/checkout@v5
8585

8686
- name: Set up JDK
8787
uses: actions/setup-java@v4
@@ -104,7 +104,7 @@ jobs:
104104
distribution: [temurin]
105105

106106
steps:
107-
- uses: actions/checkout@v4
107+
- uses: actions/checkout@v5
108108

109109
- name: Set up JDK
110110
uses: actions/setup-java@v4

.github/workflows/release.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
runs-on: ubuntu-latest
1717
timeout-minutes: 30
1818
steps:
19-
- uses: actions/checkout@v4
19+
- uses: actions/checkout@v5
2020

2121
- name: Set up JDK
2222
uses: actions/setup-java@v4
@@ -53,7 +53,7 @@ jobs:
5353
outputs:
5454
upload_url: ${{ steps.create-release.outputs.upload_url }}
5555
steps:
56-
- uses: actions/checkout@v4
56+
- uses: actions/checkout@v5
5757

5858
- name: Configure Git
5959
run: |
@@ -105,7 +105,7 @@ jobs:
105105
needs: [prepare-release]
106106
timeout-minutes: 60
107107
steps:
108-
- uses: actions/checkout@v4
108+
- uses: actions/checkout@v5
109109

110110
- name: Init Git and pull
111111
run: |
@@ -153,7 +153,7 @@ jobs:
153153
needs: [prepare-release]
154154
timeout-minutes: 15
155155
steps:
156-
- uses: actions/checkout@v4
156+
- uses: actions/checkout@v5
157157

158158
- name: Init Git and pull
159159
run: |
@@ -184,7 +184,7 @@ jobs:
184184
needs: [publish-maven]
185185
timeout-minutes: 10
186186
steps:
187-
- uses: actions/checkout@v4
187+
- uses: actions/checkout@v5
188188

189189
- name: Init Git and pull
190190
run: |

.github/workflows/sync-labels.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
runs-on: ubuntu-latest
1717
timeout-minutes: 10
1818
steps:
19-
- uses: actions/checkout@v4
19+
- uses: actions/checkout@v5
2020
with:
2121
sparse-checkout: .github/labels.yml
2222

.github/workflows/test-deploy.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
runs-on: ubuntu-latest
1212
timeout-minutes: 60
1313
steps:
14-
- uses: actions/checkout@v4
14+
- uses: actions/checkout@v5
1515

1616
- name: Set up JDK
1717
uses: actions/setup-java@v4

.github/workflows/update-from-template.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ jobs:
3636
update_branch_merged_commit: ${{ steps.manage-branches.outputs.update_branch_merged_commit }}
3737
create_update_branch_merged_pr: ${{ steps.manage-branches.outputs.create_update_branch_merged_pr }}
3838
steps:
39-
- uses: actions/checkout@v4
39+
- uses: actions/checkout@v5
4040
with:
4141
# Required because otherwise there are always changes detected when executing diff/rev-list
4242
fetch-depth: 0
@@ -183,7 +183,7 @@ jobs:
183183
runs-on: ubuntu-latest
184184
timeout-minutes: 60
185185
steps:
186-
- uses: actions/checkout@v4
186+
- uses: actions/checkout@v5
187187
with:
188188
# Required because otherwise there are always changes detected when executing diff/rev-list
189189
fetch-depth: 0

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ hs_err_pid*
4444
!.idea/saveactions_settings.xml
4545
!.idea/checkstyle-idea.xml
4646
!.idea/externalDependencies.xml
47+
!.idea/PMDPlugin.xml
4748

4849
!.idea/inspectionProfiles/
4950
.idea/inspectionProfiles/*

.idea/PMDPlugin.xml

Lines changed: 16 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/saveactions_settings.xml

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)