diff --git a/build.gradle.kts b/build.gradle.kts
index 8d35a8956..4b5d53841 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -126,6 +126,10 @@ dependencies {
     testImplementation("org.bouncycastle:bcpkix-jdk15on:${property("bouncycastle.version")}")
     testImplementation("org.eclipse.paho:org.eclipse.paho.client.mqttv3:${property("paho.version")}")
     testRuntimeOnly("org.slf4j:slf4j-simple:${property("slf4j.version")}")
+
+    // TODO: Workaround for PMD, see https://github.com/gradle/gradle/issues/24502. Can be removed after Gradle update.
+    pmd("net.sourceforge.pmd:pmd-ant:7.7.0")
+    pmd("net.sourceforge.pmd:pmd-java:7.7.0")
 }
 
 /* ******************** integration Tests ******************** */
@@ -328,7 +332,7 @@ allprojects {
         plugins.apply("pmd")
 
         pmd {
-            toolVersion = "5.8.1"
+            toolVersion = "7.7.0"
             incrementalAnalysis.set(false)
         }
     }
diff --git a/gradle.properties b/gradle.properties
index 9b5791e5a..19bc37470 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -41,3 +41,5 @@ plugin.javadoc-links.version=0.3.0
 # options
 #
 org.gradle.caching=true
+# TODO: Needed for PMD. Check if this can be removed after Gradle is updated.
+org.gradle.jvmargs=--add-exports jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED