This is a really common thing for horses to do. On the circle, they can rely on a bit of bend and flexion to keep themselves balanced, but on the long side they get straight, drop a shoulder and start running on the forehand.
To correct this DO NOT pull. This will make your horse run faster, put him more on the forehand and put his nose behind the vertical - all things that we don't want.
Instead, we correct the horse with figures and our leg and seat aids. On a circle, work on transitions in the canter, making the stride shorter and longer WITHOUT using your reins. Really feel that as you apply leg and follow with your seat, your horse moves forward and when you half halt by bracing your back, your horse comes back. In the shortening of the stride, you will need to brace your back, and add leg to keep the canter happening and really ride the canter to keep the impulsion. When you have control over the canter stride on a circle, then go down the long side and when he starts running, immediately turn him onto a circle (don't pull him onto the circle! Use your body aids to turn him!) And then again start half halting and balancing the canter back, and when it is balanced go down the long side. Again if he gets unbalanced, turn again onto a circle and repeat. Eventually on the long sides you will just be able to apply a half halt and he will come back to you.