Private attack is to violate the safety of a block B by creating another chain of length equal to or longer than the longest chain containing B, after B has been confirmed.
As in my reference
If the adversary reveals its chain too early, i.e. before block B gets k-deep. It’ll still end up displacing B, but then it’s action do not lead to a safety violation.
Why won’t it pose a threat on safety? Isn’t displacing B in the future already means block mined by the malicious nodes be adopted as the longest chain and block containing malicious transaction might get confirmed once it become k-deep?
Ref: Private attack section in https://courses.grainger.illinois.edu/ece598pv/sp2021/lectureslides2021/ECE_598_PV_course_notes6.pdf