diff options
author | Paul Holzinger <pholzing@redhat.com> | 2021-07-30 14:33:08 +0200 |
---|---|---|
committer | Paul Holzinger <pholzing@redhat.com> | 2021-08-03 16:29:09 +0200 |
commit | e88d8dbeae2aebd2d816f16a21891764163afcd4 (patch) | |
tree | ee84759a07070d7255adc789434f228babf39ecc /pkg/api/handlers/libpod/pods.go | |
parent | d25f8d07b3bbc11be1caa0838a031f0e5dc223a8 (diff) | |
download | podman-e88d8dbeae2aebd2d816f16a21891764163afcd4.tar.gz podman-e88d8dbeae2aebd2d816f16a21891764163afcd4.tar.bz2 podman-e88d8dbeae2aebd2d816f16a21891764163afcd4.zip |
fix rootless port forwarding with network dis-/connect
The rootlessport forwarder requires a child IP to be set. This must be a
valid ip in the container network namespace. The problem is that after a
network disconnect and connect the eth0 ip changed. Therefore the
packages are dropped since the source ip does no longer exists in the
netns.
One solution is to set the child IP to 127.0.0.1, however this is a
security problem. [1]
To fix this we have to recreate the ports after network connect and
disconnect. To make this work the rootlessport process exposes a socket
where podman network connect/disconnect connect to and send to new child
IP to rootlessport. The rootlessport process will remove all ports and
recreate them with the new correct child IP.
Also bump rootlesskit to v0.14.3 to fix a race with RemovePort().
Fixes #10052
[1] https://nvd.nist.gov/vuln/detail/CVE-2021-20199
Signed-off-by: Paul Holzinger <pholzing@redhat.com>
Diffstat (limited to 'pkg/api/handlers/libpod/pods.go')
0 files changed, 0 insertions, 0 deletions