CVE-2022-42889 Text4Shell(Apache Commons Text RCE)
그정도의 영향력을 가진다고 보이진 않는데 Apache 재단 소프트웨어 취약점 중 RCE 취약점이 나오면 4Shell 붙여서 명명하는건지... Log4Shell, Spring4Shell, Text4Shell 4shell 남용 그만..!!
https://www.rapid7.com/blog/post/2022/10/17/cve-2022-42889-keep-calm-and-stop-saying-4shell/
CVE-2022-42889: Keep Calm and Stop Saying "4Shell" | Rapid7 Blog
www.rapid7.com
CVE-2022-42889는 Apache Commons Text 버전 1.5~1.9에 영향을 줍니다. Commons Text 버전 1.10부터 패치되었습니다. 이 취약점은 관련 개체를 사용하는 다양한 소프트웨어 응용 프로그램에 영향을 미칠 가능성이 있는 오픈 소스 라이브러리 수준 취약점이기 때문에 Log4Shell
과 비교되었습니다 . 그러나 초기 분석은 이것이 잘못된 비교임을 나타냅니다. 취약점의 특성은 Log4Shell과 달리 응용 프로그램이 Commons Text의 취약한 구성 요소를 사용하여 신뢰할 수 없고 잠재적으로 악의적인 입력을 처리하는 경우가 드물다는 것을 의미합니다.
요약하면 Spring4Shell 과 마찬가지로 CVE-2022-42889의 실제 악용 가능성에 대한 중요한 경고가 있습니다. 그렇지만 여전히 일반적인 패치 주기에 따라 영향을 받는 관련 소프트웨어를 패치하는 것이 좋습니다.
기술적 분석
취약점은 StringSubstitutor 보간기 개체에 존재합니다. 보간기는 StringSubstitutor.createInterpolator() 메서드에 의해 생성되며 StringLookupFactory 에 정의된 대로 문자열 조회를 허용합니다 . 이것은 접두사가 앞서 언급한 조회인 "${prefix:name}" 문자열을 전달하여 사용할 수 있습니다. "script", "dns" 또는 "url" 조회를 사용하면 제작된 문자열이 보간기 개체에 전달될 때 임의의 스크립트를 실행할 수 있습니다.
Commons Text는 라이브러리이므로 보간기의 특정 사용법이 이 취약점의 영향을 나타냅니다. 장난감 개념 증명으로 다음을 고려하십시오.

이 특정 코드 조각은 프로덕션 응용 프로그램에 존재하지 않을 가능성이 높지만 일부 응용 프로그램에서는 'pocstring' 변수가 공격자가 제어할 수 있다는 우려가 있습니다. 이러한 의미에서 취약점은 Log4Shell을 반영합니다. 그러나 StringSubstitutor 보간기는 Log4j의 취약한 문자열 대체보다 훨씬 덜 널리 사용되며 이러한 보간기의 특성은 취약한 개체에 조작된 입력을 받는 것이 Log4Shell에서와 같이 조작된 문자열과 단순히 상호 작용하는 것보다 가능성이 적다는 것을 의미합니다.
완화 지침
Apache Commons Text에 직접 의존하는 조직은 고정 버전 (1.10.0) 으로 업그레이드해야 합니다 . 대부분의 라이브러리 취약점과 마찬가지로 라이브러리의 취약한 구현을 패키지하는 제품에 대한 업그레이드와 함께 후속 벤더 권고의 일반적인 꼬리를 보게 될 것입니다. 이러한 패치를 사용할 수 있게 되면 설치하고 공급업체에서 해당 구현이 원격으로 악용될 수 있다고 표시하는 위치에 우선 순위를 지정하는 것이 좋습니다.