xfrm: Ensure policies always checked on XFRM-I input path
authorBenedict Wong <benedictwong@google.com>
Wed, 10 May 2023 01:30:22 +0000 (01:30 +0000)
committerSteffen Klassert <steffen.klassert@secunet.com>
Sun, 21 May 2023 07:21:37 +0000 (09:21 +0200)
commita287f5b0cfc6804c5b12a4be13c7c9fe27869e90
tree82f547c52c0d81a2aad51a72595ce6de683eeeb2
parent1f8b6df6a997a430b0c48b504638154b520781ad
xfrm: Ensure policies always checked on XFRM-I input path

This change adds methods in the XFRM-I input path that ensures that
policies are checked prior to processing of the subsequent decapsulated
packet, after which the relevant policies may no longer be resolvable
(due to changing src/dst/proto/etc).

Notably, raw ESP/AH packets did not perform policy checks inherently,
whereas all other encapsulated packets (UDP, TCP encapsulated) do policy
checks after calling xfrm_input handling in the respective encapsulation
layer.

Fixes: b0355dbbf13c ("Fix XFRM-I support for nested ESP tunnels")
Test: Verified with additional Android Kernel Unit tests
Test: Verified against Android CTS
Signed-off-by: Benedict Wong <benedictwong@google.com>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
net/xfrm/xfrm_interface_core.c