CVE-2026-11386
ubuntu-pro-client Input Validation Vulnerability Leading to Arbitrary APT Directive Injection and Remote Code Execution
An input validation and injection vulnerability exists in Canonical ubuntu-pro-client (formerly ubuntu-advantage-tools). The client constructs APT source files (such as /etc/apt/sources.list.d/ubuntu-.list or their DEB822 equivalents) using data received directly from the contract server response via the directives.suites[] and directives.aptURL fields. Because the client utilizes Python's str.format() to write these files without performing escaping, validation, or newline character filtering, a malicious or tampered contract response containing embedded newline (\n) characters can successfully inject arbitrary, attacker-controlled deb configuration lines into root-owned APT sources. When combined with the unvalidated additionalPackages[] field—which is passed positionally into a root-executed apt-get install command—an attacker capable of spoofing or manipulating the contract response (e.g., via a compromised internal infrastructure, an intercepted connection utilizing a trusted CA, or local logical bugs) can force the client to fetch and install malicious packages. This ultimately leads to arbitrary code execution with root privileges on the affected system. This component is preinstalled on supported Ubuntu Server releases and auto-attaches by default on cloud provider Ubuntu Pro images.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- High
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
9.0
ubuntu-pro-client Input Validation Vulnerability Leading to Arbitrary APT Directive Injection and Remote Code Execution
An input validation and injection vulnerability exists in Canonical ubuntu-pro-client (formerly ubuntu-advantage-tools). The client constructs APT source files (such as /etc/apt/sources.list.d/ubuntu-.list or their DEB822 equivalents) using data received directly from the contract server response via the directives.suites[] and directives.aptURL fields. Because the client utilizes Python's str.format() to write these files without performing escaping, validation, or newline character filtering, a malicious or tampered contract response containing embedded newline (\n) characters can successfully inject arbitrary, attacker-controlled deb configuration lines into root-owned APT sources. When combined with the unvalidated additionalPackages[] field—which is passed positionally into a root-executed apt-get install command—an attacker capable of spoofing or manipulating the contract response (e.g., via a compromised internal infrastructure, an intercepted connection utilizing a trusted CA, or local logical bugs) can force the client to fetch and install malicious packages. This ultimately leads to arbitrary code execution with root privileges on the affected system. This component is preinstalled on supported Ubuntu Server releases and auto-attaches by default on cloud provider Ubuntu Pro images.
- Record
CVE-2026-11386- CVSS 3.1
- 9.0 Critical
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H - Weakness
- CWE-20
- Updated
- 2026-11-02
EUVDEUVD-2026-44911
9.0
An input validation and injection vulnerability exists in Canonical ubuntu-pro-client (formerly ubuntu-advantage-tools). The client constructs APT source files (such as /etc/apt/sources.list.d/ubuntu-.list or their DEB822 equivalents) using data received directly from the contract server response via the directives.suites[] and directives.aptURL fields. Because the client utilizes Python's str.format() to write these files without performing escaping, validation, or newline character filtering, a malicious or tampered contract response containing embedded newline (\n) characters can successfully inject arbitrary, attacker-controlled deb configuration lines into root-owned APT sources. When combined with the unvalidated additionalPackages[] field—which is passed positionally into a root-executed apt-get install command—an attacker capable of spoofing or manipulating the contract response (e.g., via a compromised internal infrastructure, an intercepted connection utilizing a trusted CA, or local logical bugs) can force the client to fetch and install malicious packages. This ultimately leads to arbitrary code execution with root privileges on the affected system. This component is preinstalled on supported Ubuntu Server releases and auto-attaches by default on cloud provider Ubuntu Pro images.
- Record
EUVD-2026-44911- CVSS 3.1
- 9.0 Critical
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-9836-vm3x-qwmj
9.0
An input validation and injection vulnerability exists in Canonical ubuntu-pro-client (formerly...
An input validation and injection vulnerability exists in Canonical ubuntu-pro-client (formerly ubuntu-advantage-tools). The client constructs APT source files (such as /etc/apt/sources.list.d/ubuntu-.list or their DEB822 equivalents) using data received directly from the contract server response via the directives.suites[] and directives.aptURL fields. Because the client utilizes Python's str.format() to write these files without performing escaping, validation, or newline character filtering, a malicious or tampered contract response containing embedded newline (\n) characters can successfully inject arbitrary, attacker-controlled deb configuration lines into root-owned APT sources. When combined with the unvalidated additionalPackages[] field—which is passed positionally into a root-executed apt-get install command—an attacker capable of spoofing or manipulating the contract response (e.g., via a compromised internal infrastructure, an intercepted connection utilizing a trusted CA, or local logical bugs) can force the client to fetch and install malicious packages. This ultimately leads to arbitrary code execution with root privileges on the affected system. This component is preinstalled on supported Ubuntu Server releases and auto-attaches by default on cloud provider Ubuntu Pro images.
- Record
GHSA-9836-vm3x-qwmj- CVSS 3.1
- 9.0 Critical
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H - Weakness
- CWE-20
- Updated
- 2026-11-02
NVD
9.0
An input validation and injection vulnerability exists in Canonical ubuntu-pro-client (formerly ubuntu-advantage-tools). The client constructs APT source files (such as /etc/apt/sources.list.d/ubuntu-.list or their DEB822 equivalents) using data received directly from the contract server response via the directives.suites[] and directives.aptURL fields. Because the client utilizes Python's str.format() to write these files without performing escaping, validation, or newline character filtering, a malicious or tampered contract response containing embedded newline (\n) characters can successfully inject arbitrary, attacker-controlled deb configuration lines into root-owned APT sources. When combined with the unvalidated additionalPackages[] field—which is passed positionally into a root-executed apt-get install command—an attacker capable of spoofing or manipulating the contract response (e.g., via a compromised internal infrastructure, an intercepted connection utilizing a trusted CA, or local logical bugs) can force the client to fetch and install malicious packages. This ultimately leads to arbitrary code execution with root privileges on the affected system. This component is preinstalled on supported Ubuntu Server releases and auto-attaches by default on cloud provider Ubuntu Pro images.
- Record
CVE-2026-11386- CVSS 3.1
- 9.0 Critical
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H - Weakness
- CWE-20
- Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-11386
9.0
An input validation and injection vulnerability exists in Canonical ubuntu-pro-client (formerly ubuntu-advantage-tools). The client constructs APT source files (such as /etc/apt/sources.list.d/ubuntu-.list or their DEB822 equivalents) using data received directly from the contract server response via the directives.suites[] and directives.aptURL fields. Because the client utilizes Python's str.format() to write these files without performing escaping, validation, or newline character filtering, a malicious or tampered contract response containing embedded newline (\n) characters can successfully inject arbitrary, attacker-controlled deb configuration lines into root-owned APT sources. When combined with the unvalidated additionalPackages[] field—which is passed positionally into a root-executed apt-get install command—an attacker capable of spoofing or manipulating the contract response (e.g., via a compromised internal infrastructure, an intercepted connection utilizing a trusted CA, or local logical bugs) can force the client to fetch and install malicious packages. This ultimately leads to arbitrary code execution with root privileges on the affected system. This component is preinstalled on supported Ubuntu Server releases and auto-attaches by default on cloud provider Ubuntu Pro images.
- Record
UBUNTU-CVE-2026-11386- CVSS 3.1
- 9.0 Critical
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H - 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-11386 is a critical vulnerability (CVSS 9.0) in Canonical Ubuntu 14.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.53%, the 44th percentile. Fixed in ubuntu-advantage-tools 37.2ubuntu~22.04.1.