[UBUNTU 20.04] SE-tooling: New IBM host-key subject locality (s390-tools)
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Ubuntu on IBM z Systems |
Fix Released
|
Critical
|
Skipper Bug Screeners | ||
s390-tools (Ubuntu) |
Fix Released
|
High
|
Frank Heimes | ||
Focal |
Fix Released
|
Critical
|
Unassigned | ||
Jammy |
Fix Released
|
Critical
|
Unassigned | ||
Mantic |
Fix Released
|
Critical
|
Unassigned | ||
Noble |
Fix Released
|
High
|
Frank Heimes | ||
s390-tools-signed (Ubuntu) |
Fix Released
|
High
|
Frank Heimes | ||
Focal |
Fix Released
|
Critical
|
Unassigned | ||
Jammy |
Fix Released
|
Critical
|
Unassigned | ||
Mantic |
Fix Released
|
Critical
|
Unassigned | ||
Noble |
Fix Released
|
High
|
Frank Heimes |
Bug Description
SRU Justification:
[ Impact ]
* Symptom:
* There is an issue with the Secure Execution (SE) tooling,
especially the new IBM host-key subject locality,
that leads to the fact that on April 24 (z15) / March 29 (z16)
users will notice that the tooling for Secure execution will no
longer detect that the provided IBM signing key for that generation
is a valid IBM signing key.
* The error message will contain "no IBM signing key found" or similar.
The respective tool will reject creating an encrypted request/image
as it could not verify the host-key for its validity.
* This affects the genprotimg, pvattest, and pvsecret tools.
(Please notice that these tools got introduced over time with different
s390-tools versions that belong to different Ubuntu releases).
* Problem:
* The new IBM signing keys no longer contain 'Poughkeepsie' as
'subject locality' and 'Armonk' is used.
* The SE tooling checks, beside other things, for the subject in the
IBM signing key.
* If the subject is not the expected one, the certificate is not
recognized as a valid IBM signing key.
And without a valid IBM signing key, the host-key verification
cannot succeed and users cannot build trustable SE images and
attestation or add-secret requests.
* Solution:
* Mitigations are available upstream.
* The fixes allow Armonk as additional locality in the subject
and allow potential mismatches in the locality of revocation list
or host-key issuer subject that may still contain Poughkeepsie
instead of Armonk.
[ Test Plan ]
* The testing is required for all three affected tools:
genprotimg, pvattest, and pvsecret
* Obtain a (z15) Host-key document e.g. via the official channel
see: https:/
* Get a signing key (z15) + intermediate certificate
see: https:/
* (optional) verify that the signing key is a new one
check for: Locality Armonk
$ openssl x509 -text -in international_
Subject: C = US, ST = New York, L = Armonk, O = International Business Machines Corporation, OU = IBM Z Host Key Signing Service, CN = International Business Machines Corporation
Here "L" **must** be Armonk, and not Poughkeepsie!
* Run the tools (if available, depends on the s390-tools version):
The fixed tools will accept the cert chain and exit with exit code 0
and the output generated.
The non-fixed will print n error message, abort, and report exit != 0
* $ genprotimg: genprotimg -o tmp -i /boot/vmlinuz-
# BEFORE_FIX:
Failed to verify host-key document: please specify at least one IBM Z signing key
# AFTER_FIX:
# exit code 0
* $ pvattest create -VVV -o tmp --arpk arpk -k ~/hostkey.crt --cert ~/international
# BEFORE_FIX:
ERROR: Creating the attestation request failed:
Specify at least one IBM Z signing key
# AFTER_FIX:
# exit code 0
* $ pvsecret create --hdr ~/secure_guest.hdr -o tmp -k ~/hostkey.crt --cert ~/international
# BEFORE_FIX:
error: Host-key verification failed: Specify one IBM Z signing key
# AFTER FIX:
Successfully generated the request
* Note: You can use any z15 host-key you like.
It does not has to match to the machine you are running on.
For the secure-guest.hdr in pvsecret you can use any se-header you like.
You can use a test-asset from s390-tools repository:
https:/
[ Where problems could occur ]
* The tools genprotimg, pvattest, and pvsecret tools are affected.
Since they got introduced over time with different s390-tools versions
that belong to different Ubuntu releases, it's important to figure out the
commits/patches that are required for each release.
* The refactoring commit f6c6f0cc7124332
("rust/pv/test: Code + Certificate refactoring") is needed
for noble and mantic, but needs several adjustments due to context changes.
The code could be negatively affected and the build might even break.
(A test build in PPA mitigates such issues.)
* As host host-key issuer subject now Poughkeepsie and Armonk is allowed.
If the conditional statements are not properly coded, either Poughkeepsie
or Armonk might be allowed, which would fails in case the opposite is used.
(Testing if the IBM signing key is valid will mitigate this.)
* In worst case a broken detection of the host-key issuer subject may lead
to positive validations, regardless of the subject content.
(Testing if the IBM signing key is valid will mitigate this.)
* A test build for all affected Ubuntu releases (N, M, J and F) succeeded
and is available via this PPA:
https:/
* These test packages will be pre-tested by IBM.
* This affected Secure Execution (SE) functionality only on s390x.
No other tools that are part of the s390-tools packages are affected
(or got modified in any way).
[ Other Info ]
* Secure Execution (SE) was introduced with in Ubuntu Server for s390x
with 20.04 LTS, hence 20.04 LTS and higher is affected.
* And with that the s390-tools versions that are still in service:
2.12.
2.20.
2.29.
2.30.0-0ubuntu1 | noble-updates / 2.31.0-0ubuntu4 | noble-proposed
* The following commits / patches need to be applied to the following
s390-tools versions:
* f6c6f0cc7124332
("
to noble, mantic
* 1a3d0b74f7819f5
("rust/pv: Support `Armonk` in IBM signing key subject")
to noble, mantic
* d14e7593cc63809
("genprotimg: support `Armonk` in IBM signing key subject")
to noble, mantic, jammy, focal
* d7c95265cdb6217
("libpv: Support `Armonk` in IBM signing key subject")
to noble, mantic, jammy
* 2b5e7b049123aff
("pvattest: Fix root-ca parsing")
to noble, mantic, jammy
* 8723dbce048add8
("genprotimg: add OpenSSL 3.0 support")
c5d566a4da
("
f5744b95db
("genprotimg: Fix build with OpenSSL 1.1")
all to focal only
__________
Description: SE-tooling: New IBM host-key subject locality
Symptom:
On April 24 (z15) / March 29 (z16) user will notice that the
tooling for Secure execution will no longer detect that the provided
IBM signing key for that generation is a valid IBM signing key. The
error message will contain "no IBM signing key found" or similar. The
respective tool will reject creating an encrypted request/image as it
could not verify the host-key for its validity. This affects
genprotimg, pvattest, and pvsecret.
Problem:
The new IBM signing keys no longer contain 'Poughkeepsie' as 'subject
locality' and 'Armonk' is used. The SE tooling checks, beside other
things, for the subject in the IBM signing key. If the subject is not
the expected one, the certificate is not recognized as a valid IBM
signing key. With no valid IBM signing key, the host-key verification
cannot succeed and users cannot build trustable SE images and
attestation or add-secret requests.
Solution:
Mitigations are available upstream. The fixes allow Armonk as
additional locality in the subject and allow potential mismatches in
the locality of revocation list or host-key issuer subject that may
still contain Poughkeepsie instead of Armonk.
Reproduction: Use a new IBM signing key in the unpatched tooling.
The fix is required due to the circumstances described here:
https:/
This is required for all Ubuntu releases in service that support secure execution.
Therefore, Ubuntu 20.04 LTS (focal) and above are affected and need to be fixed.
tags: | added: architecture-s39064 bugnameltc-205928 severity-critical targetmilestone-inin--- |
Changed in ubuntu: | |
assignee: | nobody → Skipper Bug Screeners (skipper-screen-team) |
affects: | ubuntu → linux (Ubuntu) |
affects: | linux (Ubuntu) → s390-tools (Ubuntu) |
Changed in ubuntu-z-systems: | |
assignee: | nobody → Skipper Bug Screeners (skipper-screen-team) |
Changed in s390-tools (Ubuntu): | |
assignee: | Skipper Bug Screeners (skipper-screen-team) → nobody |
Changed in ubuntu-z-systems: | |
importance: | Undecided → Critical |
information type: | Public → Public Security |
description: | updated |
tags: |
added: targetmilestone-inin2004 removed: targetmilestone-inin--- |
Changed in ubuntu-z-systems: | |
status: | New → In Progress |
description: | updated |
Changed in s390-tools-signed (Ubuntu Mantic): | |
status: | New → In Progress |
Changed in s390-tools-signed (Ubuntu Jammy): | |
status: | New → In Progress |
Changed in s390-tools (Ubuntu Mantic): | |
status: | New → In Progress |
Changed in s390-tools (Ubuntu Jammy): | |
status: | New → In Progress |
Changed in s390-tools (Ubuntu Focal): | |
status: | New → Incomplete |
description: | updated |
Changed in s390-tools-signed (Ubuntu Mantic): | |
importance: | Undecided → Critical |
Changed in s390-tools-signed (Ubuntu Jammy): | |
importance: | Undecided → Critical |
Changed in s390-tools-signed (Ubuntu Focal): | |
importance: | Undecided → Critical |
Changed in s390-tools (Ubuntu Mantic): | |
importance: | Undecided → Critical |
Changed in s390-tools (Ubuntu Jammy): | |
importance: | Undecided → Critical |
Changed in s390-tools (Ubuntu Focal): | |
importance: | Undecided → Critical |
Changed in ubuntu-z-systems: | |
status: | In Progress → Fix Committed |
Changed in ubuntu-z-systems: | |
status: | Fix Committed → Fix Released |
------- Comment From <email address hidden> 2024-03-27 16:09 EDT-------
Full list of patches:
a54daf459e7504c 0f42d3eb028100b 7ab07894ff ("pvattest: Fix root-ca parsing") 7d1993de3c8fc07 8c5cffed88 ("libpv: Support `Armonk` in IBM signing key subject") 11ca42b09e11c53 477ae13d5c ("genprotimg: support `Armonk` in IBM signing key subject") e087e6ecbf3ec87 9a05a88bbc ("rust/pv: Support `Armonk` in IBM signing key subject")
5e1cb58a21ae070
d14e7593cc63809
1a3d0b74f7819f5