Ubuntu · Services

Do not send usage data to Canonical (popularity-contest, ubuntu-report, ubuntu-insights)

When it fails: The system can send its package list or hardware details to Canonical. Inventory data leaves the organization for a third party without a data processing agreement.

CB-UBU-SVC-029lowactiveautomatedautomated fixprofile core

Description

Three Ubuntu tools can send information about the system to Canonical:

  • popularity-contest sends, once a week, the list of installed packages and when they were last used, when PARTICIPATE="yes" is set in /etc/popularity-contest.conf. It is installed by default on 20.04, through the ubuntu-standard metapackage;
  • ubuntu-report (up to 24.04) sends the hardware, release, locale and screen details collected at the first login of Ubuntu Desktop, when the user accepts;
  • ubuntu-insights (from 26.04) replaces it: it collects hardware and usage reports every week and uploads them when the user consented; when the user refused, it still sends an opt-out notice.

The control requires PARTICIPATE="no" when popularity-contest is installed, and ubuntu-report and ubuntu-insights to be absent.

popularity-contest is kept installed on 20.04 because removing it also removes the ubuntu-standard metapackage; with PARTICIPATE="no" its weekly job sends nothing. The fix also sets the debconf answer to false, so that a reconfiguration of the package keeps the setting. ubuntu-insights system-opt-out stops collection for every user without removing the package, but leaves the decision on each machine: removal is easier to audit. Crash reports (apport, whoopsie) are handled by CB-UBU-BOOT-015, and the network message of the day by CB-UBU-AUTH-030.

Rationale

The package list describes the software stack and its versions, which is useful to an attacker and is part of the organization's information system description. The hardware and usage reports go to a third party without a contract or an assessment under the GDPR. The decision belongs to the organization, not to whoever answers the first-login question.

Impact

Canonical no longer receives statistics from the system; nothing changes for its users. Removing ubuntu-report and ubuntu-insights does not remove the desktop metapackages, which only recommend them.

Setting

Location/etc/popularity-contest.conf; packages ubuntu-report, ubuntu-insights
DefaultEmpty file (20.04 cloud image) or PARTICIPATE="no"; ubuntu-report or ubuntu-insights installed on desktops
RecommendedPARTICIPATE="no"; ubuntu-report and ubuntu-insights absent

Audit

  1. If popularity-contest is installed (dpkg-query -W popularity-contest), grep PARTICIPATE /etc/popularity-contest.conf must show PARTICIPATE="no".
  2. dpkg-query -W -f='${Status}\n' ubuntu-report ubuntu-insights must not print install ok installed.

Automated: every check must pass. Scanners report each check by its id.

popcon

popularity-contest is absent or set to PARTICIPATE="no".

script: |
  if ! dpkg-query -W -f='${Status}' popularity-contest 2>/dev/null | grep -q 'ok installed'; then
    echo "popularity-contest not installed"
    exit 0
  fi
  v=$(sed -n 's/^[[:space:]]*PARTICIPATE[[:space:]]*=[[:space:]]*//p' /etc/popularity-contest.conf 2>/dev/null | tail -n 1 | tr -d "\"'")
  echo "PARTICIPATE=${v:-<not set>}"
  [ "$v" = no ]

ubuntu-report

Ubuntu hardware and usage report tool.

name: ubuntu-report
state: absent

ubuntu-insights

Ubuntu Insights report tool.

name: ubuntu-insights
state: absent

Remediation

  1. popularity-contest: set PARTICIPATE="no" in /etc/popularity-contest.conf, or run dpkg-reconfigure popularity-contest and answer no.
  2. Run apt purge ubuntu-report ubuntu-insights.
Restartnone
Disruptionnone

Rollback

Run dpkg-reconfigure popularity-contest and answer yes, or reinstall ubuntu-report or ubuntu-insights with apt install.

popcon

f=/etc/popularity-contest.conf
dpkg-query -W -f='${Status}' popularity-contest 2>/dev/null | grep -q 'ok installed' || exit 0
grep -qx 'PARTICIPATE="no"' "$f" 2>/dev/null && exit 0
echo 'popularity-contest popularity-contest/participate boolean false' | debconf-set-selections
cb_backup "$f"
if grep -q '^[[:space:]]*PARTICIPATE[[:space:]]*=' "$f" 2>/dev/null; then
  sed -i 's/^[[:space:]]*PARTICIPATE[[:space:]]*=.*/PARTICIPATE="no"/' "$f"
else
  printf 'PARTICIPATE="no"\n' >>"$f"
fi

ubuntu-report

Generated from check ubuntu-report: the engine writes the fix for every output, it sets the expected value and the check runs again after.

ubuntu-insights

Generated from check ubuntu-insights: the engine writes the fix for every output, it sets the expected value and the check runs again after.

Handwritten code reads parameters from CB_<NAME> environment variables. Each release turns these fixes into remediate.sh and an Ansible role per profile: dry run by default, a fix runs only when its check fails.

References

Mappings

FrameworkIDRelationNote
ANSSI-BP-028 - Recommandations de configuration d'un système GNU/Linux2.0R58partialR58 asks to install only the packages that are strictly needed; this control covers the reporting tools.
NIST SP 800-53 Rev. 55.1.1CM-7related
NIST SP 800-53 Rev. 55.1.1PT-2related

How this control relates to the other framework's: equivalent, stricter, looser, partial or related.

Threats mitigated

  • related CB-UBU-BOOT-015 Disable automatic crash reporting (apport, whoopsie)

People and lifecycle

Authors
Verified2026-10-19 by Sn0wAlice on 20.04, Proxmox VM, Ubuntu 20.04 cloud image, kernel 5.4.0-216-generic. Stock image fails (popularity-contest installed, empty configuration); fix sets PARTICIPATE='no' and the debconf answer; PARTICIPATE=yes detected and fixed; audit passes after reboot.
Verified2026-10-19 by Sn0wAlice on 22.04, Proxmox VM, Ubuntu 22.04 cloud image, kernel 5.15.0-198-generic. Stock image passes (no reporting tool); popularity-contest installed with PARTICIPATE=yes fails, fix sets PARTICIPATE=no and the debconf answer; audit passes after reboot.
Verified2026-10-19 by Sn0wAlice on 24.04, Proxmox VM, Ubuntu 24.04 cloud image, kernel 6.8.0-147-generic. Stock image passes (no reporting tool); PARTICIPATE=yes and ubuntu-report installed both fail, fix sets PARTICIPATE=no and purges ubuntu-report; audit passes after reboot.
Verified2026-10-19 by Sn0wAlice on 26.04, Proxmox VM, Ubuntu 26.04 cloud image, kernel 7.0.0-38-generic. Stock image passes (no reporting tool); popularity-contest installed with PARTICIPATE=yes fails, fix sets PARTICIPATE=no and the debconf answer; audit passes after reboot.
Introduced inv0.1.0
Created, updated2026-10-19, 2026-10-19
Translationsfr