Uploaded image for project: 'Kafka'
  1. Kafka
  2. KAFKA-14063

CVE-2022-34917: Kafka message parsing can cause ooms with small antagonistic payloads

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 3.2.0
    • 2.8.2, 3.3.0, 3.0.2, 3.1.2, 3.2.3
    • generator
    • None

    Description

      When parsing code receives a payload for a variable length field where the length is specified in the code as some arbitrarily large number (assume INT32_MAX for example) this will immediately try to allocate an ArrayList to hold this many elements, before checking whether this is a reasonable array size given the available data. 

      The fix for this is to instead throw a runtime exception if the length of a variably sized container exceeds the amount of remaining data. Then, the worst a user can do is force the server to allocate 8x the size of the actual delivered data (if they claim there are N elements for a container of Objects (i.e. not a byte string) and each Object bottoms out in an 8 byte pointer in the ArrayList's backing array).

      This was identified by fuzzing the kafka request parsing code.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              dpcollins-google Daniel Collins
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: