NIST deprecates RSA-2048 from 2030. Find every one of them before attackers do.
☕
☕ Maven
Not in CISA KEV
MEDIUM severity

CVE-2020-17521 — groovy

MEDIUMFix: apache/groovy#1425

CVE-2020-17521 is a medium-severity (CVSS 5.5) vulnerability in org.codehaus.groovy:groovy. A fix is available for org.codehaus.groovy:groovy — see the affected versions and patch details below.

Information Disclosure in Apache Groovy

Also known asGHSA-rcjj-h6gh-jf3r
Published
Updated
Affected
6 pkgs
Patched
6 / 6
Exploits
None indexed
Exploitation data as of Oct 30, 2026 · OSV.dev, NVD, FIRST.org (EPSS)

Exploitation Status

No confirmed exploitation observed yet

  • CISA’s own triage has not observed active exploitation or public proof-of-concept code for this CVE as of its last assessment.

Exploitation and automatability from CISA’s SSVC triage for CVE-2020-17521.

EPSS Exploitation Probability

via FIRST.org ↗
1.0%probability of exploitation in next 30 days
Lower Risk0.00%
Lower risk than most CVEs64th percentile — riskier than 64% of all scored CVEsHighest risk
0.53%1.30%2.08%2.86%2.4%1.0%Apr 26Aug 26Oct 26

Probability of exploitation in the next 30 days, from FIRST.org EPSS.

How urgent is this, really

Where this sits among everything scored

Real-World Exposure

6 pkgs affected
☕org.codehaus.groovy:groovy☕org.codehaus.groovy:groovy☕org.codehaus.groovy:groovy☕org.codehaus.groovy:groovy-all☕org.codehaus.groovy:groovy-all☕org.codehaus.groovy:groovy-all

Real-time download stats are indexed for npm and PyPI packages. This vulnerability affects Maven packages — download data is not available via public APIs for these ecosystems.

Description

Apache Groovy provides extension methods to aid with creating temporary directories. Prior to this fix, Groovy's implementation of those extension methods was using a now superseded Java JDK method call that is potentially not secure on some operating systems in some contexts. Users not using the extension methods mentioned in the advisory are not affected, but may wish to read the advisory for further details. Versions Affected: 2.0 to 2.4.20, 2.5.0 to 2.5.13, 3.0.0 to 3.0.6, and 4.0.0-alpha-1. Fixed in versions 2.4.21, 2.5.14, 3.0.7, 4.0.0-alpha-2.

Affected Packages

6 total 6 fixed
EcosystemPackageVulnerable rangeFix
☕Mavenorg.codehaus.groovy:groovy≥ 2.0.0&&< 2.4.212.4.21org.codehaus.groovy:groovy:2.4.21
☕Mavenorg.codehaus.groovy:groovy≥ 2.5.0&&< 2.5.142.5.14org.codehaus.groovy:groovy:2.5.14
☕Mavenorg.codehaus.groovy:groovy≥ 3.0.0&&< 3.0.73.0.7org.codehaus.groovy:groovy:3.0.7
☕Mavenorg.codehaus.groovy:groovy-all≥ 2.0.0&&< 2.4.212.4.21org.codehaus.groovy:groovy-all:2.4.21
☕Mavenorg.codehaus.groovy:groovy-all≥ 2.5.0&&< 2.5.142.5.14org.codehaus.groovy:groovy-all:2.5.14
☕Mavenorg.codehaus.groovy:groovy-all≥ 3.0.0&&< 3.0.73.0.7org.codehaus.groovy:groovy-all:3.0.7

Affected Products

21 products · 39 configurations
Application
atlasapache
1 version
2.1.0
Application
groovyapache
≥ 3.0.0 && ≤ 3.0.6
1 version
4.0.0
Application
snapcenternetapp
all
Application
agile engineering data managementoracle
1 version
6.2.1.0
Application
agile plm mcad connectororacle
2 versions
3.43.6
Application
agile product lifecycle managementoracle
2 versions
9.3.39.3.6

Detection & mitigation playbook

Open-source dependency
  1. Detect

    Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for org.codehaus.groovy:groovy, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.

  2. Fix

    Update org.codehaus.groovy:groovy to 2.4.21 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms CVE-2020-17521 is resolved across your whole dependency graph.

  3. Workarounds

    If you can't upgrade right away: gate or disable the affected feature, validate untrusted input at the boundary, and avoid passing attacker-controlled data into the vulnerable path. O3's runtime protection blocks exploitation in production as an interim safeguard until the upgrade lands.

Fixing This On Your OS

If you run this on a Linux distribution, patch through your package manager against the distro's own security advisory below — it tracks the exact backported fix for your release, which can ship on a different timeline (and sometimes a different severity) than the upstream project.

Red HatModerate

This flaw is rated as having a security impact of Moderate and is not currently planned to be addressed in future updates of Red Hat Enterprise Linux 7. Red Hat Enterprise Linux 7 is now in Maintenance Support 2 Phase of the support and maintenance life cycle. For additional information, refer to the Red Hat…

Workaround published by Red Hat
Setting the `java.io.tmpdir` system environment variable to a directory that is exclusively owned by the executing user will fix this vulnerability for all operating systems and all Groovy versions. Users who cannot easily move to the fixed Groovy versions may wish to consider using the JDK’s Files#createTempDirectory method instead of the Groovy extension methods.
Source: Red Hat security advisory for CVE-2020-17521 (CC BY 4.0)
ProductFixed inAdvisory
Red Hat Fuse 7.10groovyRHSA-2021:5134
Red Hat IntegrationgroovyRHSA-2021:3205
Red Hat Integration Camel Quarkus 2see advisoryRHSA-2021:3207

Frequently Asked Questions

Apache Groovy provides extension methods to aid with creating temporary directories. Prior to this fix, Groovy's implementation of those extension methods was using a now superseded Java JDK method call that is potentially not secure on some operating systems in some contexts. Users not using the extension methods mentioned in the advisory are not affected, but may wish to read the advisory for further details. Versions Affected: 2.0 to 2.4.20, 2.5.0 to 2.5.13, 3.0.0 to 3.0.6, and 4.0.0-alpha-1. Fixed in versions 2.4.21, 2.5.14, 3.0.7, 4.0.0-alpha-2.
O3 Security · Impact-Aware SCA

Is CVE-2020-17521 in your dependencies?

Find it across Maven, including transitive dependencies.

CVE-2020-17521: groovy — Fixed in 2.4.21