diff --git a/CHANGES b/CHANGES index a2c32fa559..1b15224f9a 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,7 @@ +6.0.0-dev.487 | 2023-05-03 09:30:55 -0700 + + * Add additional length check to IEEE 802.11 analyzer (Tim Wojtulewicz, Corelight) + 6.0.0-dev.484 | 2023-05-03 14:18:03 +0100 * SSL: do not try to disable failed analyzer (Johanna Amann, Corelight) diff --git a/VERSION b/VERSION index 6d978e0fb6..fc863ffb05 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -6.0.0-dev.484 +6.0.0-dev.487 diff --git a/src/packet_analysis/protocol/ieee802_11/IEEE802_11.cc b/src/packet_analysis/protocol/ieee802_11/IEEE802_11.cc index df9a8b0f26..bd9d913f78 100644 --- a/src/packet_analysis/protocol/ieee802_11/IEEE802_11.cc +++ b/src/packet_analysis/protocol/ieee802_11/IEEE802_11.cc @@ -31,6 +31,12 @@ bool IEEE802_11Analyzer::AnalyzePacket(size_t len, const uint8_t* data, Packet* if ( (data[1] & 0x03) == 0x03 ) len_80211 += packet->L2_ADDR_LEN; + if ( len_80211 >= len ) + { + Weird("truncated_802_11_header", packet); + return false; + } + // Look for the QoS indicator bit. if ( (fc_80211 >> 4) & 0x08 ) {