Squashed commit of the following:
commit
a0a75674bd8dd314db8551a187375ab5fbb3bc50
Author: Nihal Desai <nihdesai@cisco.com>
Date: Fri Mar 12 01:28:56 2021 -0500
http2_inspect: alert on uppercase header name encoded in HPACK
EVENT_TOO_MANY_STREAMS = 27,
EVENT_INVALID_RST_STREAM_FRAME = 28,
EVENT_BAD_RST_STREAM_SEQUENCE = 29,
+ EVENT_HEADER_UPPERCASE = 30,
EVENT__MAX_VALUE
};
INF_TOO_MANY_STREAMS = 42,
INF_INVALID_RST_STREAM_FRAME = 43,
INF_BAD_RST_STREAM_SEQUENCE = 44,
+ INF_HEADER_UPPERCASE = 45,
INF__MAX_VALUE
};
bytes_consumed, partial_bytes_consumed, decoded_header_buffer,
decoded_header_length, partial_bytes_written, name))
return false;
+
+ const uint8_t* buff = name.start();
+ for (int i = 0; i < name.length(); i++)
+ {
+ if (buff[i] >= 'A' and buff[i] <= 'Z')
+ {
+ *infractions += INF_HEADER_UPPERCASE;
+ events->create_event(EVENT_HEADER_UPPERCASE);
+ break;
+ }
+ }
}
bytes_consumed += partial_bytes_consumed;
bytes_written += partial_bytes_written;
{ EVENT_TOO_MANY_STREAMS, "excessive concurrent HTTP/2 streams" },
{ EVENT_INVALID_RST_STREAM_FRAME, "invalid HTTP/2 rst stream frame" },
{ EVENT_BAD_RST_STREAM_SEQUENCE, "HTTP/2 rst stream frame sent at invalid time" },
+ { EVENT_HEADER_UPPERCASE, "uppercase HTTP/2 header field name" },
{ 0, nullptr }
};