โรคพอร์ฟีเรียมีสาเหตุจากการที่ร่างกายมีการสะสมของสารพอร์ฟีริน (Porphyrin) มากจนเกินไป ซึ่งโดยปกติแล้ว ร่างกายของคนเราจะเปลี่ยนสารพอร์ฟีรินให้กลายเป็นโมเลกุลโปรตีนฮีม (Heme) ที่ถือเป็นองค์ประกอบสำคัญของฮีโมโกลบิน (Hemoglobin) ในเม็ดเลือดแดง ที่ทำหน้าที่ในการลำเลียงออกซิเจนไปทั่วร่างกาย