Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Base64 backports 6.0.x/v2 #9292

Merged
merged 9 commits into from
Jul 28, 2023

Commits on Jul 25, 2023

  1. util/base64: add test for long string w RFC4648

    (cherry picked from commit 85ae1d2)
    inashivb committed Jul 25, 2023
    Configuration menu
    Copy the full SHA
    bb242a0 View commit details
    Browse the repository at this point in the history
  2. util/base64: skip any invalid char for RFC2045

    RFC 2045 states that any invalid character should be skipped over, this
    is the RFC used by mime handler in Suricata code to deal with base64
    encoded data.
    So far, only spaces were skipped as a part of implementation of this
    RFC, extend it to also skip over any other invalid character. Add
    corresponding test.
    
    (cherry picked from commit e46b033)
    inashivb committed Jul 25, 2023
    Configuration menu
    Copy the full SHA
    328e247 View commit details
    Browse the repository at this point in the history
  3. util/base64: fix padding bytes for trailing data

    Padding bytes for the last remainder data should be as follows:
    
    Case   |    Remainder bytes     |    Padding
    ----------------------------------------------
      I    |              1         |      3
      II   |              2         |      2
      III  |              3         |      1
    
    However, we calculate the decoded_bytes with the formula:
    decoded_bytes = ASCII_BLOCK - padding
    
    this means for Case I when padding is 3 bytes, the decoded_bytes would
    be 0. This is incorrect for any trailing data. In any of the above
    cases, if the parsing was successful, there should at least be 1 decoded
    byte.
    
    (cherry picked from commit 095c335)
    inashivb committed Jul 25, 2023
    Configuration menu
    Copy the full SHA
    f7b5bda View commit details
    Browse the repository at this point in the history
  4. util/base64: check for dest buf size in last block

    Just like the check for destination buffer size done previously for
    complete data, it should also be done for the trailing data to avoid
    goind out of bounds.
    
    (cherry picked from commit 0e8b451)
    inashivb committed Jul 25, 2023
    Configuration menu
    Copy the full SHA
    cb9dd4b View commit details
    Browse the repository at this point in the history
  5. util/base64: check dest buf size to hold 3Bytes

    The destination buffer should be able to hold at least 3 Bytes during
    the processing of the last block of data. If it cannot hold at least 3
    Bytes, then that may lead to dynamic buffer overflow while decoding.
    
    (cherry picked from commit 62d7821)
    inashivb committed Jul 25, 2023
    Configuration menu
    Copy the full SHA
    9308a6c View commit details
    Browse the repository at this point in the history
  6. util/base64: update test macro to use user data

    (cherry picked from commit c2ae87e)
    inashivb committed Jul 25, 2023
    Configuration menu
    Copy the full SHA
    3661231 View commit details
    Browse the repository at this point in the history
  7. util/base64: fix tests for RFC2045

    (cherry picked from commit 49ad383)
    inashivb committed Jul 25, 2023
    Configuration menu
    Copy the full SHA
    6b42c09 View commit details
    Browse the repository at this point in the history
  8. util/mime: skip over any invalid char

    For certain edge case handling for spaces, spaces were handled
    particularly in the remainder processing functions. Make sure that now
    that as per RFC 2045, util-base64 would skip over any invalid char, the
    edge cases in MIME processor also be handled the same way.
    
    This completes the work done in e46b033.
    
    Ticket 6135
    Ticket 6207
    
    (cherry picked from commit 789353b)
    inashivb committed Jul 25, 2023
    Configuration menu
    Copy the full SHA
    cdd6e20 View commit details
    Browse the repository at this point in the history

Commits on Jul 26, 2023

  1. Configuration menu
    Copy the full SHA
    77faa88 View commit details
    Browse the repository at this point in the history