Nfdump Nfcapd Multiple Vulnerabilities
By tampering the flowset_length parameter within an IPFIX packet, an attacker can trigger a denial of service condition within nfcapd. Line 931 in file ipfix.c decrements the size_left value by 4, and by triggering a condition where the initial value is less than 4, eg. 1 as in the below POC, an integer underflow occurs. This wraps the size_left value (indicating the remaining packet payload to be processed) to 4294967293, resulting in nfcapd continuously processing the heap-based buffer allocated for the input packet (allocated at line 381 of nfcapd.c) until it eventually hits invalid memory and crashes with a segmentation fault. By submitting an IPFIX packer with a flowset_length value of 0, an attacker can trigger a denial of service condition within nfcapd. Line 931 in file ipfix.c decrements the size_left value by 4, and by triggering a condition where the initial value is 0, an integer underflow occurs. This wraps the size_left value (indicating the remaining packet payload to be processed) to 4294967295, resulting in nfcapd continuously processing the heap-based buffer allocated for the input packet (allocated at line 381 of nfcapd.c) until it eventually hits invalid memory and crashes with a segmentation fault. By submitting a Netflow V9 packet with a flowset_length value of 0, an attacker can trigger a denial of service condition within nfcapd.