Gather instructions aren't authorized, in the sense that they're meant to do this. It's indeed a bug.
Some background: a CPU has only a pool of unnamed registers. When you put data in a register called YMM7, there's no fixed register on the chip that corresponds to YMM7. Instead, the CPU finds a register which is available, and establishes a temporary mapping. Then reads and writes to YMM7, from your thread, get applied to that hardware register.
So, what seems to be the case is that a bug in the gather instructions somehow let you see the contents of the physical register that the gather instruction you're writing to, before the data comes in from memory and ovewrites its contents. Because hardware registers are shared between SMT threads (and possibly preserved across context switches), this is what enables the information leakage.