CVE-2026-12391
ubuntu-pro-client Local Privilege Escalation and Information Disclosure via Symlink Arbitrary File Read in collect-logs
An insecure symlink following vulnerability exists in Canonical ubuntu-pro-client (formerly ubuntu-advantage-tools) within the pro collect-logs command framework. The utility creates or utilizes predictable temporary file paths or user-accessible log directories when gathering diagnostic information without verifying the file type or ownership. An unprivileged local attacker can exploit this behavior by creating a symbolic link (symlink) at a predictable destination path pointing to an arbitrary, root-readable file (such as /etc/shadow or private files within /root). When a root administrator or operator subsequently executes the pro collect-logs command, the tool follows the user-controlled symlink, reads the target file, and compresses its contents into the resulting diagnostic support archive. Because the output archive remains readable by the unprivileged user, the attacker can extract and read the sensitive root-owned files, leading to a complete information disclosure of system secrets.
Attack profile
How easy it is to exploit
- Attack vector
- Local
- Complexity
- Low
- Privileges needed
- Low
- User interaction
- Required
What an attacker can affect
- Confidentiality
- High
- Integrity
- None
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
5.0
ubuntu-pro-client Local Privilege Escalation and Information Disclosure via Symlink Arbitrary File Read in collect-logs
An insecure symlink following vulnerability exists in Canonical ubuntu-pro-client (formerly ubuntu-advantage-tools) within the pro collect-logs command framework. The utility creates or utilizes predictable temporary file paths or user-accessible log directories when gathering diagnostic information without verifying the file type or ownership. An unprivileged local attacker can exploit this behavior by creating a symbolic link (symlink) at a predictable destination path pointing to an arbitrary, root-readable file (such as /etc/shadow or private files within /root). When a root administrator or operator subsequently executes the pro collect-logs command, the tool follows the user-controlled symlink, reads the target file, and compresses its contents into the resulting diagnostic support archive. Because the output archive remains readable by the unprivileged user, the attacker can extract and read the sensitive root-owned files, leading to a complete information disclosure of system secrets.
- Record
CVE-2026-12391- CVSS 3.1
- 5.0 Medium
CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:N/A:N - Weakness
- CWE-59
- Updated
- 2026-11-02
EUVDEUVD-2026-44912
5.0
An insecure symlink following vulnerability exists in Canonical ubuntu-pro-client (formerly ubuntu-advantage-tools) within the pro collect-logs command framework. The utility creates or utilizes predictable temporary file paths or user-accessible log directories when gathering diagnostic information without verifying the file type or ownership. An unprivileged local attacker can exploit this behavior by creating a symbolic link (symlink) at a predictable destination path pointing to an arbitrary, root-readable file (such as /etc/shadow or private files within /root). When a root administrator or operator subsequently executes the pro collect-logs command, the tool follows the user-controlled symlink, reads the target file, and compresses its contents into the resulting diagnostic support archive. Because the output archive remains readable by the unprivileged user, the attacker can extract and read the sensitive root-owned files, leading to a complete information disclosure of system secrets.
- Record
EUVD-2026-44912- CVSS 3.1
- 5.0 Medium
CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:N/A:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-whf7-7mxf-ww93
5.0
An insecure symlink following vulnerability exists in Canonical ubuntu-pro-client (formerly...
An insecure symlink following vulnerability exists in Canonical ubuntu-pro-client (formerly ubuntu-advantage-tools) within the pro collect-logs command framework. The utility creates or utilizes predictable temporary file paths or user-accessible log directories when gathering diagnostic information without verifying the file type or ownership. An unprivileged local attacker can exploit this behavior by creating a symbolic link (symlink) at a predictable destination path pointing to an arbitrary, root-readable file (such as /etc/shadow or private files within /root). When a root administrator or operator subsequently executes the pro collect-logs command, the tool follows the user-controlled symlink, reads the target file, and compresses its contents into the resulting diagnostic support archive. Because the output archive remains readable by the unprivileged user, the attacker can extract and read the sensitive root-owned files, leading to a complete information disclosure of system secrets.
- Record
GHSA-whf7-7mxf-ww93- CVSS 3.1
- 5.0 Medium
CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:N/A:N - Weakness
- CWE-59
- Updated
- 2026-11-02
NVD
5.0
An insecure symlink following vulnerability exists in Canonical ubuntu-pro-client (formerly ubuntu-advantage-tools) within the pro collect-logs command framework. The utility creates or utilizes predictable temporary file paths or user-accessible log directories when gathering diagnostic information without verifying the file type or ownership. An unprivileged local attacker can exploit this behavior by creating a symbolic link (symlink) at a predictable destination path pointing to an arbitrary, root-readable file (such as /etc/shadow or private files within /root). When a root administrator or operator subsequently executes the pro collect-logs command, the tool follows the user-controlled symlink, reads the target file, and compresses its contents into the resulting diagnostic support archive. Because the output archive remains readable by the unprivileged user, the attacker can extract and read the sensitive root-owned files, leading to a complete information disclosure of system secrets.
- Record
CVE-2026-12391- CVSS 3.1
- 5.0 Medium
CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:N/A:N - Weakness
- CWE-59
- Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-12391
5.0
An insecure symlink following vulnerability exists in Canonical ubuntu-pro-client (formerly ubuntu-advantage-tools) within the pro collect-logs command framework. The utility creates or utilizes predictable temporary file paths or user-accessible log directories when gathering diagnostic information without verifying the file type or ownership. An unprivileged local attacker can exploit this behavior by creating a symbolic link (symlink) at a predictable destination path pointing to an arbitrary, root-readable file (such as /etc/shadow or private files within /root). When a root administrator or operator subsequently executes the pro collect-logs command, the tool follows the user-controlled symlink, reads the target file, and compresses its contents into the resulting diagnostic support archive. Because the output archive remains readable by the unprivileged user, the attacker can extract and read the sensitive root-owned files, leading to a complete information disclosure of system secrets.
- Record
UBUNTU-CVE-2026-12391- CVSS 3.1
- 5.0 Medium
CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:N/A:N - Updated
- 2026-11-02
OSVCLSA-2026-1785340982 No score
Fix CVE(s): CVE-2026-11386, CVE-2026-12391, CVE-2026-9494
- Bump epoch to supersede the vendor package in the ELS channel (matches the ubuntu16/ubuntu18 ELS branches).
- Add gpg to Build-Depends: the build-time test suite (uaclient/tests/test_gpg.py) invokes the gpg binary, which is not present in the minimal ELS build chroot.
- Add debian/mark_skip_pytests.sh and invoke it from debian/rules: on FIPS-capable build hosts running in a disabled state, some status/FIPS pytests fail at build time; skip only those, only in that environment (matches the ubuntu16/ubuntu18 ELS branches).
- Skip tools/check-versions-are-consistent.py in override_dh_auto_build: its regex does not handle a package epoch and misparses our 1:34~20.04+tuxcare.elsN version, aborting the build; version.py already matches the shipped upstream version (34).
- SECURITY UPDATE: Pro bearer token exposed via apt-helper command line
- Write APT credentials to a temporary 0600 auth file and pass a credential-free URL to apt-helper, instead of embedding the token in the download-file URL argument where it leaked to local users via /proc/<pid>/cmdline. Source tarball re-packed with the fix (3.0 native).
- cve-2026-9494
- SECURITY UPDATE: APT source injection via crafted contract-server response
- validate contract directives (aptURL, suites, additionalPackages) to reject newline/CR/NUL/space characters, preventing injection of attacker-controlled lines into root-owned apt sources and the apt-get install invocation. Source tarball re-packed with the fix (3.0 native).
- cve-2026-11386
- SECURITY UPDATE: symlink file disclosure in "pro collect-logs"
- Skip symlinked user log files and create the diagnostic archive exclusively (x:gz) with a root-only umask so an existing output file or symlink is not followed or overwritten. Source tarball re-packed with the fix (3.0 native).
- cve-2026-12391
- Record
CLSA-2026-1785340982- Updated
- 2026-11-02
OSVCLSA-2026-1785489136 No score
Fix CVE(s): CVE-2026-11386, CVE-2026-12391, CVE-2026-9494
- SECURITY UPDATE: Pro bearer token exposed via apt-helper command line
- Write APT credentials to a temporary 0600 auth file and pass a credential-free URL to apt-helper, instead of embedding the token in the download-file URL argument where it leaked to local users via /proc/<pid>/cmdline. Source tarball re-packed with the fix (3.0 native).
- cve-2026-9494
- SECURITY UPDATE: APT source injection via crafted contract-server response
- validate contract directives (aptURL, suites, additionalPackages) to reject newline/CR/NUL/space characters, preventing injection of attacker-controlled lines into root-owned apt sources and the apt-get install invocation. Source tarball re-packed with the fix (3.0 native).
- cve-2026-11386
- SECURITY UPDATE: symlink file disclosure in "pro collect-logs"
- Skip symlinked user log files and create the diagnostic archive exclusively (x:gz) with a root-only umask so an existing output file or symlink is not followed or overwritten. Source tarball re-packed with the fix (3.0 native).
- cve-2026-12391
- Record
CLSA-2026-1785489136- Updated
- 2026-11-02
OSVUSN-8555-1 No score
ubuntu-advantage-tools vulnerabilities
Bilal Teke discovered that Ubuntu Advantage Tools exposed the Pro bearer token in command-line arguments when validating APT credentials. A local attacker could possibly use this issue to obtain sensitive information and gain unauthorized access to Ubuntu Pro repositories. (CVE-2026-9494)
Frederick Jerusha discovered that Ubuntu Advantage Tools did not properly validate data received from the contract server when writing APT source files. An attacker could possibly use this issue to inject arbitrary APT configuration and execute arbitrary code. (CVE-2026-11386)
Mateusz Gierblinski discovered that Ubuntu Advantage Tools did not properly handle symbolic links when collecting diagnostic logs. A local attacker could possibly use this issue to obtain sensitive information from files owned by the administrator. This issue only affected Ubuntu 16.04 LTS, Ubuntu 18.04 LTS, Ubuntu 20.04 LTS, Ubuntu 22.04 LTS, Ubuntu 24.04 LTS and Ubuntu 26.04 LTS. (CVE-2026-12391)
- Record
USN-8555-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
ubuntu-advantage-proTuxCare:Ubuntu:20.04 From an advisory covering 3 CVEs |
before 1:34~20.04+tuxcare.els1 | 1:34~20.04+tuxcare.els1 |
ubuntu-advantage-toolsTuxCare:Ubuntu:20.04 From an advisory covering 3 CVEs |
before 1:34~20.04+tuxcare.els1 | 1:34~20.04+tuxcare.els1 |
ubuntu-pro-auto-attachTuxCare:Ubuntu:20.04 From an advisory covering 3 CVEs |
before 1:34~20.04+tuxcare.els1 | 1:34~20.04+tuxcare.els1 |
ubuntu-pro-clientTuxCare:Ubuntu:20.04 From an advisory covering 3 CVEs |
before 1:34~20.04+tuxcare.els1 | 1:34~20.04+tuxcare.els1 |
ubuntu-pro-client-l10nTuxCare:Ubuntu:20.04 From an advisory covering 3 CVEs |
before 1:34~20.04+tuxcare.els1 | 1:34~20.04+tuxcare.els1 |
ubuntu-advantage-proTuxCare:Ubuntu:18.04 From an advisory covering 3 CVEs |
before 1:32.3~18.04+tuxcare.els2 | 1:32.3~18.04+tuxcare.els2 |
ubuntu-advantage-toolsTuxCare:Ubuntu:18.04 From an advisory covering 3 CVEs |
before 1:32.3~18.04+tuxcare.els2 | 1:32.3~18.04+tuxcare.els2 |
ubuntu-pro-auto-attachTuxCare:Ubuntu:18.04 From an advisory covering 3 CVEs |
before 1:32.3~18.04+tuxcare.els2 | 1:32.3~18.04+tuxcare.els2 |
ubuntu-pro-clientTuxCare:Ubuntu:18.04 From an advisory covering 3 CVEs |
before 1:32.3~18.04+tuxcare.els2 | 1:32.3~18.04+tuxcare.els2 |
ubuntu-pro-client-l10nTuxCare:Ubuntu:18.04 From an advisory covering 3 CVEs |
before 1:32.3~18.04+tuxcare.els2 | 1:32.3~18.04+tuxcare.els2 |
Show 11 moreShow less
| Package | Affected | Fixed |
|---|---|---|
ubuntu-advantage-toolsUbuntu:22.04:LTS |
before 37.2ubuntu~22.04.1, plus listed versions 27.2.2~21.10.127.3~21.10.127.4~22.04.127.4.1~22.04.127.4.2~22.04.1 Show 29 moreShow less27.5~22.04.127.6~22.04.127.7~22.04.127.8~22.04.127.9~22.04.127.10.1~22.04.127.11.2~22.04.127.11.3~22.04.127.12~22.04.127.13.1~22.04.127.13.2~22.04.127.13.3~22.04.127.13.5~22.04.127.13.6~22.04.127.14.4~22.0428.1~22.0429.4~22.0430~22.0431.2~22.0431.2.2~22.0431.2.3~22.0432.3~22.0432.3.1~22.0433.2~22.0434~22.0435.1ubuntu0~22.0436ubuntu0~22.0437.1ubuntu0~22.0437.2ubuntu~22.04 |
37.2ubuntu~22.04.1 |
ubuntu-advantage-toolsUbuntu:24.04:LTS |
before 37.2ubuntu~24.04.1, plus listed versions 29.43030.131.131.2.2 Show 10 moreShow less31.2.2build131.2.332.3~24.0432.3.1~24.0433.2~24.04.134~24.0435.1ubuntu0~24.0436ubuntu0~24.0437.1ubuntu0~24.0437.2ubuntu~24.04 |
37.2ubuntu~24.04.1 |
ubuntu-advantage-toolsUbuntu:25.10 |
All versions, plus listed versions 3535.1ubuntu036ubuntu037ubuntu037.1ubuntu0~25.1037.2ubuntu~25.10 |
None known |
ubuntu-advantage-toolsUbuntu:26.04:LTS |
before 37.2ubuntu0.1, plus listed versions 37ubuntu037.1ubuntu037.2ubuntu |
37.2ubuntu0.1 |
ubuntu-advantage-toolsUbuntu:14.04:LTS From an advisory covering 3 CVEs |
before 19.7ubuntu0.1, plus listed versions 210ubuntu0.14.04.210ubuntu0.14.04.310ubuntu0.14.04.419.6~ubuntu14.04.319.6~ubuntu14.04.419.7 |
19.7ubuntu0.1 |
ubuntu-advantage-toolsUbuntu:16.04:LTS From an advisory covering 3 CVEs |
before 37.1ubuntu0~16.04.1, plus listed versions 210ubuntu0.16.04.127.0~16.04.127.1~16.04.127.2.1~16.04.1 Show 31 moreShow less27.2.2~16.04.127.3~16.04.127.4.1~16.04.127.4.2~16.04.127.5~16.04.127.6~16.04.127.7~16.04.127.8~16.04.127.9~16.04.127.10.1~16.04.127.11.2~16.04.127.11.3~16.04.127.12~16.04.127.13.1~16.04.127.13.2~16.04.127.13.3~16.04.127.13.5~16.04.127.13.6~16.04.127.14.4~16.0428.1~16.0429.4~16.0430~16.0431.2~16.0431.2.2~16.0432.3~16.0432.3.1~16.0433.2~16.0434~16.0435.1ubuntu0~16.0436ubuntu0~16.0437.1ubuntu0~16.04 |
37.1ubuntu0~16.04.1 |
ubuntu-advantage-toolsUbuntu:18.04:LTS From an advisory covering 3 CVEs |
before 37.1ubuntu0~18.04.1, plus listed versions 1013141617 Show 35 moreShow less27.0.2~18.04.127.1~18.04.127.2.1~18.04.127.2.2~18.04.127.3~18.04.127.4.1~18.04.127.4.2~18.04.127.5~18.04.127.6~18.04.127.7~18.04.127.8~18.04.127.9~18.04.127.10.1~18.04.127.11.2~18.04.127.11.3~18.04.127.12~18.04.127.13.1~18.04.127.13.2~18.04.127.13.3~18.04.127.13.5~18.04.127.13.6~18.04.127.14.4~18.0428.1~18.0429.4~18.0430~18.0431.2~18.0431.2.2~18.0431.2.3~18.0432.3~18.0432.3.1~18.0433.2~18.0434~18.0435.1ubuntu0~18.0436ubuntu0~18.0437.1ubuntu0~18.04 |
37.1ubuntu0~18.04.1 |
ubuntu-advantage-toolsUbuntu:20.04:LTS From an advisory covering 3 CVEs |
before 37.1ubuntu0~20.04.1, plus listed versions 19.5.120.2.1~0ubuntu120.327.0.2~20.04.127.1~20.04.1 Show 33 moreShow less27.2.1~20.04.127.2.2~20.04.127.3~20.04.127.4.1~20.04.127.4.2~20.04.127.5~20.04.127.6~20.04.127.7~20.04.127.8~20.04.127.9~20.04.127.10.1~20.04.127.11.2~20.04.127.11.3~20.04.127.12~20.04.127.13.1~20.04.127.13.2~20.04.127.13.3~20.04.127.13.5~20.04.127.13.6~20.04.127.14.4~20.0428.1~20.0429.4~20.0430~20.0431.2~20.0431.2.2~20.0431.2.3~20.0432.3~20.0432.3.1~20.0433.2~20.0434~20.0435.1ubuntu0~20.0436ubuntu0~20.0437.1ubuntu0~20.04 |
37.1ubuntu0~20.04.1 |
ubuntu-advantage-toolsUbuntu:22.04:LTS From an advisory covering 3 CVEs |
before 37.2ubuntu~22.04.1, plus listed versions 27.2.2~21.10.127.3~21.10.127.4~22.04.127.4.1~22.04.127.4.2~22.04.1 Show 29 moreShow less27.5~22.04.127.6~22.04.127.7~22.04.127.8~22.04.127.9~22.04.127.10.1~22.04.127.11.2~22.04.127.11.3~22.04.127.12~22.04.127.13.1~22.04.127.13.2~22.04.127.13.3~22.04.127.13.5~22.04.127.13.6~22.04.127.14.4~22.0428.1~22.0429.4~22.0430~22.0431.2~22.0431.2.2~22.0431.2.3~22.0432.3~22.0432.3.1~22.0433.2~22.0434~22.0435.1ubuntu0~22.0436ubuntu0~22.0437.1ubuntu0~22.0437.2ubuntu~22.04 |
37.2ubuntu~22.04.1 |
ubuntu-advantage-toolsUbuntu:24.04:LTS From an advisory covering 3 CVEs |
before 37.2ubuntu~24.04.1, plus listed versions 29.43030.131.131.2.2 Show 10 moreShow less31.2.2build131.2.332.3~24.0432.3.1~24.0433.2~24.04.134~24.0435.1ubuntu0~24.0436ubuntu0~24.0437.1ubuntu0~24.0437.2ubuntu~24.04 |
37.2ubuntu~24.04.1 |
ubuntu-advantage-toolsUbuntu:26.04:LTS From an advisory covering 3 CVEs |
before 37.2ubuntu0.1, plus listed versions 37ubuntu037.1ubuntu037.2ubuntu |
37.2ubuntu0.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-12391 is a medium vulnerability (CVSS 5.0) in Canonical Ubuntu 16.04 Lts, published July 16, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.21%, the 10th percentile. Fixed in ubuntu-advantage-tools 37.2ubuntu~22.04.1.