I might be missing something but…
Local storage is domain specific. I’d argue that it’s not as easy to exploit in the wild when you don’t have everything running locally.
If you have nanowallet open and go to https://someothersite.com, the js on that website will not be able to access localstorage of nanowallet because it is on a different domain.
So XSS being involved makes a lot more sense, though I’m not sure how they would have pulled that off. To me this looks like they were targeting nanowallet specifically since it’s unlikely that some generic XSS that happens to be reading local storage happens to be operated by people who know what they got their hands on. If it is targeted it is likely a site that nanowallet users are likely to visit with nanowallet open though I in no way want to accuse anyone (if we have all the possible websites it’ll be relatively trivial to figure out which one it was).
All in all everyone can put their panties back on. Local storage is not in and of itself insecure plus a strong password seemingly would have mitigated this attack entirely.