Hello,

On Mon, Aug 28, 2023 at 05:13:29PM +0200, p...@delphinusdns.org wrote:
> >Synopsis:    pf nat-to doesn't match a crafted packet
> >Category:    system
> >Environment:
>       System      : OpenBSD 7.3
>       Details     : OpenBSD 7.3 (GENERIC.MP) #2080: Sat Mar 25 14:20:25 MDT 
> 2023
>                        
> dera...@arm64.openbsd.org:/usr/src/sys/arch/arm64/compile/GENERIC.MP
> 
>       Architecture: OpenBSD.arm64
>       Machine     : arm64
> >Description:
>       I was testing a seemingly valid Internet packet going out my gateway 
> but the pf firewall doesn't match nat-to to this one for some reason.  I'm
> possibly overlooking something but every other packet exiting my gateway is
> nat'ed.  What causes this?  How can this be exploited?
> 
> >How-To-Repeat:
> Here is the tcpdump from the host 1 hop behind the NAT router:
> 
> 16:59:08.438082 192.168.177.13 > 49.12.42.182: icmp: host 7.198.187.211 
> unreachable [icmp cksum ok] for 11.69.44.241.52699 > 7.198.187.211.55672: udp 
> 51351 [tos 0x9c] (ttl 147, id 17124, len 51419, optlen=40 NOP RR{39}= 
> RR{#106.155.117.54 233.26.79.111 129.127.249.242 60.117.146.16 179.39.29.224 
> 213.65.49.78 0.16.45.109 252.168.188.0 123.108.138.224}) (ttl 64, id 65443, 
> len 96)
>   0000: 4500 0060 ffa3 0000 4001 ad81 c0a8 b10d  E..`....@.......
>   0010: 310c 2ab6 0301 55aa 0000 0000 4f9c c8db  1.*...U.....O...
>   0020: 42e4 0000 9311 c756 0b45 2cf1 07c6 bbd3  B......V.E,.....
>   0030: 0107 2704 6a9b 7536 e91a 4f6f 817f f9f2  ..'.j.u6..Oo....
>   0040: 3c75 9210 b327 1de0 d541 314e 0010 2d6d  <u...'...A1N..-m
>   0050: fca8 bc00 7b6c 8ae0 cddb d978 0000 0000  ....{l.....x....
> 
> and here is the tcpdump on the pppoe interface:
> 

    can you check there is a state in pf(4) matching ICMP dest unreachable
    packet?

    in order to handle icmp unreachable message there must be matching
    state in pf(4).

    refer to pf_test_state_icmp() where translation of ICMP error messages
    happens.

hope it helps
regards
sashan

Reply via email to