Основная причина — генетические мутации, нарушающие работу ферментов, участвующих в синтезе гема. Заболевание может проявляться в любом возрасте, часто провоцируется стрессами, инфекциями, приёмом некоторых лекарств, алкоголем или гормональными изменениями. Важную роль играют наследственные факторы: если у одного из родителей есть порфирия, риск передачи детям значительно выше.