Problem with InverseTransformDirection and non-uniform scale

I made the plane to work with mesh vertices

var plane = new Plane(     hit.transform.InverseTransformDirection(normal),     hit.transform.InverseTransformPoint(position) ); 

If the object has the uniform scale then all looks good

uniform is good

but otherwise the plane normal has weird angle and I don’t understand why.

non-uniform has problems

Blue line – my plane
Green spheres – plane intersections
white sphere – plane center

Maybe it can be calculated directly with worldToLocalMatrix?