OpenWrt is affected in its default configuration, although it is not trivial to actually exploit. The new releases OpenWrt 18.06.9 and OpenWrt 19.07.5 fix the issue: upgrading is highly recommended.
It you cannot upgrade, there is a mitigation: in the firewall configuration, change the input policy of the WAN firewall zone from REJECT to DROP and reload the firewall configuration. This will prevent sending ICMP errors to hosts on the Internet and suppress the attack vector. Note: you don't need to do this if you have already upgraded to a fixed version of OpenWrt.
A common reason for using DROP rather than REJECT is to avoid giving away information about which ports are open, however, discarding packets gives away exactly as much information as the rejection.
With REJECT, you do your scan and categorise the results into "connection established" and "connection rejected".
With DROP, you categorise the results into "connection established" and "connection timed out".
Thanks for the link! Given a machine on an IP is offering no services at all, why should there be "connection established" assumed when there is no answer from that machine at all aka DROP? I would assume that there is no machine at all.
He's talking about open port vs closed port behavior when scanning ports. So open port = connection established (let's say it's TCP), closed port = connection timed out (nothing responded back, no services offered on that port). Where REJECT would have the host send back a ICMP message saying the destination port is unreachable so: connection rejected.
//edit
hmm
i think two rules/chains are needed.
one that matches against the rate limiter (but with hashlimit-above statement) and then hand those packets over to another chains that does the probability drop?