Encrypted predicates inside a $vectorSearch prefilter should get replaced with encryption placeholders

XMLWordPrintableJSON

    • Query Integration
    • Fully Compatible
    • ALL
    • v8.3, v8.2, v8.0, v7.0
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      The $vectorSearch stage allows users to specify a prefilter (via the filter bson element). This filter spec could potentially reference encrypted fields.

      Currently, the query analysis code does not replace encrypted predicates in the prefilter with encryption placeholders, meaning that if a user has specified a pre-filter using an encrypted field, the corresponding sensitive data is leaked via the plaintext request.

      While $vectorSearch is not listed as a supported stage with CSFLE, nothing prevents a user from querying an encrypted collection with a $vectorSearch stage. To fix this issue, the stage analyzer functor for $vectorSearch should analyze the filter, such that encrypted field references are replaced with encryption placeholders.

      NOTE: This ticket has been created as Mongo Internal deliberately, and should remain this way until this vulnerability is patched.

            Assignee:
            Santiago Roche
            Reporter:
            Santiago Roche
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: