Public bug reported:

iputils-ping 3:20240905-1 removed the setcap from the binary, under the
assumption that you don't need special privileges to open ICMP sockets
(as introduced in 2011 in the kernel). However, that only is true if you
have "net.ipv4.ping_group_range = 0   2147483647" (or similar) in
sysctl.

So far, we didn't configure this variable in Ubuntu, resulting in the
default value of "0 1", which only allows root to open those sockets.

However, that could/should change with the latest merge of linux-base,
which brought in linux-sysctl-defaults. That package ships
/usr/lib/sysctl.d/50-defaults, which the following contents:

```
# System Request functionality of the kernel (SYNC)
#
# Use kernel.sysrq = 1 to allow all keys.
# See https://docs.kernel.org/admin-guide/sysrq.html for a list
# of values and keys.
kernel.sysrq = 0x01b6

# Append the PID to the core filename
kernel.core_uses_pid = 1

# Source route verification
net.ipv4.conf.default.rp_filter = 2
net.ipv4.conf.*.rp_filter = 2
-net.ipv4.conf.all.rp_filter

# Do not accept source routing
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.*.accept_source_route = 0
-net.ipv4.conf.all.accept_source_route

# Promote secondary addresses when the primary address is removed
net.ipv4.conf.default.promote_secondaries = 1
net.ipv4.conf.*.promote_secondaries = 1
-net.ipv4.conf.all.promote_secondaries

# ping(8) without CAP_NET_ADMIN and CAP_NET_RAW
# The upper limit is set to 2^31-1. Values greater than that get rejected by
# the kernel because of this definition in linux/include/net/ping.h:
#   #define GID_T_MAX (((gid_t)~0U) >> 1)
# That's not so bad because values between 2^31 and 2^32-1 are reserved on
# systemd-based systems anyway: https://systemd.io/UIDS-GIDS#summary
-net.ipv4.ping_group_range = 0 2147483647

# Fair Queue CoDel packet scheduler to fight bufferbloat
-net.core.default_qdisc = fq_codel

# Enable hard and soft link protection
fs.protected_hardlinks = 1
fs.protected_symlinks = 1

# Enable regular file and FIFO protection
fs.protected_regular = 2
fs.protected_fifos = 1
```

That new package is already in systemd's Recommends (has been there
since Oracular, see bug 2089759).

In parallel, procps in Debian has removed /etc/sysctl.conf entirely, and
now also Recommends linux-sysctl-defaults.

To add to the fun, despite the systemd Recommends, linux-sysctl-defaults
isn't part of the current plucky LXD images (built 2 days after that
package was published in the release pocket).

** Affects: iputils (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: update-excuse

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to iputils in Ubuntu.
https://bugs.launchpad.net/bugs/2089938

Title:
  iputils 3:20240905-1 doesn't work for unprivileged users

Status in iputils package in Ubuntu:
  New

Bug description:
  iputils-ping 3:20240905-1 removed the setcap from the binary, under
  the assumption that you don't need special privileges to open ICMP
  sockets (as introduced in 2011 in the kernel). However, that only is
  true if you have "net.ipv4.ping_group_range = 0   2147483647" (or
  similar) in sysctl.

  So far, we didn't configure this variable in Ubuntu, resulting in the
  default value of "0 1", which only allows root to open those sockets.

  However, that could/should change with the latest merge of linux-base,
  which brought in linux-sysctl-defaults. That package ships
  /usr/lib/sysctl.d/50-defaults, which the following contents:

  ```
  # System Request functionality of the kernel (SYNC)
  #
  # Use kernel.sysrq = 1 to allow all keys.
  # See https://docs.kernel.org/admin-guide/sysrq.html for a list
  # of values and keys.
  kernel.sysrq = 0x01b6

  # Append the PID to the core filename
  kernel.core_uses_pid = 1

  # Source route verification
  net.ipv4.conf.default.rp_filter = 2
  net.ipv4.conf.*.rp_filter = 2
  -net.ipv4.conf.all.rp_filter

  # Do not accept source routing
  net.ipv4.conf.default.accept_source_route = 0
  net.ipv4.conf.*.accept_source_route = 0
  -net.ipv4.conf.all.accept_source_route

  # Promote secondary addresses when the primary address is removed
  net.ipv4.conf.default.promote_secondaries = 1
  net.ipv4.conf.*.promote_secondaries = 1
  -net.ipv4.conf.all.promote_secondaries

  # ping(8) without CAP_NET_ADMIN and CAP_NET_RAW
  # The upper limit is set to 2^31-1. Values greater than that get rejected by
  # the kernel because of this definition in linux/include/net/ping.h:
  #   #define GID_T_MAX (((gid_t)~0U) >> 1)
  # That's not so bad because values between 2^31 and 2^32-1 are reserved on
  # systemd-based systems anyway: https://systemd.io/UIDS-GIDS#summary
  -net.ipv4.ping_group_range = 0 2147483647

  # Fair Queue CoDel packet scheduler to fight bufferbloat
  -net.core.default_qdisc = fq_codel

  # Enable hard and soft link protection
  fs.protected_hardlinks = 1
  fs.protected_symlinks = 1

  # Enable regular file and FIFO protection
  fs.protected_regular = 2
  fs.protected_fifos = 1
  ```

  That new package is already in systemd's Recommends (has been there
  since Oracular, see bug 2089759).

  In parallel, procps in Debian has removed /etc/sysctl.conf entirely,
  and now also Recommends linux-sysctl-defaults.

  To add to the fun, despite the systemd Recommends, linux-sysctl-
  defaults isn't part of the current plucky LXD images (built 2 days
  after that package was published in the release pocket).

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/iputils/+bug/2089938/+subscriptions


-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to