The text at https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#textures says
When texture.sampler is undefined, a sampler with repeat wrapping (in both directions) and auto filtering MUST be used.
The properties reference at https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#reference-texture says about the sampler
The index of the sampler used by this texture. When undefined, a sampler with repeat wrapping and auto filtering SHOULD be used.
I think that this MUST vs. SHOULD is an inconsistency.