
적절한 인가 없이 데이터에 접근하기 위해 집계 파이프라인을 제작하며, 이는 MongoDB >v8.0 <8.0.7, >v7.0 <7.0.19, >v6.0 <6.0.22에서 $mergeCursors의 부적절한 처리로 인해 발생한다.
aggregation pipeline을 조작하여 적절한 권한 없이 데이터에 접근합니다. 이는 MongoDB >v8.0 <8.0.7, >v7.0 <7.0.19, >v6.0 <6.0.22에서 $mergeCursors의 부적절한 처리로 인해 발생합니다.
어렵지 않습니다. pip3를 사용해 requirements를 설치하기만 하면 됩니다: pip install -r requirements
python3 CVE-2025-6713
직접 테스트하려면 다음을 수행하세요.
4, 5, 6, 7, 9, 10행:
mconnect = "mongodb://localhost:27017"
dbname = ""
acollection = ""
rcollection = ""
USERNAME = ""
PASSWORD = ""
다음을 변경할 수 있습니다:
mconnect를 자신의 mongo URI로 변경하여 자신의 데이터베이스에 연결하세요.
dbname을 데이터베이스 이름으로 변경하세요 (리포지토리를 사용, 수정 또는 포크하여 1개 이상의 DB를 테스트할 수 있습니다).
acollection을 공개적으로 접근 가능한 컬렉션으로 변경하세요.
rcollection을 공개적으로 접근할 수 없는 (제한된) 컬렉션으로 변경하세요.
USERNAME과 PASSWORD는 상식적으로 아실 것이라고 생각합니다.
17, 18행 (setupTest(db) 내, [acollection].insert_many([... 이후):
{"name": "pubthing1", "data": "pub stuff"},
{"name": "pubthing2", "data": "pub stuff"}
여기서 스크립트는 단지 DB에 테스트 데이터를 삽입하는 것입니다 (특정 데이터일 필요가 없으며, 문자 그대로 무엇이든 될 수 있습니다).
22, 23행 (setupTest(db) 내, [rcollection].insert_many([... 이후):
{"name": "secret", "stuff": "my national insurance number"},
{"name": "shhhh", "boo": "location of pringles in my house"}
이것도 문자 그대로 무엇이든 될 수 있습니다. 재미있게 놀아보세요.
나머지는 변경하지 마세요. 무슨 작업을 하는지 알지 못하면 혼란스럽고 화가 날 뿐입니다.