On 3 May 2024, at 1:36, Ilya Maximets wrote:

> While tracing NAT actions, pointer to the action may be stored in the
> recirculation node for future reference.  However, while translating
> actions for the group bucket in xlate_group_bucket, the action list is
> allocated temporarily on stack.  So, in case the group translation
> leads to NAT, the stack pointer can be stored in the recirculation node
> and accessed later by the tracing mechanism when this stack memory is
> long gone:
>
>  ==396230==ERROR: AddressSanitizer: stack-use-after-return on address
>  0x191844 at pc 0x64222a bp 0xa5da10 sp 0xa5da08
>  READ of size 1 at 0x191844 thread T0
>   0 0x642229 in ofproto_trace_recirc_node ofproto/ofproto-dpif-trace.c:704:49
>   1 0x642229 in ofproto_trace ofproto/ofproto-dpif-trace.c:867:9
>   2 0x6434c1 in ofproto_unixctl_trace ofproto/ofproto-dpif-trace.c:489:9
>   3 0xc1e491 in process_command lib/unixctl.c:310:13
>   4 0xc1e491 in run_connection lib/unixctl.c:344:17
>   5 0xc1e491 in unixctl_server_run lib/unixctl.c:395:21
>   6 0x53eedf in main ovs/vswitchd/ovs-vswitchd.c:131:9
>   7 0x2be087 in __libc_start_call_main
>   8 0x2be14a in __libc_start_main@GLIBC_2.2.5
>   9 0x42dee4 in _start (vswitchd/ovs-vswitchd+0x42dee4)
>
>  Address 0x191844 is located in stack of thread T0 at offset 68 in frame
>   0 0x6d391f in xlate_group_bucket ofproto/ofproto-dpif-xlate.c:4751
>
>   This frame has 3 object(s):
>     [32, 1056) 'action_list_stub' (line 4760) <== Memory access at
>                                                   offset 68 is inside
>                                                   this variable
>     [1184, 1248) 'action_list' (line 4761)
>     [1280, 1344) 'action_set' (line 4762)
>
>  SUMMARY: AddressSanitizer: stack-use-after-return
>    ofproto/ofproto-dpif-trace.c:704:49 in ofproto_trace_recirc_node
>
> Fix that by copying the action.
>
> Fixes: d072d2de011b ("ofproto-dpif-trace: Improve NAT tracing.")
> Reported-by: Ales Musil <amu...@redhat.com>
> Signed-off-by: Ilya Maximets <i.maxim...@ovn.org>
> ---

Thanks for the patch, and adding a test case.

Acked-by: Eelco Chaudron <echau...@redhat.com>

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to