ELI5: Carol tells Alice she'll give Alice a picture of a cat, if Alice sends Carol money through Bob. Bob has saved this picture of this cat because Carol showed it to him before, so when Alice pays Bob, Bob shows Alice the picture of a cat (settling the payment) and Bob doesn't have to pass the money along to Carol.


A lightning invoice is a cryptographic hash of a secret (i.e. anyone with the secret knows the hash of the secret, but if you just have the hash you can't determine the secret). A lightning invoice is settled when the payer gets this secret from the payee. In lightning payment route, the hops are like payers chained to together - all waiting to settle the payment with their channel partners (and collect fees) when the payee releases the secret.

If you're an intermediate hop on the route from the payer to the payee and the payee reuses a secret known to you, you can settled funds without routing the payment to the payee, effectively stealing funds.

This tools saves secrets it's seen before, waiting for them to be reused so it can steal funds.

how often are payees reusing secrets?

Probably not very often. Only likely if they have buggy code or something afaik

Is this an example where I'm at risk?

Let's say I try to withdraw from SN, and the max fee I entered is tow low, so eventually I get a message saying failed "timed out finding route", and to "try increasing max fee".

If I increase the max fee and try again with the same invoice, is my second attempt vulnerable to this preimage stealer?

no i don't believe so as the payment never found a route during the probing process.

if i understand correctly this is related to invoice reuse after a prior successful payment

yes the main concern is someone paying an invoice successfully and then someone (maybe same person or other) paying that invoice again from another wallet.

another concern is if a payment looks stuck and making the payment again on another wallet.

if a payment fails and you make the payment again then you are fine.

there's a wormhole attack here too that users dont need to worry about too much it's mostly a router level attack