libpcp in Performance Co-Pilot (PCP) before 3.6.5 allows remote attackers to cause a denial of service and possibly execute arbitrary code via (1) a PDU with the numcreds field value greater than the number of actual elements to the _pmDecodeCreds function in pcreds.c; (2) the string byte number value to the _pmDecodeNameList function in ppmns.c; (3) the numids value to the _pmDecodeIDList function in ppmns.c; (4) unspecified vectors to the _pmDecodeProfile function in pprofile.c; the (5) status number value or (6) string number value to the _pmDecodeNameList function in ppmns.c; (7) certain input to the _pmDecodeResult function in presult.c; (8) the name length field (namelen) to the DecodeNameReq function in ppmns.c; (9) a crafted PDUFETCH request to the _pmDecodeFetch function in pfetch.c; (10) the namelen field in the _pmDecodeInstanceReq function in pinstance.c; (11) the buflen field to the _pmDecodeText function in ptext.c; (12) PDUINSTANCE packets to the _pmDecodeInstance in pinstance.c; or the (13) cnumpmid or (14) vnumval fields to the _pmDecodeLogControl function in p_lcontrol.c, which triggers integer overflows, heap-based buffer overflows, and/or buffer over-reads.