Both are correct. Snuck arose as a regional variant in the United States around the late 19th century as an example of the sort of weak-to-strong drift described here and grew to become more widespread there.
In the US sneaked is still found, perhaps more so than snuck but snuck is certainly very common. If you use an American form of English or one closely related to it, use whichever you prefer.
Elsewhere snuck is certainly now found, but sneaked is more common and some people complain about snuck. If you use a form of English that isn't American or closely related to it, use sneaked unless you really prefer snuck, and if you do really prefer snuck perhaps consider avoiding it in formal contexts.