I'm a little vague on Spectre but Meltdown definitely has nothing to do with SMT.I don't think either Spectre or Meltdown rely on SMT to work, at least not exclusively.
Meltdown exploits rely on two things, not one. One's fixable at the design stage without significant performance impact. The other, not so much. Might be useful to some people to run through the details, as they're enlightening when thinking about this kind of stuff.
Meltdown attacks begin with speculative execution. This happens when a modern CPU encounters a conditional branch instruction which depends on the output of an earlier instruction. If that output isn't available yet, rather than pausing instruction dispatch, the CPU's front end guesses which direction the branch will go and "speculates" down that path. Later on, once the branch direction is actually known, if the prediction was wrong all the architecturally visible results (register values and memory values) of speculating past the branch have to get rolled back.
The first flaw necessary for Meltdown: in vulnerable CPUs, speculative execution can successfully load data from memory the running process is not supposed to have access to. In these designs, CPU architects relied on the speculation rollback mechanism to handle cases where a speculative memory access turns out to be a protection violation.
For a long time everyone in the industry thought that was OK! Sure, under speculation you can read from the kernel's private memory, but rollback does its job so the naughty process never saw a thing. But then somebody realized you could exploit a side channel to leak information from speculatively executed code back to the true execution path, and all hell broke loose.
The side channel works as follows. Say you want a handcrafted exploit gadget to smuggle out one byte at a time. What you do is set up an array which covers 256 cache lines, one line per possible value of the byte. Prior to executing the gadget, you make sure the array is fully evicted from cache. Then you cause the gadget to be speculatively executed (with sufficient effort, you can force branch predictors to mispredict). The gadget loads its byte from somewhere it's not supposed to, then loads from the side-channel array using the value of the byte as its index into the array.
Once execution resumes on the true non-speculative path, you just scan through the array and figure out which entry was read from by the gadget. The entry read by the gadget will return data much faster than the rest, and you can use timers to detect this change in performance. Now you know the index used by the gadget, which is the byte value it read from kernel memory. Repeat as necessary to dump all of kernel memory, one byte at a time.
Hardware Meltdown mitigation only has to defeat one half of the exploit, the lack of memory protection on speculatively executed loads. But the side channel isn't going away any time soon. Caches are inherently a timing side channel, and you can't live without them. And even without caches there's many other side channels lurking, caches are just low-hanging fruit.
This is why Hector Martin's m1acles exploit wasn't a real concern (note: he explicitly said as much, but used his presentation of it to prank tech journalists who don't do their homework when reporting on computer security). So what if turns out there's a trivial-to-use side channel Apple accidentally provided in M1? There's tons of them, one more makes no difference.