I found this online from a Chemical Mfg
Most permanent color is ammonia-based. If ammonia-based products become contaminated or exposed to air, they oxidize prematurely and won't process correctly when applied to the hair.
Peroxide will lose effectiveness when contaminated or exposed to air.
If you have permanent haircolor that has been sitting around for over a year, chances are, it won't work properly. The pigment molecules won't be damaged, so you still may be able to stain your hair darker with it, but it won't process correctly and you won't have the same staying power. If it is a deposit only semi- or demi- permanent haircolor, it should be fine.
I would do a strand test however regardless if it is old or new ...if it is a brand you have not used before