Azure Update Manager disregards FIPS repositories for Ubuntu 22.04
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 55/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- python, ubuntu
- Domain
- devops, operating-systems
Research direction
Start with AptitudePackageManager.py:186 and the security source-list construction, then trace install_security_updates_azgps_coordinated() at lines 486-490 alongside the Ubuntu Pro discovery path. Reproduce or inspect the Ubuntu 22.04 FIPS case described in the issue; done means FIPS openssh updates remain available during installation and non-FIPS packages are not selected.
Written by the indexing model from the issue text.
Description
Describe the bug
Due to the filter in AptitudePackageManager, updates provided by the FIPS repo https://esm.ubuntu.com/fips-updates/ubuntu jammy-updates does not pass the filter and is dropped. If the Ubuntu Pro client is enabled, this problem is worse and will ultimately lead to non-FIPS packages being installed causing conflicts.
Azure Update Manager installs non-FIPS openssh-server on FIPS-enabled Ubuntu 22.04
Root Cause
The LinuxPatchExtension (v1.6.64) has two independent mechanisms for discovering
available updates:
- apt-get -s dist-upgrade (using a custom filtered source list)
- Ubuntu Pro Client API (via uaclient.api.u.pro.packages.updates.v1)
When building the security-classification source list, the extension filters each
deb line with a simple substring check:
AptitudePackageManager.py:186
if base_classification == Constants.PackageClassification.SECURITY and "security" not in line:
continue
The FIPS updates repo uses suite name "jammy-updates", not "jammy-security":
deb https://esm.ubuntu.com/fips-updates/ubuntu jammy-updates main
So it gets excluded from the security source list. Other ESM repos survive because
they have "-security" suites (jammy-apps-security, jammy-infra-security).
During DISCOVERY, the Pro Client independently finds the FIPS openssh packages
(classified as "standard-security") and they get merged into the combined package
list. The log shows them as "Pro Client only updates."
During INSTALLATION, the Pro Client is not involved. The extension calls:
AptitudePackageManager.py:486-490
install_security_updates_azgps_coordinated() ->
apt-get -y --only-upgrade true dist-upgrade
This rebuilds the same filtered security source list (without the FIPS repo).
apt resolves openssh-server from jammy-security instead, installing the non-FIPS
version.
Summary: discovery uses Pro Client (FIPS-aware), installation uses apt with a
filtered source list (not FIPS-aware). The two paths are not coordinated.
- Dominant language
- Python
- Stars
- 12
- Forks
- 20
- Avg merge
- 3d 2h
- Merged PRs (30d)
- 2
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Azure/LinuxPatchExtension
-
Difficulty 2/5 Half a day Newbie friendliness 68/100
Azure/LinuxPatchExtension#350 · 1 comment ·
-
Difficulty 4/5 3-5 days Newbie friendliness 48/100
Azure/LinuxPatchExtension#381 · 1 reaction ·
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
Azure/LinuxPatchExtension#369 · 1 comment ·
-
Difficulty 3/5 1-2 days Newbie friendliness 52/100
Azure/LinuxPatchExtension#339 · 3 comments ·
-
Difficulty 3/5 1-2 days Newbie friendliness 38/100
Azure/LinuxPatchExtension#335 ·
All issues in Azure/LinuxPatchExtension
Similar issues
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
canonical/paas-charm#368 · 1 comment ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
tech debt
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
Difficulty 1/5 Under an hour Newbie friendliness 90/100
StevenBlack/hosts#3256 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 90/100
qualcomm/qai-appbuilder#275 ·