I noticed today on Bitminter that the CDF is over 99% and the block session has been running for almost 12 hours now. what causes such a high CDF and is there anything that can be done about it?
CDF is a measure of the pool's (bad) luck in the near past. By the nature of randomness (and how it applies to the process of mining), every pool will have times of good and bad luck, and nothing can be done to fix that.
If you are mining at a pool using a hopping-proof method such as PPLNS or DGM, you don't need to do anything when the CDF is high. The CDF represents the pool's luck in the past, but your reward for continued mining depends only on the pool's luck in the future, and thus the CDF has no effect.
CDF will sometimes go high, indicating bad luck. Bad luck happens with all pools and miners, and there is really no cure for it, just like there is no cure for lottery tickets that aren't winners. Each hash is like a lottery ticket with a tiny chance of winning a block. If you have bad luck it will take a lot of lottery tickets before you find a winning one.
With more hashpower the bad luck rounds will pass faster. But there will always be rounds with high CDF that take a lot of hashes before the block is found.