I reviewed gssdp 1.2.0-1 as checked in to eoan. This isn't a full
security audit, but rather a quick gauge of maintainability.

- gsspd is a gobject based library for using SSDP (Simple Service Discovery 
Protocol), and is required by rygel.
- gssdp is part of the GNOME project.
- It doesn't see a lot of git activity, but it's quite a small project so 
that's not really unexpected.
- No CVEs in our database.
- Build dependencies in main except for gnome-pkg-tools, meson and valac - none 
of which create binary dependencies.

- Doesn't spawn any subprocesses.
- Looks like it's careful with memory management.
- No logging other than a few g_debugs (which are off by default).
- Doesn't use the environment
- No privileged code.
- Does some networking:
  - Consumers of the gssdp API create a GSSDPClient for each network interface.
  - GSSDPClient sets up 3 sockets - IIUC, the first one receives SSDP (NOTIFY 
and M-SEARCH) multicast packets. The second one is for sending SSDP NOTIFY 
multicast packets and sending responses to SSDP M-SEARCH multicast queries. The 
third one is for sending SSDP M-SEARCH multicast queries and receiving 
responses to those.
  - The first socket is bound to the SSDP multicast address and port.
  - The second socket is bound to the interface address and SSDP port.
  - The third socket is bound to the interface address and a random port.
  - Unless I've misunderstood something, the way that the sockets are 
configured seems a bit weird and I think there might be a bug. The 
IP_MULTICAST_IF sockopt is set (via gssdp_socket_mcast_interface_set) and 
IP_ADD_MEMBERSHIP is set (via g_socket_join_multicast_group) on the same socket 
- the one that receives multicast packets. Shouldn't the IP_MULTICAST_IF 
sockopt be set on the other 2 sockets (the ones sending multicast packets) 
instead?
- It's using AF_NETLINK for looking up MAC addresses, which it uses for keying 
a hashtable of cached user agent strings from other devices.
- The max-age in alive announcements is set to 1800s. Re-announcements are sent 
3 times during this period.
- It responds to unicast M-SEARCH queries, which is called out in 
https://blog.cloudflare.com/ssdp-100gbps/. Devices that respond to unicast 
M-SEARCH queries and are directly connected to the internet can be used in DDoS 
attacks in scenarios where an attacker is able to generate packets with a 
spoofed source IP. It does employ some rate limiting though - it delays the 
response by a random time of between 0 and 3 seconds. This was tested with 
netcat.
- No crypto.
- No sql.
- No privileged commands.
- Doesn't use any environment variables.
- No webkit.
- Lintian clean, other than a warning about there being no manpage for 
/usr/bin/gssdp-device-sniffer
- A single binary - /usr/bin/gssdp-device-sniffer in gssdp-tools, which 
provides a UI for monitoring SSDP announcements.
- Build logs look clean other than some doc warnings.
- No configuration files.
- No systemd services.
- No dbus services.
- No setuid binaries.
- No fs capabilities.
- No sudo fragments.
- No udev rules.
- No cron jobs.

Security team ACK for promoting gssdp to main.

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

Title:
  [MIR] gssdp

Status in gssdp package in Ubuntu:
  New

Bug description:
  * Availability

  Builds on all supported architectures in Ubuntu and on sync from
  Debian, the package was in main in the past and needs to be re-
  promoted

  * Rationale

  We would like to enable dlna sharing of media files, which is a GNOME
  upstream feature and relying on gssdp

  * Security

  No CVE/known security issue

  * Quality assurance

  - the desktop-packages team is subscribed to the package
  - the bug lists in upstream, the Debian PTS and launchpad are empty
  - upstream has a testsuit which is being used during build

  * Dependendies

  The package dependencies are in main

  * Standards compliance

  the package is using standard packaging (dh11), the standards-version
  is 4.1.1, the package is in sync from Debian

  * Maintainance

  Upstream is active and the desktop team is going to look after the
  package in ubuntu

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

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to