Azure / Azure/LinuxPatchExtension

Azure Update Manager disregards FIPS repositories for Ubuntu 22.04

Đang mở
#337 1 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
Python
Star
12
Fork
20
Merge trung bình
6 ngày 4 giờ
Pull request đã merge (30 ngày)
1

Mô tả

**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:

1. apt-get -s dist-upgrade (using a custom filtered source list)
2. 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.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Bắt đầu với AptitudePackageManager.py:186 và quá trình xây dựng danh sách nguồn bảo mật, sau đó lần theo install_security_updates_azgps_coordinated() ở các dòng 486-490 cùng với đường dẫn phát hiện Ubuntu Pro. Tái hiện hoặc kiểm tra trường hợp Ubuntu 22.04 FIPS được mô tả trong issue; được xem là hoàn tất khi các bản cập nhật openssh FIPS vẫn khả dụng trong quá trình cài đặt và các gói không phải FIPS không được chọn.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
python, ubuntu
Lĩnh vực
devops, operating-systems
Loại issue
Lỗi
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Ít trao đổi
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
55/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.