이 페이지에는 Couchbase에 대한 중요 알림 및 권고가 나열되어 있습니다.
업데이트 알림을 구독하여 Couchbase Server에 대한 최신 중요 경고 및 권고에 대한 정보를 받아보세요. 가입하려면 지원 사이트에서 등록하고 이 문서를 따르세요: 공지 사항 - 카우치베이스 지원
이 페이지에는 Couchbase에 대한 중요 알림 및 권고가 나열되어 있습니다.
업데이트 알림을 구독하여 Couchbase Server에 대한 최신 중요 경고 및 권고에 대한 정보를 받아보세요. 가입하려면 지원 사이트에서 등록하고 이 문서를 따르세요: 공지 사항 - 카우치베이스 지원
특정 상황에서 지원을 위한 로그 수집과 관련된 자격 증명이 의도치 않게 공개될 수 있는 보안 취약점이 동기화 게이트웨이에서 발견되었습니다. 이 취약점은 로그 수집 프로세스를 시작하는 데 사용되는 자격 증명 집합에 영향을 미쳤습니다. 이 문제를 해결하는 Sync Gateway 3.2.6으로 업그레이드하고 영향을 받는 기간 동안 로그 수집을 시작하는 데 사용된 모든 자격 증명을 교체하는 것이 좋습니다.
.NET SDK v3.7.1 이전 버전에서는 TLS 인증서에 대한 호스트 이름 확인이 모든 경우에 제대로 적용되지 않았습니다.
1.78 이전 버전의 Bouncy Castle Java 암호화 API에서 문제가 발견되었습니다. 위조된 서명과 공개 키를 통해 Ed25519 인증 코드 무한 루프가 발생할 수 있습니다.
시스템의 중요한 파일에 대한 무단 액세스를 허용할 수 있는 보안 문제가 Windows용 Couchbase Server에서 발견되었습니다. 이 취약점은 권한 수준에 따라 / etc / passwd 또는 / etc / shadow와 같은 파일에 대한 액세스 권한을 부여할 수 있습니다.
이 취약점은 악용하기는 어렵지만 여러 프로토콜을 통해 네트워크에 액세스할 수 있는 인증되지 않은 공격자가 영향을 받는 제품을 잠재적으로 손상시킬 수 있습니다. 익스플로잇에 성공하면 액세스 가능한 데이터의 무단 업데이트, 삽입 또는 삭제는 물론 특정 데이터 하위 집합에 대한 무단 읽기 액세스 권한이 부여될 수 있습니다.
보안 관리자 역할이 있는 사용자가 '관리자' 역할이 있는 그룹에 새 사용자를 만들어 의도한 권한보다 높은 권한을 부여할 수 있습니다.
이 취약점을 통해 여러 프로토콜을 통해 네트워크에 액세스할 수 있는 인증되지 않은 공격자가 Oracle Java SE, Oracle GraalVM for JDK, Oracle GraalVM Enterprise Edition을 손상시킬 수 있습니다. 이 취약점을 공격하는 데 성공하면 일부 Oracle Java SE, Oracle GraalVM for JDK, Oracle GraalVM Enterprise Edition 액세스 데이터에 대한 무단 업데이트, 삽입 또는 삭제 액세스가 허용될 수 있습니다.
TLS, SSH, IPSec 프로토콜 및 기타 프로토콜과 제품에서 사용되는 DES와 트리플 DES 암호는 약 40억 블록의 생일 바인딩을 가지고 있어 원격 공격자가 CBC 모드에서 트리플 DES를 사용하는 HTTPS 세션, 일명 “Sweet32” 공격에서 볼 수 있듯이 장기간 암호화된 세션에 대한 생일 공격을 통해 투명 텍스트 데이터를 쉽게 획득할 수 있습니다.
들어오는 HTTP 요청의 호스트 헤더가 위치 헤더에 맹목적으로 복사되었습니다.
SDK는 기본적으로 SCRAM-SHA와 협상하여 MITM이 일반 자격 증명을 위해 협상할 수 있도록 합니다.
120.0.6099.224 이전 버전의 Google Chrome에서 V8의 범위를 벗어난 메모리 액세스로 인해 원격 공격자가 조작된 HTML 페이지를 통해 힙 손상을 악용할 수 있는 가능성이 발견되었습니다.
파이썬 암호화 패키지에서 결함이 발견되었습니다. 이 문제로 인해 원격 공격자가 RSA 키 교환을 사용하는 TLS 서버에서 캡처된 메시지를 해독하여 기밀 또는 민감한 데이터가 노출될 수 있습니다.
쿼리 통계 엔드포인트가 올바른 인증을 구현하지 않아 통계 정보를 볼 수 없습니다.
데이터 리더 권한이 있는 사용자가 많은 수의 문서를 요청하는 GetKey를 전송하여 데이터 서비스를 종료하고 메모리 부족(OOM) 오류를 트리거할 수 있습니다.
데이터 리더 역할을 가진 사용자는 많은 수의 키를 요청하여 데이터 서비스 리더 스레드를 상당한 시간 동안 잠그고, 여러 연결에서 동일한 명령을 실행하여 모든 리더 스레드를 잠글 수 있습니다.
네트워크 포트 9119 및 9121은 애널리틱스 서비스에서 호스팅하는 인증되지 않은 RMI 서비스 포트로, 권한 상승을 초래할 수 있습니다.
클러스터의 otp쿠키는 API 엔드포인트 서버그룹에서 전체 관리자 역할을 가진 사용자와 API 엔드포인트 engageCluster2에서 클러스터 관리자 및 전체 관리자 모두에게 유출되었습니다. 이는 권한을 상승시키는 데 사용될 수 있습니다.
쿼리 서비스를 사용하여 로컬 호스트의 /diag/eval 엔드포인트에 대한 SQL++(N1QL)를 통해 cURL을 호출하는 것이 완전히 방지되지 않았습니다.
쿼리 서비스의 SQL++(N1QL) cURL 허용 목록 보호는 제한된 호스트에 대한 액세스를 방지하는 데 충분하지 않았습니다.
이벤트 서비스를 통해 SQL++(N1QL)을 통해 로컬 호스트의 /diag/eval 엔드포인트로 cURL을 호출하는 것이 완전히 차단되지 않았습니다.
로깅 이벤트로 인해 내부 @ns_server 관리자 자격 증명이 diag.log에서 인코딩된 형태로 유출되었습니다.
데이터센터 간 복제(XDCR)에 사용되는 개인 키가 goxdcr.log에서 유출되었습니다.
컬의 결함으로 인해 SOCKS5 프록시 핸드셰이크에서 힙 기반 버퍼가 오버플로됩니다.
DH_generate_key() 함수를 사용하여 X9.42 DH 키를 생성하는 애플리케이션과 DH_check_pub_key(), DH_check_pub_key_ex() 또는 EVP_PKEY_public_check()를 사용하여 X9.42 DH 키 또는 X9.42 DH 파라미터를 검사하는 애플리케이션은 긴 지연이 발생할 수 있습니다. 확인 중인 키 또는 매개변수가 신뢰할 수 없는 출처에서 가져온 경우 서비스 거부가 발생할 수 있습니다.
HTTP/2 프로토콜은 요청 취소로 많은 스트림을 빠르게 초기화할 수 있기 때문에 서비스 거부를 허용합니다.
HTTP/2 프로토콜은 요청 취소로 많은 스트림을 빠르게 초기화할 수 있기 때문에 서비스 거부를 허용합니다.
정책 제약 조건이 포함된 X.509 인증서 체인의 검증과 관련된 OpenSSL의 취약점으로, 공격자는 이 취약점을 악용하여 악성 인증서 체인을 생성하여 컴퓨팅 리소스를 기하급수적으로 사용하여 영향을 받는 시스템에 대한 서비스 거부(DoS) 공격을 일으킬 수 있습니다.
악의적으로 조작된 HTTP/2 스트림은 HPACK 디코더에서 과도한 CPU 소비를 유발하여 소수의 소규모 요청으로 인해 서비스 거부를 일으킬 수 있습니다.
114.0.5735.110 이전 버전의 Google Chrome에서 V8의 유형 혼동으로 인해 원격 공격자가 조작된 HTML 페이지를 통해 힙 손상을 악용할 수 있었습니다.
OpenJDK를 버전 11.0.19로 업데이트하여 수많은 CVE를 해결하세요.
공격자는 카우치베이스 서버 윈도우 UI를 통해 파일 시스템을 탐색하고 카우치베이스가 액세스할 수 있는 파일을 표시할 수 있습니다. 이 취약점은 인증이 필요하지 않습니다. 카우치베이스 서버 관리자 UI의 URL에 폴더/파일을 추가하기만 하면 익스플로잇할 수 있습니다.
악의적인 사용자는 서버에 접속하여 대량의 명령을 전송함으로써 멤캐시드 서버를 쉽게 다운시킬 수 있습니다.
7.0 이전 노드를 7.2 클러스터에 추가할 때 개인 키가 debug.log로 유출됩니다.
4.1.86.Final 이전 버전에서는 무한 재귀로 인해 잘못 작성된 메시지를 구문 분석할 때 StackOverflowError가 발생할 수 있습니다.
api/nsstats의 FTS 통계 엔드포인트는 올바른 인증을 구현하지 않기 때문에 인증 없이도 Couchbase Server 버킷 이름, FTS 인덱스 이름 및 FTS 인덱스의 구성을 볼 수 있습니다. 버킷과 인덱스의 내용은 노출되지 않습니다.
노드 조인이 실패하는 동안 REST 요청을 하는 사용자의 수정되지 않은 자격 증명이 로그 파일로 유출될 수 있습니다.
카우치베이스 서버 노드가 시작되는 동안 보안 쿠키가 Erlang 배포 프로토콜에 대한 액세스 제어가 없는 “nocookie”로 설정되는 짧은 기간이 있습니다. 이 기간 동안 공격자가 이 프로토콜에 연결하면 연결이 끊어질 때까지 언제든지 임의의 클러스터 노드에서 원격으로 임의의 코드를 실행할 수 있습니다. 실행된 코드는 카우치베이스 서버와 동일한 권한으로 실행됩니다.
깊게 중첩된 배열의 사용을 방지하는 검사가 부족하여 Couchbase 분석 서비스의 리소스 고갈이 발생할 수 있습니다.
매우 큰(또는 바인딩되지 않은) HTTP 요청 본문으로 인해 백업 서비스에서 OOM(메모리 부족) 오류가 발생할 수 있습니다.
99.0.4844.84 이전 버전에서 원격 공격자가 조작된 요청을 통해 잠재적으로 힙 손상을 악용할 수 있는 유형 혼동이 발생함에 따라 Couchbase 서버 이벤트 서비스, 뷰 엔진, XDCR 및 N1QL UDF에 사용되는 v8 Javascript 엔진이 업데이트되었습니다.
악성 파일에 파일 페이지 헤더에 부적절한 값(예: 양수 값이 예상되는 곳에 음수 값)이 포함된 경우 공격자는 Couchbase 분석 서비스에서 선택적으로 사용하는 Parquet 파일을 사용하여 서비스 거부(DoS)를 일으킬 수 있습니다. 이 문제는 Apache Parquet 라이브러리를 최신 버전으로 업데이트하면 해결됩니다.
카우치베이스 서버에서 tls/ssl 기능을 사용할 때 특정 상황에서 클라이언트 인증을 우회할 수 있습니다. 특히, ssl/tls/dtls 서버와 클라이언트 인증 옵션 “{verify, verify_peer}”를 사용하는 모든 애플리케이션이 이 취약점의 영향을 받습니다. 지원되는 트랙에서는 erlang/OTP 런타임의 23.3.4.15, 24.3.4.2 및 25.0.2 패치를 통해 수정이 릴리스되었습니다. 인증서 기반 인증을 사용하는 클러스터만 영향을 받습니다.
드물지만 특정 충돌로 인해 생성된 인증서의 개인 키가 로그 파일에 유출될 수 있습니다.
여러 Couchbase Server 서비스에서 사용되는 Go 프로그래밍 언어 및 관련 라이브러리를 1.17.9+ 또는 1.18.1+ 버전으로 업데이트하여 수많은 CVE를 해결했습니다.
잭슨-데이터바인드 2.13.0 이전 버전에서는 중첩된 객체의 깊이가 큰 경우 Java StackOverflow 예외 및 서비스 거부를 허용합니다. 이 라이브러리는 카우치베이스 서버 분석 서비스에서 사용됩니다.
openssl 구성 요소인 c_rehash의 결함을 수정하기 위해 openssl을 업데이트했습니다. 이 스크립트는 디렉터리를 스캔하여 디렉터리에 있는 각 .pem 및 .crt 파일의 해시값을 가져옵니다. 그런 다음 해시 값으로 명명된 각 파일에 대한 심볼릭 링크를 만듭니다. 이 스크립트에는 스크립트에 명령 인젝션을 허용하는 결함이 있습니다.
Couchbase Server 7.1.0 이상에서는 암호화된 TLS 개인 키의 잠금을 해제하기 위해 Couchbase Server에 암호 구문을 제공할 수 있습니다. 이 암호 구문은 데이터 서비스 이외의 Couchbase 서비스 중 하나가 시작될 때 로그 파일에서 Base64로 인코딩된 문자열로 유출되는 것으로 밝혀졌습니다. 이는 옵션으로 암호화된 TLS 키 기능을 사용하는 경우 인덱스 서비스, 쿼리 서비스, 분석 서비스, 백업 서비스 및 이벤트 서비스에 영향을 미칩니다. 공격자가 중간자 공격을 수행하거나 네트워크 통신을 해독하는 등의 공격을 수행하려면 개인 키뿐만 아니라 로그에 액세스할 수 있어야 한다는 점에 유의하세요. 운영 체제 보호 기능을 사용하여 이러한 파일에 대한 액세스를 제한하는 것이 효과적인 방어 전략이 될 수 있습니다.
Ramda 0.27.0 이하에서는 공격자가 프로토타입 오염이라고 하는 함수에 대한 인수로 조작된 객체(“{}proto{}” 속성을 포함하는)를 제공함으로써 애플리케이션의 무결성 또는 가용성을 손상시킬 수 있습니다. 프로토타입 오염 유형 공격을 통해 입력 유효성 검사를 우회하고 예기치 않은 자바스크립트 실행을 트리거할 수 있습니다.
js-beautify에는 알려진 취약점인 Minimist에 대한 종속성이 있습니다. Minimist <=1.2.5는 index.js 파일, setKey() 함수(69-95행)를 통해 프로토타입 오염에 취약합니다. 프로토타입 오염 공격을 통해 입력 유효성 검사를 우회하고 예기치 않은 자바스크립트 실행을 트리거할 수 있습니다.
Couchbase 서버 분석 서비스로 보조 인덱스를 만들 때 인덱싱된 필드에 대해 사용자에게 보고되고 기록되는 몇 가지 유효성 검사가 있습니다. 코드 ASX0013의 오류 메시지는 중복된 필드 이름이 있다는 것을 보고하고 기록하는 여러 경로에서 사용됩니다. 이렇게 기록된 유효성 검사 메시지의 필드 이름은 삭제되지 않습니다. 또한 코드 ASX1079의 오류에는 삭제되지 않은 필드 이름이 있습니다.
encryption=full로 구성된 Analytics 원격 링크에 대해 TLS 연결을 설정하지 못하면 런타임은 인증을 위해 SCRAM-SHA를 사용하여 원격 클러스터에 대한 비-TLS 연결을 시도하여 (기본값이 아닌) TLS 포트를 검색하려고 시도합니다. SCRAM-SHA를 사용할 때 자격 증명이 공유되지는 않지만, 시스템이 TLS 연결을 지정한 규정된 암호화 수준을 다운그레이드하지 않을 것으로 예상할 수 있습니다. 이 폴백 메커니즘이 제거되었으므로 처음에 TLS 연결 설정에 실패하는 경우 링크 구성의 일부로 올바른 TLS 포트가 제공될 때까지 연결 링크가 실패할 뿐입니다.
백업 서비스가 감사 메시지를 기록하지 못하면 감사 로그 데이터가 삭제되지 않은 backup_service.log로 유출됩니다.
UTF-16 디코더가 무한 루프에 진입하여 프로그램이 충돌하거나 메모리가 부족해질 수 있는 golang.org/x/text/encoding/unicode 패키지를 발견했습니다.
couchbase-cli는 마스터 비밀번호를 프로세스 인수로 사용하는 매우 수명이 짧은 erlang 프로세스를 생성하므로, 그 시점에 프로세스 목록을 얻는 사람은 누구나 마스터 비밀번호를 갖게 됩니다. 이는 비밀 관리 기능을 사용하는 Couchbase Server 클러스터에만 영향을 줍니다.
RBAC 역할에 컬렉션 수준 권한(예: 쿼리_선택[src:_기본:컬렉션1])이 포함되어 있고 컬렉션 이름이 삭제되었다가 버킷에서 다시 만들어지는 경우에도 컬렉션 수준 권한은 계속 유효합니다. 따라서 컬렉션이 삭제될 때 해당 권한이 제거되었어야 하는 경우에도 해당 역할을 가진 사용자가 컬렉션에 액세스할 수 있습니다.
영향을 받는 Couchbase Server 버전에서는 인증 없이도 XDCR 내부 설정을 수정할 수 있습니다.
영향을 받는 Couchbase Server 버전에서는 “server-eshell” 명령을 사용할 때 명령줄 인수를 통해 Erlang ‘쿠키’가 ‘erl'로 전달되며, 이로 인해 ’couchbase-cli“ 프로세스 인수를 읽을 수 있는 모든 사람에게 ”쿠키‘가 유출됩니다. 쿠키는 클러스터에서 관리 작업을 수행하는 데 사용될 수 있으므로 비밀로 유지되어야 합니다.
파이썬에서 결함이 발견되었습니다. Python의 HTTP 클라이언트 코드에서 부적절하게 처리된 HTTP 응답으로 인해 HTTP 서버를 제어하는 원격 공격자가 클라이언트 스크립트를 무한 루프에 진입시켜 CPU 시간을 소모하도록 만들 수 있습니다. 이 문제는 개발자 미리 보기 기능인 애널리틱스 UDF를 사용하는 클러스터에만 영향을 줍니다.
샘플 버킷(맥주 샘플, 게임심 샘플, 여행 샘플)을 로드하는 동안 오류가 발생하면 내부 @ns_server 관리자 사용자의 비밀번호가 로그(debug.log, error.log, info.log, reports.log)에 유출될 수 있습니다. 관리 작업을 수행하는 데 @ns_server 계정을 사용할 수 있습니다.
클러스터 노드 추가를 수행하는 동안 클러스터 관리자(ns_server)의 충돌로 인해 개인 키가 로그 파일로 유출될 수 있습니다. 로그 파일에 액세스할 수 있는 사람은 클러스터에 대한 보안 네트워크 연결을 해독할 수 있습니다. TLS를 사용하는 경우 클러스터에 로그인하는 사용자 및 애플리케이션의 자격 증명을 획득할 수 있습니다.
진단/평가와 같은 진단 엔드포인트는 제한되며 루프백 네트워크에서만 실행할 수 있습니다. 그러나 CVE-2018-15728을 해결하기 위해 마련된 검사는 “X-Forwarded-For” 헤더에 루프백 주소가 포함되어 있는지 올바르게 검사하지 않습니다. 이 헤더를 조작하여 루프백 제한을 우회할 수 있습니다.
이 취약점은 RFC6890에 따라 비공개 네트워크 및 공유 주소 공간에서 시작된 요청으로 제한됩니다.
이러한 엔드포인트에 요청을 성공적으로 발행하려면 사용된 "X-Forwarded-For" 헤더에 관계없이 사용자에게 전체 관리자 권한이 필요합니다.
이 문제에 대한 해결 방법은 필요하지 않은 환경에서 "X-Forwarded-For" 헤더가 포함된 Couchbase Server 노드에 대한 요청을 방화벽으로 차단하는 것입니다.
인식: 무카히트 카라다그 / 프로다프트
인덱스 서비스는 여러 네트워크 프로세스인 쿼리포트, 데이터포트, 관리포트를 실행합니다. 이러한 프로세스는 다른 Couchbase 서비스와 통신하는 데 사용됩니다. 이러한 프로세스는 노드 간 통신에 참여하지만 SDK 애플리케이션과 직접 통신하지는 않습니다. 영향을 받는 Couchbase Server 버전에서 이러한 네트워크 프로세스는 인증을 강제하지 않으므로 인증되지 않은 사용자가 보낸 요청을 처리합니다.
쿼리포트 서버는 인덱스 스캔 결과를 통해 인증되지 않은 사용자에게 응답할 수 있습니다.
데이터포트 서버는 인증되지 않은 사용자가 인덱싱된 데이터를 수정할 수 있도록 허용할 수 있습니다.
관리포트 서버는 인증되지 않은 사용자가 인덱스 생성 및 삭제와 같은 DDL 작업을 수행할 수 있도록 허용할 수 있습니다.
가능한 해결 방법: 이 포트는 Couchbase Server의 내부 통신에만 사용되므로 네트워크 계층에서 비 Couchbase Server 노드 및 프로세스와의 연결/통신을 비활성화할 수 있습니다.
인증되지 않은 사용자는 클러스터 관리자에게 REST API 호출을 할 수 있습니다. 클러스터 관리자가 이전에 보지 못한 각 http 요청은 새로운 메트릭을 생성하게 됩니다. 각각의 새 메트릭은 약간의 메모리와 디스크 공간을 차지하므로 메모리 누수 및 디스크 공간 누수가 발생할 수 있습니다. 충분한 리소스가 사용되면 Couchbase Server 노드에 장애가 발생할 수 있습니다.
동기화 게이트웨이가 X.509 클라이언트 인증서를 사용하여 Couchbase Server로 인증하도록 구성된 경우, 관리자 REST API에 제공된 관리자 자격 증명이 무시되어 인증되지 않은 사용자의 권한이 에스컬레이션될 수 있습니다. 공용 REST API는 이 문제의 영향을 받지 않습니다.
해결 방법: 부트스트랩 구성 내에서 X.509 인증서 기반 인증을 사용자 이름 및 비밀번호 인증으로 대체합니다.
관리자가 클러스터에 신뢰할 수 없는 노드를 추가하면 비밀로 유지되어야 하는 클러스터 쿠키가 실수로 전송될 위험이 있습니다.
이 문제는 인증 기관이 서명한 인증서를 사용하여 TLS 암호화를 배포하여 해결할 수 있습니다. TLS를 사용하는 경우, Couchbase Server 버전 7.1.0부터 수신 노드에 신뢰할 수 있는 인증서가 있어야 합니다.
인식: 오브피르 하맘, EY 이스라엘 고급 보안 센터 보안 연구원
Couchbase Operator 2.2.0은 로그 수집을 간소화하는 최적화를 도입했습니다. 로그가 수집되면 지원 도구인 “cbopinfo”를 사용하여 의도된 리소스 상태 및 현재 리소스 상태에 대한 인사이트를 얻는 데 필요한 Kubernetes 리소스를 수집합니다. 영향을 받은 버전 이전에는 비밀 데이터가 삭제되었지만 새로운 수집 방법에서는 이 기능이 유지되지 않았습니다. 그 결과 로그 수집 범위 내에 비밀번호, 토큰, 개인키가 잘못 포함되어 로그에 포함되었을 수 있습니다. 기본적으로 이 범위는 검사 중인 Couchbase Server 클러스터가 있는 Kubernetes 네임스페이스로 제한됩니다. 예외는 -system 플래그를 지정한 경우이며, 이 경우 플랫폼의 모든 비밀이 노출됩니다. 로그는 고객 문제를 식별하고 해결하는 데 사용되므로 지정된 도구 버전으로 로그를 제공한 고객만 영향을 받습니다. 카우치베이스는 제공된 모든 영향을 받는 로그가 삭제되도록 합니다.
Couchbase 분석 서비스에서 사용하는 Apache Log4J 유틸리티의 중요한 문제는 잠재적인 원격 코드 실행(RCE) 및 민감한 데이터 추출을 방지하기 위해 업데이트가 필요합니다.
동기화 게이트웨이가 Couchbase Server에서 데이터를 읽고 쓰기 위해 사용하는 버킷 자격 증명이 버킷에 기록된 동기화 문서 내의 메타데이터에 안전하지 않게 저장되고 있었습니다. 읽기 액세스 권한이 있는 사용자가 이러한 자격 증명을 사용하여 쓰기 액세스 권한을 얻을 수 있었습니다. 이 문제는 동기화 게이트웨이가 x.509 클라이언트 인증서로 인증된 클러스터에는 영향을 미치지 않습니다. 또한 이 문제는 동기화 게이트웨이에서 공유 버킷 액세스가 사용 설정되어 있지 않은 클러스터에는 영향을 미치지 않습니다.
원격 클러스터 XDCR 자격 증명이 디버그 로그에서 유출될 수 있습니다. 이 문제는 로깅 중인 구성 키에 툼스톤 퍼지 타임스탬프가 첨부되어 있는 경우 발생하며, 카우치베이스 서버 7.0.0에서 추가되었습니다.
cbcollect_info 로그 수집의 일부로, Couchbase Server는 Erlang VM에서 실행 중인 모든 프로세스의 프로세스 정보를 수집합니다. 이 문제는 클러스터 관리자가 플러그 가능한 UI(쿼리 워크벤치 등)에서 특정 서비스로 HTTP 요청을 전달할 때 발생합니다. 백트레이스에서 HTTP 요청에 포함된 기본 인증 헤더에는 UI 요청을 처리하는 노드의 “@” 사용자 자격 증명이 있습니다. 문제가 발생하려면 클러스터 관리자가 플러그 가능한 UI 요청을 서비스하는 정확한 순간에 프로세스 정보가 트리거되어야 합니다.
카우치베이스 서버 명령줄 도구에서 사용되는 1.26.5 이전의 urllib3에서 문제가 발견되었습니다. 이러한 도구에 권한 구성 요소에 @ 문자가 많이 포함된 URL이 제공되면 권한 정규식이 치명적인 역추적을 나타내며, URL이 매개 변수로 전달되거나 HTTP 리디렉션을 통해 리디렉션되는 경우 명령줄 도구의 서비스 거부를 유발할 수 있습니다.
Python용 3.3.2 이전 암호화 패키지에서 Couchbase Server 명령줄 도구에서 사용하는 것처럼 다중 GB 값을 대칭적으로 암호화하기 위한 특정 업데이트 호출 시퀀스에서 해당 도구에서 정수 오버플로 및 버퍼 오버플로가 발생할 수 있습니다.
이로 인해 데이터 서비스를 사용할 수 없게 될 수 있습니다. 방화벽을 사용하여 애플리케이션의 네트워크 트래픽만 Couchbase Server 클러스터와 통신할 수 있도록 허용하는 것이 좋습니다.
이로 인해 데이터 서비스를 사용할 수 없게 될 수 있습니다. 방화벽을 사용하여 애플리케이션의 네트워크 트래픽만 Couchbase Server 클러스터와 통신할 수 있도록 허용하는 것이 좋습니다.
외부 인증에 사용되는 LDAP 또는 Active Directory 서버가 안전하지 않은 비인증 바인딩을 허용하도록 구성된 경우, Couchbase 서버 클러스터 관리자는 외부 사용자가 빈 비밀번호로 인증될 수 있도록 허용합니다.
이를 방지하기 위해 결과 코드가 "unwillingToPerform"인 인증되지 않은 바인드 요청을 실패하도록 LDAP 서버를 구성할 수 있습니다.
클라이언트에서 악의적으로 조작된 재협상 ClientHello 메시지를 전송할 경우 TLS 서버가 충돌할 수 있는 여러 보안 문제가 OpenSSL에서 해결되었습니다.
merge() 함수를 수정하여 서비스 거부를 일으킬 수 있는 Couchbase UI에서 사용되는 Angular의 문제입니다.
일반 테이블 표현식 N1QL 쿼리가 RBAC 보안 제어를 올바르게 적용하지 않아 필요한 권한이 없는 사용자에게 읽기 액세스 권한을 부여했습니다.
보기 엔진에 대해 감사가 활성화되어 있고 노드 간 암호화가 활성화된 경우 드물게 트리거되는 조건입니다. 카우치베이스 서버가 TLS를 통해 들어오는 내부 명령(보기 병합 요청)의 원격 호스트 이름 및 포트를 확인할 수 없는 경우, 관리자 권한이 있는 내부 사용자 @ns_server에 대한 리댁트되지 않은 Base64 인코딩된 인증 정보가 포함된 오류가 기록됩니다.
임시 해결 방법은 업그레이드를 수행할 수 있을 때까지 뷰 엔진 감사 또는 노드 간 암호화를 비활성화하는 것입니다.
세션 ID가 포함된 감사 이벤트가 감사 로그 및 debug.log에 기록될 때 Couchbase Server는 사용자의 임시 세션 쿠키를 기록했습니다. 로깅 데이터에 액세스할 수 있는 공격자는 이를 사용하여 인증된 사용자를 사칭할 수 있었습니다.
buger/jsonparser(Go용 JSON 파서) 라이브러리의 보안 문제로 인해 공격자가 Couchbase 서버 검색 서비스에서 서비스 거부(DOS)를 일으킬 수 있습니다.
버전 4.5.13 및 5.0.3 이전 버전에서 Couchbase 서버 분석 서비스에서 사용하는 Apache HttpClient는 라이브러리에 전달된 요청 URI의 잘못된 권한 구성 요소를 java.net.URI 객체로 잘못 해석하여 요청 실행을 위해 잘못된 대상 호스트를 선택할 수 있습니다.
요청에 사용되는 Python urllib3 라이브러리와 이를 차례로 Couchbase CLI에서 사용하는 Python urllib3 라이브러리에는 1.24.2 이전 버전에서 보안 문제가 있습니다. 이 라이브러리는 원하는 CA 인증서 세트가 CA 인증서의 OS 저장소와 다른 특정 경우를 잘못 처리하여 확인 실패가 올바른 결과인 상황에서 SSL 연결이 성공하는 결과를 초래합니다.
Couchbase Server REST 엔드포인트가 알 수 없는 요청을 받으면 해당 요청은 debug.log 및 info.log에 오류로 기록됩니다. 이 로그에는 리댁트되지 않은 Base64 인코딩된 인증 정보가 포함됩니다. 오류 메시지는 UI의 로그 탭에도 표시됩니다.
이 문제의 영향을 받는 버전에서는 클러스터에서 내보낸 모든 로그를 수동으로 삭제해야 합니다. 클러스터를 업그레이드하면 향후 로그 항목에 @ns_server 비밀번호가 표시되지 않도록 자동으로 방지됩니다.
관리자 권한이 있는 내부 사용자에 대한 수정되지 않은 Base64 인코딩된 인증 정보인 @cbq-engine-cbauth 및 @index-cbauth를 사용하여 내부 나머지 호출(/listCreateTokens, /listRebalanceTokens, /listMetadataTokens)이 indexer.log에 로그인되고 있습니다.
Erlang 노드 간의 통신은 공유 비밀(일명 “매직 쿠키”)을 교환하여 이루어집니다. 매직 쿠키가 로그의 내용에 포함되는 경우가 있습니다. 공격자는 이 쿠키를 사용하여 Erlang 노드에 접속하고 Erlang 노드를 실행하는 시스템에서 OS 수준 명령을 실행할 수 있습니다.
인식: 오브피르 하맘, EY 이스라엘 고급 보안 센터 보안 연구원
슬로우로리스는 공격자가 주기적으로 추가 헤더를 보내고 종료되지 않는 요청을 전송하여 대상 웹 엔드포인트를 다운시킬 수 있는 일종의 서비스 거부 공격입니다. HTTP 헤더 수신 시 시간 초과를 줄이는 것이 이 공격을 효과적으로 완화하는 방법이며, 클러스터 관리 및 뷰 REST 엔드포인트에서 이러한 접근 방식을 사용합니다.
전체 텍스트 검색 사용자 인터페이스는 일부 심각도가 높은 보안 취약점이 존재하는 것으로 알려진 AngularJS 1.4.7을 사용합니다. 이러한 AngularJS 라이브러리는 이러한 취약점을 해결한 최신 버전의 Angular로 업데이트되었습니다.
Java 6(이전 SDK 기준 버전인 JDK 1.6)은 호스트 이름 확인을 기본적으로 지원하지 않았습니다. SDK가 Java 7(Java 1.7)로 기본 버전으로 전환되면서 지원을 추가할 수 있었습니다. 이는 jvm-core 1.7.11(java-client 2.7.11로 변환됨)에서 발생했습니다. 이전 버전에서는 그에 따라 사용자 지정하는 기능이 노출되지 않기 때문에 해결 방법으로 수동으로 추가할 수 없습니다. 이전 동작에 의존하는 애플리케이션을 중단시키지 않기 위해 호스트 이름 확인은 여전히 기본적으로 비활성화되어 있지만 SDK 구성(CouchbaseEnvironment 클래스)에서 활성화할 수 있습니다.
프로젝터 프로세스에 의해 노출된 /settings REST 엔드포인트는 관리자가 구성 업데이트 및 성능 프로필 수집과 같은 다양한 작업에 사용할 수 있는 엔드포인트입니다. 이 엔드포인트는 인증되지 않았으며 인증된 사용자만 이러한 관리 API에 액세스할 수 있도록 업데이트되었습니다.
인식: Apple 보안 팀
서버 REST API는 사용자가 웹 브라우저의 사용자/비밀번호 대화 상자를 통해 인증할 수 있도록 인증되지 않은 요청에 대해 {{WWW-Authenticate}} 헤더로 응답합니다. 문제는 이러한 자격 증명이 브라우저에 캐시되어 관리자가 브라우저를 사용하여 REST API 요청의 결과를 확인한 경우 해커가 CSRF를 사용하여 클러스터를 공격할 수 있다는 것입니다.
이 동작은 couchbase-cli를 사용하여 비활성화할 수 있습니다(couchbase-cli 설정-보안 -set -disable-www-authenticate 1 -c localhost:8091 -u -p ). 이 기능은 기존 도구나 스크립트를 손상시킬 수 있으므로 기본적으로 비활성화되어 있지 않습니다.
인식: Apple 보안 팀
일부 기업에서는 REST API 엔드포인트가 REST 응답에 보안 관련 헤더를 포함하도록 요구합니다. 일반적으로 X-Frame-Options 및 X-Content-Type-Options와 같은 헤더가 권장되지만, 일부 정보 보안 전문가들은 HTML 엔드포인트에 더 일반적으로 적용되는 X-Permitted-Cross-Domain-Policies 및 X-XSS-Protection도 포함할 것을 추가로 요구하기도 합니다. 이러한 헤더는 이제 Couchbase 서버 보기 REST API(포트 8092)의 응답에 포함됩니다.
동기화 게이트웨이의 공용 REST API에 액세스할 수 있는 공격자는 “_all_docs” 엔드포인트의 “startkey” 및 “endkey” 매개 변수를 통해 추가 N1QL 문을 발행하고 민감한 데이터를 추출하거나 임의의 N1QL 함수를 호출할 수 있었습니다. CPU 집약적인 작업으로 중첩 쿼리를 실행함으로써 리소스 사용량 증가 및 서비스 거부 상태를 유발할 수 있었습니다. 이 문제를 완화하기 위해 이 REST 엔드포인트에 대한 외부 액세스가 차단되었으며, _all_docs 엔드포인트는 Couchbase Mobile 복제에 필요하지 않습니다.
인식: 데니스 베르너/하이솔루션즈 AG
버그 보고서의 일부로 Couchbase에 제출된 시스템 정보에는 개인정보 보호를 위해 로그가 삭제되었더라도 현재 시스템에 로그인한 모든 사용자의 사용자 이름이 포함되어 있습니다.
사용자 이름이 로그에 올바르게 태그되고 로그가 삭제될 때 해시 처리되도록 수정되었습니다.
이벤트 서비스는 내부 트래픽 전용으로 할당된 포트에서 자격 증명이 필요하지 않은 HTTP 엔드포인트를 통해 시스템 진단 프로필을 노출합니다. 이 문제가 해결되어 이제 액세스하려면 유효한 자격 증명이 필요합니다.
카우치베이스 서버는 기본적으로 TCP/8091 및/또는 TCP/18091에서 사용할 수 있는 ‘/diag/eval’ 엔드포인트를 노출했습니다. 인증됨 ‘전체 관리자‘ 역할이 할당되면 API의 ‘diag/eval’ 엔드포인트로 임의의 Erlang 코드를 보낼 수 있으며, 이후 해당 코드는 Couchbase를 시작하는 데 사용된 사용자 권한으로 기본 운영 체제에서 실행됩니다.
인식: Apple 보안 팀
노드 내 통신에 사용되는 쿠키가 안전하게 생성되지 않았습니다. 카우치베이스 서버는 erlang:now()를 사용하여 PRNG를 시딩하기 때문에 잠재적인 임의 시드를 위한 작은 검색 공간이 생겨 쿠키를 무차별 대입하고 원격 시스템에 대해 코드를 실행하는 데 사용될 수 있습니다.
인식: Apple 보안 팀
보조 인덱싱은 collatejson을 사용하여 인덱싱할 항목을 인코딩합니다. 인덱스 항목에 \t, , 와 같은 특정 문자가 포함된 경우 인코딩된 문자열이 예상보다 훨씬 커져 버퍼 오버런이 발생하여 인덱서 서비스가 충돌하고 다시 시작되는 원인이 되었습니다. 이 문제는 이제 모든 입력에 대해 버퍼가 항상 필요에 따라 커지도록 수정되었습니다.
인식: D-Trust GmbH
잘못된 원격 클러스터 인증서가 참조 생성의 일부로 입력된 경우, XDCR은 인증서 서명을 파싱하고 확인하지 않았습니다. 그런 다음 잘못된 인증서를 수락하고 향후 원격 클러스터에 대한 연결을 설정하는 데 사용하려고 시도했습니다. 이 문제는 수정되었습니다. 이제 XDCR은 인증서의 유효성을 철저히 확인하여 유효하지 않은 인증서로 원격 클러스터 참조가 생성되는 것을 방지합니다.
5.0 이전 버전의 Couchbase Server에서 “default”라는 버킷은 인증 없이 읽기 및 쓰기 액세스를 허용하는 특수 버킷이었습니다. 5.0 버전에서는 “기본'을 포함한 모든 버킷의 동작이 충분한 권한을 가진 인증된 사용자만 액세스를 허용하도록 변경되었습니다. 그러나 이 버킷의 속성이 수정된 경우 ”기본“ 버킷에 대한 인증되지 않은 무단 액세스가 허용되었습니다. 이 문제는 수정되었습니다.