OOBR in rpcap client in libpcap before 1.10.7
The rpcap client code that processes a RPCAP_MSG_PACKET message received from the server incorrectly validates its headers.
7 records
The rpcap client code that processes a RPCAP_MSG_PACKET message received from the server incorrectly validates its headers.
rpcapd can allocate up to 65536 bytes per each RPCAP_MSG_UPDATEFILTER_REQ or RPCAP_MSG_STARTCAP_REQ message received from the client, but it never frees the memory, so it leaks memory even under normal use.
libpcap BPF interpreter treats the offset in the 'ja L' BPF instruction as a signed integer to implement looping via backward jumps, but it does not limit the number of loop iterations.
libpcap BPF interpreter for the 'div #k' and 'mod #k' ALU instructions does not check whether the immediate value is zero.
libpcap BPF interpreter calls abort() if it encounters a BPF instruction that has an invalid opcode.
libpcap BPF interpreter detects neither reaching the end of the filter program buffer due to lack of a return instruction nor executing a jump instruction with an offset that translates to a pointer outside of the buffer…
In BPF instructions that load/store a value from/to a scratch memory register the register index is an unsigned 32-bit integer and must not exceed 15, but libpcap BPF interpreter does not validate the value.