Flowspec NLRI with zero length causes NLRI decoder to read beyond
validated data, which may trigger a stack buffer overflow.
Reported-By: Tobias Klein <tk@trapkit.de>
Target: patch
uint pxlen = 0;
/* Decode dst prefix */
- if (data[0] == FLOW_TYPE_DST_PREFIX)
+ if (dlen && (data[0] == FLOW_TYPE_DST_PREFIX))
{
px = flow_read_ip4_part(data);
pxlen = flow_read_pxlen(data);
uint pxlen = 0;
/* Decode dst prefix */
- if (data[0] == FLOW_TYPE_DST_PREFIX)
+ if (dlen && (data[0] == FLOW_TYPE_DST_PREFIX))
{
px = flow_read_ip6_part(data);
pxlen = flow_read_pxlen(data);