Skip to content
  • Fabio Estevam's avatar
    net: Check for the minimum IP fragmented datagram size · b85d130e
    Fabio Estevam authored and Tom Rini's avatar Tom Rini committed
    Nicolas Bidron and Nicolas Guigo reported the two bugs below:
    
    "
    ----------BUG 1----------
    
    In compiled versions of U-Boot that define CONFIG_IP_DEFRAG, a value of
    `ip->ip_len` (IP packet header's Total Length) higher than `IP_HDR_SIZE`
    and strictly lower than `IP_HDR_SIZE+8` will lead to a value for `len`
    comprised between `0` and `7`. This will ultimately result in a
    truncated division by `8` resulting value of `0` forcing the hole
    metadata and fragment to point to the same location. The subsequent
    memcopy will overwrite the hole metadata with the fragment data. Through
    a second fragment, this can be exploited to write to an arbitrary offset
    controlled by that overwritten hole metadata value.
    
    This bug is only exploitable locally as it requires crafting two packets
    the first of which would most likely be dropped through routing due to
    its unexpectedly low Total Length. However, this bug can potentially be
    exploited to root linux based embedded devic...
    b85d130e