🇰🇷 한글 설명
MongoDB C# 드라이버의 FindOneAndReplace 메서드에서 최상위 필드명이 달러 기호($)로 시작하는 교체 문서를 적절히 거부하지 않는 취약점입니다. 공격자가 사용자 입력 필드명을 통해 이러한 문서를 생성할 수 있다면, 서버가 전체 교체 대신 업데이트 연산자를 적용하여 의도치 않은 방식으로 문서를 수정할 수 있습니다.
💡 쉬운 설명
데이터를 통째로 바꾸는 기능이 사용자의 입력에 따라 데이터의 특정 부분만 몰래 수정하는 명령어로 변질될 수 있는 문제입니다. 이로 인해 데이터베이스 내의 특정 정보가 공격자가 원하는 대로 조작될 위험이 있습니다.
🇺🇸 원문 (English)
The MongoDB C# Driver does not reject replacement documents whose top-level field names begin with a dollar sign in FindOneAndReplace, unlike other replace operations. An application that builds such a document from user-supplied field names can have the server apply update operators instead of a full replacement. The effect is limited to the document matched by the application's own filter, whose contents can be modified in ways the application did not intend.
📍 영향받는 시스템
MongoDB C# Driver (FindOneAndReplace 메서드를 사용하는 버전)
⚔️ 공격 벡터
사용자로부터 입력받은 필드명을 검증 없이 FindOneAndReplace의 교체 문서로 사용할 경우 발생
🛡️ 대응 방법
MongoDB C# 드라이버를 최신 보안 패치 버전으로 업데이트하고, 사용자 입력 필드명에 대한 엄격한 검증 로직을 구현하십시오.
🔧 검증 코드
출력된 MongoDB.Driver의 버전을 확인하여 취약점이 해결된 최신 버전인지 대조하십시오.
dotnet list package | grep MongoDB.Driver
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N
💻 영향받는 소프트웨어
IBM WebSphere Application Server