Pick your color, if it can dye wool it will dye hair just fine.
Here is a great photo showing a list of known natural dyes, all are possible with medieval technology. several were not available in the real medieval era because they come from the Americas. You can also have things link woad, henna, and saffron for blue, reds, and orange respectively. Keep in mind as hair grow they will have to re-dye periodically no matter what, you can't dye something that does not exist yet. And of course bleaching your hair was a well known technique at the time.
Purity and boldness of color will be affected by cost of course, these would represent the more expensive dyes. keep in mind a commoner probably cannot afford expensive dye so they would be mostly limited to earth tones, nothing unnatural. These would be Henna (red/brown), Madder(red), onionskins (yellow), alderbark (orange), walnut (brown/black)
For an unnatural color at low cost your best bet is green which can be achieved with a variety of homemade dyes, although far fewer than you think. known ways to achieve that are.
Heather and alum green
green lichen Iris
Iris leaves Pivet
Pivet berries and salt (this can also produce a purplish red so may not be the best choice.)
These are also the ones that are not downright toxic, using lead (black) or lye bleaching were common at the time but were also toxic.
Note also depending on your initial hair color you may have to bleach it before dying, dye can't do much to black hair for instance.