7장. 확인된 문제
다음 하위 섹션에서는 버전 7.8의 알려진 문제에 대해 설명합니다.
7.1. CVE 보안 취약점 링크 복사링크가 클립보드에 복사되었습니다!
미들웨어 통합 플랫폼인 Fuse는 다수의 타사 구성 요소와 잠재적으로 통합될 수 있습니다. Fuse의 일부 타사 종속 항목에 보안 취약점이 있을 수 있는 가능성을 항상 제외할 수 있는 것은 아닙니다. 이 섹션에서는 Fuse 7.8의 타사 종속 항목에 영향을 미치는 보안과 관련된 일반적인 취약점 및 노출 (CVE)에 대해 설명합니다.
- ENT Cryostat-8113 CVE-2018-10237 guava: Atomic CryostatArray 및 CompoundOrdering 클래스의 바인딩되지 않은 메모리 할당을 통해 원격 공격자가 서비스 거부를 일으킬 수 있습니다 [fuse-7.0.0]
Google Guava 버전 11.0~24.1은
Atomic CryostatArray클래스(Java serialization로 직렬화된 경우) 및CompoundOrdering클래스(GWT 직렬화로 직렬화된 경우)의 바인딩되지 않은 메모리 할당에 취약합니다. 공격자는 Guava를 사용하고 신뢰할 수 없는 데이터를 역직렬화하여 서비스 거부를 유발하는 애플리케이션을 악용할 수 있습니다. 자세한 내용은 CVE-2018-10237 을 참조하십시오.이 보안 취약점을 방지하려면 다음을 권장합니다.
-
Atomic CryostatArray 인스턴스또는 알 수 없는 소스에서CompoundOrdering인스턴스를 역직렬화하지 마십시오. - Guava 버전 24 및 이전 버전을 사용하지 마십시오 (일부 경우에는 이전 버전을 피할 수 없습니다).
Guava의 이전 버전(vulnerable) 버전을 방지하기 위해 Fuse 7.7은 기본적으로 Guava 27을 선택할 수 있도록 모든 컨테이너에 대한 BM(MM) 파일을 구성했습니다. 즉, Fuse BOM을 Maven 프로젝트에 통합하는 경우(POM 파일의 종속성
Management 섹션에 BOM에 대한 종속성을 추가) 명시적 버전을 지정하지 않고 Guava 아티팩트에 대한 종속성을 지정하면 Guava 버전이 BOM에 지정된 버전으로 기본 설정됩니다. 이 버전은 Fuse 7.7 BOM의 버전 27입니다.그러나 하나 이상의 일반적인 사용 사례는 Apache Karaf (OSGi) 컨테이너를 포함하는데, 여기서 Guava ( Guava)의 취약한 버전을 사용하지 않는 것은 불가능합니다: OSGi 애플리케이션이 Guava와 Swagger를 함께 사용하는 경우, Swagger에 필요한 버전이기 때문에 Guava 20을 사용해야 합니다. 여기서 우리는 왜 이것이고 이전 (vulnerable) Guava 20 라이브러리를 되돌리도록 POM 파일을 구성하는 방법을 설명합니다. 먼저 이중 OSGi 체인 의 개념을 이해해야합니다.
이중 OSGi 체인
OSGi 런타임의 번들은 패키지 제약 조건(패키지 이름 + 선택적 버전/범위) Cryostat- Cryostatimports 및 export를 사용하여 함께 연결됩니다. 각 번들에는 여러 개의 가져오기가 있을 수 있으며 일반적으로 해당 번들에는 여러 번 번들이 지정된 번들이 있습니다. 예를 들면 다음과 같습니다.
BundleA +-- BundleB | +-- BundleCa +-- BundleCb
BundleA +-- BundleB | +-- BundleCa +-- BundleCbCopy to Clipboard Copied! Toggle word wrap Toggle overflow BundleA는BundleB및BundleCb에 따라 다르며BundleB는BundleCa에 따라 다릅니다.BundleCa및BundleCb는 동일한 패키지를 내보내는 경우 번들과 동일하지만 버전(범위) 제약으로 인해BundleB는BundleA와 다른BundleC버전을 사용합니다.애플리케이션에 Guava 및 Swagger에 대한 종속성을 포함할 때 발생하는 상황을 반영하기 위해 이전 다이어그램을 다시 작성합니다.
org.jboss.qe.cxf.rs.swagger-deployment +-- Guava 27 +-- Swagger 1.5 +-- reflections 0.9.11 +-- Guava 20org.jboss.qe.cxf.rs.swagger-deployment +-- Guava 27 +-- Swagger 1.5 +-- reflections 0.9.11 +-- Guava 20Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 번들 구성을 배포하려고 하면
org.osgi.framework.BundleException: 제약 조건 위반을 사용합니다.Guava 20으로 되돌리기
프로젝트에서 Guava 및 Swagger 라이브러리(직접 또는 간접적으로)를 모두 사용하는 경우 다음과 같이 Guava 번들 가져오기에 대해 명시적 버전 범위(또는 전혀 범위 없음)를 사용하도록
maven-bundle-plugin을 구성해야 합니다.<Import-Package> com.google.common.base;version="[20.0,21.0)", com.google.common.collect;version="[20.0,21.0)", com.google.common.io;version="[20.0,21.0)" </Import-Package><Import-Package> com.google.common.base;version="[20.0,21.0)", com.google.common.collect;version="[20.0,21.0)", com.google.common.io;version="[20.0,21.0)" </Import-Package>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 구성을 사용하면 OSGi 애플리케이션이 Guava 20 라이브러리로 되돌아갑니다. 따라서 이 경우
Atomic CryostatArray 인스턴스를 역직렬화하는것을 방지하는 것이 특히 중요합니다.-
- CVE-2017-12629 bler/Lucene -security bypass to access sensitive data -CVE-2017-12629
Apache Performr는 Apache Lucene 검색 엔진을 사용하는 널리 사용되는 오픈 소스 검색 플랫폼입니다. 애플리케이션이 Apache Lucene과 함께 Apachesriovr를 사용하는 경우(예: Camel achievedr 구성 요소를 사용하는 경우) 이 보안 취약점의 영향을 받을 수 있습니다. 이 취약점에 대한 자세한 내용과 수행할 완화 단계를 보려면 연결된 보안 권고를 참조하십시오.
참고Fuse 런타임에서는 Apache achievedr 또는 Apache Lucene을 직접 사용하지 않습니다. 보안 위험은 통합 애플리케이션 컨텍스트에서 Apache achievedr 및 Apache Lucene을 함께 사용하는 경우(예: Camel Quarkusr 구성 요소를 사용하는 경우)만 발생합니다.