How is that possible?
Because we don't actually see "colours" as we think we are. Our vision is very dependent on contrasts, and contrast is what makes us tell a colour from another. If you are under the light of a standard lightbulb, at night, and you look at a white sheet of paper, for example, you will see and say the paper is white, even if it is in fact yellow (very much yellow) because of the light of the lightbulb. Your brain is compensating to help you, and seeing that everything is yellowish around, your brain will use the contrast between colours to determine what colour is what and make you tell white is white even if it's yellow.
But our brain can not compensate for everything: when contrast is too soft, expecially if compared with other forms around, our brain will think it is a uniform colour. This is what happens here: the shapes actually change colour, passing from a lighter gray at the top to a darker one at the bottom. Every one of them. This changing happens so slowly, if compared to the sudden jump of tone between one shape and the next, that our brain is not able to see it if we don't concentrate. So we are lead to see the whole image as getting lighter at the bottom.
The white triangles in the upper part are used to make us think the upper grey shapes are darker than what they really are, while the same is not done at the bottom, to make us think the grey is lighter. (just as in the other illusion in this thread).