🇰🇷 한글 설명
MongoDB Go Driver의 클라이언트 수준 벌크 쓰기 작업에서 데이터베이스 이름에 예약된 구분자가 포함될 경우 이를 이스케이프 처리하지 않는 취약점이 발견되었습니다. 신뢰할 수 없는 입력을 데이터베이스 이름으로 전달하는 애플리케이션은 의도하지 않은 데이터베이스나 컬렉션에 쓰기 작업이 수행될 수 있습니다. 이 취약점은 Client.BulkWrite API에만 영향을 미칩니다.
💡 쉬운 설명
사용자가 입력한 데이터베이스 이름에 특수 문자가 섞여 있으면, 프로그램이 엉뚱한 데이터 저장소에 데이터를 저장할 수 있는 문제입니다. 공격자가 이름을 조작하여 원래 저장하려던 곳이 아닌 다른 곳에 데이터를 써버릴 위험이 있습니다.
🇺🇸 원문 (English)
The MongoDB Go Driver's client-level bulk write operation may accept a caller-supplied database name containing a reserved separator character without escaping it before the name is used to build the target namespace for the operation. An application that passes untrusted input as a database name could therefore have the write directed at a database and collection other than the ones it intended. Only the Client.BulkWrite API is affected.
📍 영향받는 시스템
MongoDB Go Driver (Client.BulkWrite API를 사용하는 버전)
⚔️ 공격 벡터
사용자로부터 입력받은 데이터베이스 이름을 검증 없이 Client.BulkWrite API의 인자로 전달하여 발생
🛡️ 대응 방법
MongoDB Go Driver를 최신 보안 패치가 적용된 버전으로 업데이트하고, 사용자 입력값에 대한 엄격한 검증 로직을 구현하십시오.
🔧 검증 코드
출력된 결과에서 현재 프로젝트에서 사용 중인 MongoDB Go Driver의 버전을 확인하십시오.
go list -m all | grep mongo