Enforce internal user for commitTransaction/abortTransaction for prepared transaction

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Unresolved
    • Priority: Major - P3
    • 8.2.13, 8.0.29, 7.0.40, 8.3.8, 9.0.0-rc2
    • Affects Version/s: None
    • Component/s: None
    • None
    • Replication
    • ALL
    • v9.0, v8.3, v8.2, v8.0, v7.0
    • Hide

      Claude was able to write a reproducer for this issue: https://github.com/10gen/mongo/compare/pierre.turin/CVE-852_repro

      Show
      Claude was able to write a reproducer for this issue: https://github.com/10gen/mongo/compare/pierre.turin/CVE-852_repro
    • Repl 2026-07-06, Repl 2026-07-20, Repl 2026-08-03, Repl 2026-08-17
    • 200
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      Fix CVE-851. See description of the bug in SECBUG-1301 or in this doc.

      Claude was able to write a reproducer for this issue: https://github.com/10gen/mongo/compare/pierre.turin/CVE-852_repro

      TLDR of the issue: An attacker can send a commitTransaction or abortTransaction directly to a shard's primary for a prepared transaction it previously started, bypassing the txn coordinator. In doing so, they can set the shard's cluster timestamp far in the future, and cause torn reads. They can also abort their own transaction on one of the shards and cause an incomplete commit. The attacker can only tamper with their own transactions, not the transactions of other users, but can result with torn reads or incomplete transaction results visible to other users.

      To fix this bug we should make sure any commitTransaction/abortTransaction are properly authorized (they come from the transaction coordinator).

       

            Assignee:
            Pierre Turin
            Reporter:
            Pierre Turin
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: