PT-2022-5052 · Apache+3 · Apache Commons Text+3
Gary D. Gregory
·
Published
2022-10-13
·
Updated
2026-04-01
·
CVE-2022-42889
CVSS v2.0
10
Critical
| Vector | AV:N/AC:L/Au:N/C:C/I:C/A:C |
Name of the Vulnerable Software and Affected Versions
Apache Commons Text versions 1.5 through 1.9
Description
The issue concerns a vulnerability in Apache Commons Text that allows for variable interpolation, enabling properties to be dynamically evaluated and expanded. The standard format for interpolation is "${prefix:name}", where "prefix" is used to locate an instance of org.apache.commons.text.lookup.StringLookup that performs the interpolation. Starting with version 1.5 and continuing through 1.9, the set of default Lookup instances included interpolators that could result in arbitrary code execution or contact with remote servers. These lookups are: - "script" - execute expressions using the JVM script execution engine (javax.script) - "dns" - resolve dns records - "url" - load values from urls, including from remote servers. Applications using the interpolation defaults in the affected versions may be vulnerable to remote code execution or unintentional contact with remote servers if untrusted configuration values are used. Researchers have detected active exploitation attempts targeting this vulnerability.
Recommendations
To resolve the issue, users are recommended to upgrade to Apache Commons Text 1.10.0, which disables the problematic interpolators by default. As a temporary workaround, consider disabling the vulnerable
StringLookup instances, such as "script", "dns", and "url", to minimize the risk of exploitation. Restrict access to the vulnerable InterpolatorStringLookup class to prevent unauthorized use. Avoid using the StringSubstitutor class with untrusted configuration values until the issue is resolved.Exploit
Fix
RCE
Code Injection
Found an issue in the description? Have something to add? Feel free to write us 👾
Weakness Enumeration
Related Identifiers
Affected Products
Apache Commons Text
Debian
Red Os
Rocky Linux