🇰🇷 한글 설명
MongoDB C# 드라이버의 문서 교체 코드 경로에서 요소 이름 및 형태에 대한 검증이 누락되었습니다. 이로 인해 신뢰할 수 없는 입력값이 데이터가 아닌 쿼리 언어의 특수 요소로 해석되어 데이터베이스 업데이트 로직으로 실행될 수 있습니다.
💡 쉬운 설명
데이터를 저장하는 과정에서 검사 과정이 빠져 있어, 공격자가 입력창에 특수한 명령어를 넣으면 데이터가 아닌 명령어로 작동할 수 있습니다. 이를 통해 공격자가 의도한 대로 데이터베이스를 조작할 위험이 있습니다.
🇺🇸 원문 (English)
A MongoDB C# driver document-replacement code path omits the element-name/shape validation that the equivalent write paths apply, so a value supplied as a replacement is forwarded to the server without neutralization of query-language special elements. An application that passes untrusted, loosely-typed input as a replacement value therefore allows that input to be interpreted by the database as update logic rather than as data, executing under the application's own database credentials. Applications using strongly-typed document mappings are not affected.
📍 영향받는 시스템
MongoDB C# Driver (Strongly-typed mapping을 사용하지 않는 애플리케이션)
⚔️ 공격 벡터
검증되지 않은 느슨한 타입(loosely-typed)의 입력을 문서 교체 값으로 전달하여 쿼리 명령 실행
🛡️ 대응 방법
MongoDB C# 드라이버를 최신 보안 패치 버전으로 업데이트하거나, 데이터 입력 시 강력한 타입 매핑(Strongly-typed mapping)을 사용하도록 수정
🔧 검증 코드
출력된 MongoDB.Driver의 버전을 확인하여 취약점이 해결된 최신 버전인지 대조
dotnet list package | grep MongoDB.Driver