[Touch-packages] [Bug 1940141] Re: OpenSSL servers can send a non-empty status_request in a CertificateRequest

2022-05-24 Thread Bruce Elrick
All autopackage tests succeeded after multiple trials. Canonical
customer with golang client against openssl server, where bug was first
noticed, will be testing.

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to openssl in Ubuntu.
https://bugs.launchpad.net/bugs/1940141

Title:
  OpenSSL servers can send a non-empty status_request in a
  CertificateRequest

Status in openssl package in Ubuntu:
  Fix Released
Status in openssl source package in Bionic:
  Fix Committed

Bug description:
  [Impact]

  openssl does not conform to RFC8446, Sec. 4.4.2.1., by sending a
  CertificateRequest message to the client with a non-empty
  status_request extension.

  This issue was fixed in openssl-1.1.1d and is included in Focal
  onward.

  Upstream issue is tracked at https://github.com/openssl/openssl/issues/9767
  Upstream patch review at https://github.com/openssl/openssl/pull/9780

  The issue leads to various client failures with TLS 1.3 as described
  in, e.g.

  https://github.com/golang/go/issues/35722
  https://github.com/golang/go/issues/34040

  [Test Plan]

  The issue can be reproduced by building with `enable-ssl-trace`
  and then running `s_server` like this:

  ```
  openssl s_server -key key.pem -cert cert.pem -status_file 
test/recipes/ocsp-response.der -Verify 5
  ```

  And running `s_client` like this:

  ```
  openssl s_client -status -trace -cert cert.pem -key key.pem
  ```

  The output shows a `status_request` extension in the
  `CertificateRequest` as follows:

  Received Record
  Header:
    Version = TLS 1.2 (0x303)
    Content Type = ApplicationData (23)
    Length = 1591
    Inner Content Type = Handshake (22)
  CertificateRequest, Length=1570
    request_context (len=0):
    extensions, length = 1567
  extension_type=status_request(5), length=1521
     - 01 00 05 ed 30 82 05 e9-0a 01 00 a0 82 05 e2   
0..
    000f - 30 82 05 de 06 09 2b 06-01 05 05 07 30 01 01   
0.+.0..
    001e - 04 82 05 cf 30 82 05 cb-30 82 01 1a a1 81 86   
0...0..
    002d - 30 81 83 31 0b 30 09 06-03 55 04 06 13 02 47   
0..1.0...UG
  ...more lines omitted...

  If the `status_request` extension is present in a
  `CertificateRequest` then it must be empty according to RFC8446,
  Sec. 4.4.2.1.

  [Where problems could occur]

  The patch disables the `status_request` extension inside a
  `CertificateRequest`. Applications expecting the incorrect,
  non-empty reply for the `status_request` extension will break
  with this patch.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/openssl/+bug/1940141/+subscriptions


-- 
Mailing list: https://launchpad.net/~touch-packages
Post to : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp


[Touch-packages] [Bug 1940141] Re: OpenSSL servers can send a non-empty status_request in a CertificateRequest

2022-05-19 Thread Bruce Elrick
Several of the autopkgtest failures are due to response issues
(e.g.curl: (7) Failed to connect to launchpad.net port 443: Connection
timed out) so I'm going to ask that they be run again.

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to openssl in Ubuntu.
https://bugs.launchpad.net/bugs/1940141

Title:
  OpenSSL servers can send a non-empty status_request in a
  CertificateRequest

Status in openssl package in Ubuntu:
  Fix Released
Status in openssl source package in Bionic:
  Fix Committed

Bug description:
  [Impact]

  openssl does not conform to RFC8446, Sec. 4.4.2.1., by sending a
  CertificateRequest message to the client with a non-empty
  status_request extension.

  This issue was fixed in openssl-1.1.1d and is included in Focal
  onward.

  Upstream issue is tracked at https://github.com/openssl/openssl/issues/9767
  Upstream patch review at https://github.com/openssl/openssl/pull/9780

  The issue leads to various client failures with TLS 1.3 as described
  in, e.g.

  https://github.com/golang/go/issues/35722
  https://github.com/golang/go/issues/34040

  [Test Plan]

  The issue can be reproduced by building with `enable-ssl-trace`
  and then running `s_server` like this:

  ```
  openssl s_server -key key.pem -cert cert.pem -status_file 
test/recipes/ocsp-response.der -Verify 5
  ```

  And running `s_client` like this:

  ```
  openssl s_client -status -trace -cert cert.pem -key key.pem
  ```

  The output shows a `status_request` extension in the
  `CertificateRequest` as follows:

  Received Record
  Header:
    Version = TLS 1.2 (0x303)
    Content Type = ApplicationData (23)
    Length = 1591
    Inner Content Type = Handshake (22)
  CertificateRequest, Length=1570
    request_context (len=0):
    extensions, length = 1567
  extension_type=status_request(5), length=1521
     - 01 00 05 ed 30 82 05 e9-0a 01 00 a0 82 05 e2   
0..
    000f - 30 82 05 de 06 09 2b 06-01 05 05 07 30 01 01   
0.+.0..
    001e - 04 82 05 cf 30 82 05 cb-30 82 01 1a a1 81 86   
0...0..
    002d - 30 81 83 31 0b 30 09 06-03 55 04 06 13 02 47   
0..1.0...UG
  ...more lines omitted...

  If the `status_request` extension is present in a
  `CertificateRequest` then it must be empty according to RFC8446,
  Sec. 4.4.2.1.

  [Where problems could occur]

  The patch disables the `status_request` extension inside a
  `CertificateRequest`. Applications expecting the incorrect,
  non-empty reply for the `status_request` extension will break
  with this patch.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/openssl/+bug/1940141/+subscriptions


-- 
Mailing list: https://launchpad.net/~touch-packages
Post to : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp


[Touch-packages] [Bug 1940141] Re: OpenSSL servers can send a non-empty status_request in a CertificateRequest

2022-05-09 Thread Bruce Elrick
Please note the manual testing using the trace option shows the same
results.

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to openssl in Ubuntu.
https://bugs.launchpad.net/bugs/1940141

Title:
  OpenSSL servers can send a non-empty status_request in a
  CertificateRequest

Status in openssl package in Ubuntu:
  Fix Released
Status in openssl source package in Bionic:
  Fix Committed

Bug description:
  [Impact]

  openssl does not conform to RFC8446, Sec. 4.4.2.1., by sending a
  CertificateRequest message to the client with a non-empty
  status_request extension.

  This issue was fixed in openssl-1.1.1d and is included in Focal
  onward.

  Upstream issue is tracked at https://github.com/openssl/openssl/issues/9767
  Upstream patch review at https://github.com/openssl/openssl/pull/9780

  The issue leads to various client failures with TLS 1.3 as described
  in, e.g.

  https://github.com/golang/go/issues/35722
  https://github.com/golang/go/issues/34040

  [Test Plan]

  The issue can be reproduced by building with `enable-ssl-trace`
  and then running `s_server` like this:

  ```
  openssl s_server -key key.pem -cert cert.pem -status_file 
test/recipes/ocsp-response.der -Verify 5
  ```

  And running `s_client` like this:

  ```
  openssl s_client -status -trace -cert cert.pem -key key.pem
  ```

  The output shows a `status_request` extension in the
  `CertificateRequest` as follows:

  Received Record
  Header:
    Version = TLS 1.2 (0x303)
    Content Type = ApplicationData (23)
    Length = 1591
    Inner Content Type = Handshake (22)
  CertificateRequest, Length=1570
    request_context (len=0):
    extensions, length = 1567
  extension_type=status_request(5), length=1521
     - 01 00 05 ed 30 82 05 e9-0a 01 00 a0 82 05 e2   
0..
    000f - 30 82 05 de 06 09 2b 06-01 05 05 07 30 01 01   
0.+.0..
    001e - 04 82 05 cf 30 82 05 cb-30 82 01 1a a1 81 86   
0...0..
    002d - 30 81 83 31 0b 30 09 06-03 55 04 06 13 02 47   
0..1.0...UG
  ...more lines omitted...

  If the `status_request` extension is present in a
  `CertificateRequest` then it must be empty according to RFC8446,
  Sec. 4.4.2.1.

  [Where problems could occur]

  The patch disables the `status_request` extension inside a
  `CertificateRequest`. Applications expecting the incorrect,
  non-empty reply for the `status_request` extension will break
  with this patch.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/openssl/+bug/1940141/+subscriptions


-- 
Mailing list: https://launchpad.net/~touch-packages
Post to : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp


[Touch-packages] [Bug 1940141] Re: OpenSSL servers can send a non-empty status_request in a CertificateRequest

2022-05-09 Thread Bruce Elrick
Attach debdiff relative to 18.04.17:

openssl (1.1.1-1ubuntu2.1~18.04.17ubuntu1) bionic; urgency=medium

  * Backport pr9780:
- d/p/pr9780_0001-Don-t-send-a-status_request-extension-in-a-Certifica.patch
- d/p/pr9780_0002-Teach-TLSProxy-how-to-parse-CertificateRequest-messa.patch

 -- Bruce Elrick   Mon, 09 May 2022 19:38:43
+


** Patch added: "openssl_1.1.1-1ubuntu2.1~18.04.17ubuntu1.debdiff"
   
https://bugs.launchpad.net/ubuntu/+source/openssl/+bug/1940141/+attachment/5587970/+files/openssl_1.1.1-1ubuntu2.1~18.04.17ubuntu1.debdiff

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to openssl in Ubuntu.
https://bugs.launchpad.net/bugs/1940141

Title:
  OpenSSL servers can send a non-empty status_request in a
  CertificateRequest

Status in openssl package in Ubuntu:
  Fix Released
Status in openssl source package in Bionic:
  Fix Committed

Bug description:
  [Impact]

  openssl does not conform to RFC8446, Sec. 4.4.2.1., by sending a
  CertificateRequest message to the client with a non-empty
  status_request extension.

  This issue was fixed in openssl-1.1.1d and is included in Focal
  onward.

  Upstream issue is tracked at https://github.com/openssl/openssl/issues/9767
  Upstream patch review at https://github.com/openssl/openssl/pull/9780

  The issue leads to various client failures with TLS 1.3 as described
  in, e.g.

  https://github.com/golang/go/issues/35722
  https://github.com/golang/go/issues/34040

  [Test Plan]

  The issue can be reproduced by building with `enable-ssl-trace`
  and then running `s_server` like this:

  ```
  openssl s_server -key key.pem -cert cert.pem -status_file 
test/recipes/ocsp-response.der -Verify 5
  ```

  And running `s_client` like this:

  ```
  openssl s_client -status -trace -cert cert.pem -key key.pem
  ```

  The output shows a `status_request` extension in the
  `CertificateRequest` as follows:

  Received Record
  Header:
    Version = TLS 1.2 (0x303)
    Content Type = ApplicationData (23)
    Length = 1591
    Inner Content Type = Handshake (22)
  CertificateRequest, Length=1570
    request_context (len=0):
    extensions, length = 1567
  extension_type=status_request(5), length=1521
     - 01 00 05 ed 30 82 05 e9-0a 01 00 a0 82 05 e2   
0..
    000f - 30 82 05 de 06 09 2b 06-01 05 05 07 30 01 01   
0.+.0..
    001e - 04 82 05 cf 30 82 05 cb-30 82 01 1a a1 81 86   
0...0..
    002d - 30 81 83 31 0b 30 09 06-03 55 04 06 13 02 47   
0..1.0...UG
  ...more lines omitted...

  If the `status_request` extension is present in a
  `CertificateRequest` then it must be empty according to RFC8446,
  Sec. 4.4.2.1.

  [Where problems could occur]

  The patch disables the `status_request` extension inside a
  `CertificateRequest`. Applications expecting the incorrect,
  non-empty reply for the `status_request` extension will break
  with this patch.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/openssl/+bug/1940141/+subscriptions


-- 
Mailing list: https://launchpad.net/~touch-packages
Post to : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp


[Touch-packages] [Bug 1940141] Re: OpenSSL servers can send a non-empty status_request in a CertificateRequest

2022-05-09 Thread Bruce Elrick
Thanks for the update, Marc. I will work on producing the dsc against
1.1.1-1ubuntu2.1~18.04.17.

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to openssl in Ubuntu.
https://bugs.launchpad.net/bugs/1940141

Title:
  OpenSSL servers can send a non-empty status_request in a
  CertificateRequest

Status in openssl package in Ubuntu:
  Fix Released
Status in openssl source package in Bionic:
  Fix Committed

Bug description:
  [Impact]

  openssl does not conform to RFC8446, Sec. 4.4.2.1., by sending a
  CertificateRequest message to the client with a non-empty
  status_request extension.

  This issue was fixed in openssl-1.1.1d and is included in Focal
  onward.

  Upstream issue is tracked at https://github.com/openssl/openssl/issues/9767
  Upstream patch review at https://github.com/openssl/openssl/pull/9780

  The issue leads to various client failures with TLS 1.3 as described
  in, e.g.

  https://github.com/golang/go/issues/35722
  https://github.com/golang/go/issues/34040

  [Test Plan]

  The issue can be reproduced by building with `enable-ssl-trace`
  and then running `s_server` like this:

  ```
  openssl s_server -key key.pem -cert cert.pem -status_file 
test/recipes/ocsp-response.der -Verify 5
  ```

  And running `s_client` like this:

  ```
  openssl s_client -status -trace -cert cert.pem -key key.pem
  ```

  The output shows a `status_request` extension in the
  `CertificateRequest` as follows:

  Received Record
  Header:
    Version = TLS 1.2 (0x303)
    Content Type = ApplicationData (23)
    Length = 1591
    Inner Content Type = Handshake (22)
  CertificateRequest, Length=1570
    request_context (len=0):
    extensions, length = 1567
  extension_type=status_request(5), length=1521
     - 01 00 05 ed 30 82 05 e9-0a 01 00 a0 82 05 e2   
0..
    000f - 30 82 05 de 06 09 2b 06-01 05 05 07 30 01 01   
0.+.0..
    001e - 04 82 05 cf 30 82 05 cb-30 82 01 1a a1 81 86   
0...0..
    002d - 30 81 83 31 0b 30 09 06-03 55 04 06 13 02 47   
0..1.0...UG
  ...more lines omitted...

  If the `status_request` extension is present in a
  `CertificateRequest` then it must be empty according to RFC8446,
  Sec. 4.4.2.1.

  [Where problems could occur]

  The patch disables the `status_request` extension inside a
  `CertificateRequest`. Applications expecting the incorrect,
  non-empty reply for the `status_request` extension will break
  with this patch.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/openssl/+bug/1940141/+subscriptions


-- 
Mailing list: https://launchpad.net/~touch-packages
Post to : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp


[Touch-packages] [Bug 1940141] Re: OpenSSL servers can send a non-empty status_request in a CertificateRequest

2022-04-29 Thread Bruce Elrick
I re-ran the test as follows to actually test the server side with only
the packaged executables.

I used this command for the server side:

/usr/bin/openssl s_server -key key.pem -cert cert.pem -status_file
openssl-1.1.1/test/recipes/ocsp-response.der -Verify 5

with ldd showing it loading its ssl & crypt libraries from
/usr/lib/x86_64-linux-gnu:

ldd /usr/bin/openmssl
linux-vdso.so.1 (0x7ffe6ee65000)


libssl.so.1.1 => /usr/lib/x86_64-linux-gnu/libssl.so.1.1 
(0x7f44027c4000)
   
libcrypto.so.1.1 => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 
(0x7f44022f9000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 
(0x7f44020da000)
   
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x7f4401ce9000)   

  
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x7f4401ae5000) 

/lib64/ld-linux-x86-64.so.2 (0x7f4402d04000)

I built the client from 18.06.16 source with tracing enabled and used it
for both tests and ran it with this command:

LD_LIBRARY_PATH=openssl-1.1.1/build_shared
openssl-1.1.1/build_shared/apps/openssl s_client -status -trace -cert
cert.pem -key key.pem

with ldd showing it loading its own libraries:

LD_LIBRARY_PATH=openssl-1.1.1/build_shared ldd 
openssl-1.1.1/build_shared/apps/openssl
linux-vdso.so.1 (0x7fff51ff9000)
libssl.so.1.1 => openssl-1.1.1/build_shared/libssl.so.1.1 
(0x7fc8c28b4000)
libcrypto.so.1.1 => openssl-1.1.1/build_shared/libcrypto.so.1.1 
(0x7fc8c23e9000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 
(0x7fc8c21ca000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x7fc8c1dd9000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x7fc8c1bd5000)
/lib64/ld-linux-x86-64.so.2 (0x7fc8c2dfe000)

The following logs show the difference between having:
ii  openssl1.1.1-1ubuntu2.1~18.04.15
amd64Secure Sockets Layer toolkit - cryptographic 
utility
and having:
ii  openssl1.1.1-1ubuntu2.1~18.04.16
amd64Secure Sockets Layer toolkit - cryptographic 
utility

ubuntu@bionic-lp-1940141:~$ grep -B1 -A4 CertificateRequest 
s_client-18.04.16-from-source-with-trace_server-18.04.15-from-package.log
  Inner Content Type = Handshake (22)
CertificateRequest, Length=1570
  request_context (len=0):
  extensions, length = 1567
extension_type=status_request(5), length=1521
   - 01 00 05 ed 30 82 05 e9-0a 01 00 a0 82 05 e2   0..

ubuntu@bionic-lp-1940141:~$ grep -B1 -A4 CertificateRequest 
s_client-18.04.16-from-source-with-trace_server-18.04.16-proposed-from-package.log
  Inner Content Type = Handshake (22)
CertificateRequest, Length=45
  request_context (len=0):
  extensions, length = 42
extension_type=signature_algorithms(13), length=38
  ecdsa_secp256r1_sha256 (0x0403)

This is indicative of the fix working.

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to openssl in Ubuntu.
https://bugs.launchpad.net/bugs/1940141

Title:
  OpenSSL servers can send a non-empty status_request in a
  CertificateRequest

Status in openssl package in Ubuntu:
  Fix Released
Status in openssl source package in Bionic:
  Fix Committed

Bug description:
  [Impact]

  openssl does not conform to RFC8446, Sec. 4.4.2.1., by sending a
  CertificateRequest message to the client with a non-empty
  status_request extension.

  This issue was fixed in openssl-1.1.1d and is included in Focal
  onward.

  Upstream issue is tracked at https://github.com/openssl/openssl/issues/9767
  Upstream patch review at https://github.com/openssl/openssl/pull/9780

  The issue leads to various client failures with TLS 1.3 as described
  in, e.g.

  https://github.com/golang/go/issues/35722
  https://github.com/golang/go/issues/34040

  [Test Plan]

  The issue can be reproduced by building with `enable-ssl-trace`
  and then running `s_server` like this:

  ```
  openssl s_server -key key.pem -cert cert.pem -status_file 
test/recipes/ocsp-response.der -Verify 5
  ```

  And running `s_client` like this:

  ```
  openssl s_client -status -trace -cert cert.pem -key key.pem
  ```

  The output shows a `status_request` extension in the
  `CertificateRequest` as follows:

  Received Record
  Header:
    Version = TLS 1.2 (0x303)
    Content Type = 

[Touch-packages] [Bug 1940141] Re: OpenSSL servers can send a non-empty status_request in a CertificateRequest

2022-04-29 Thread Bruce Elrick
The user who discovered this bug using the golang TLS implementation
will be testing the proposed package within the week.

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to openssl in Ubuntu.
https://bugs.launchpad.net/bugs/1940141

Title:
  OpenSSL servers can send a non-empty status_request in a
  CertificateRequest

Status in openssl package in Ubuntu:
  Fix Released
Status in openssl source package in Bionic:
  Fix Committed

Bug description:
  [Impact]

  openssl does not conform to RFC8446, Sec. 4.4.2.1., by sending a
  CertificateRequest message to the client with a non-empty
  status_request extension.

  This issue was fixed in openssl-1.1.1d and is included in Focal
  onward.

  Upstream issue is tracked at https://github.com/openssl/openssl/issues/9767
  Upstream patch review at https://github.com/openssl/openssl/pull/9780

  The issue leads to various client failures with TLS 1.3 as described
  in, e.g.

  https://github.com/golang/go/issues/35722
  https://github.com/golang/go/issues/34040

  [Test Plan]

  The issue can be reproduced by building with `enable-ssl-trace`
  and then running `s_server` like this:

  ```
  openssl s_server -key key.pem -cert cert.pem -status_file 
test/recipes/ocsp-response.der -Verify 5
  ```

  And running `s_client` like this:

  ```
  openssl s_client -status -trace -cert cert.pem -key key.pem
  ```

  The output shows a `status_request` extension in the
  `CertificateRequest` as follows:

  Received Record
  Header:
    Version = TLS 1.2 (0x303)
    Content Type = ApplicationData (23)
    Length = 1591
    Inner Content Type = Handshake (22)
  CertificateRequest, Length=1570
    request_context (len=0):
    extensions, length = 1567
  extension_type=status_request(5), length=1521
     - 01 00 05 ed 30 82 05 e9-0a 01 00 a0 82 05 e2   
0..
    000f - 30 82 05 de 06 09 2b 06-01 05 05 07 30 01 01   
0.+.0..
    001e - 04 82 05 cf 30 82 05 cb-30 82 01 1a a1 81 86   
0...0..
    002d - 30 81 83 31 0b 30 09 06-03 55 04 06 13 02 47   
0..1.0...UG
  ...more lines omitted...

  If the `status_request` extension is present in a
  `CertificateRequest` then it must be empty according to RFC8446,
  Sec. 4.4.2.1.

  [Where problems could occur]

  The patch disables the `status_request` extension inside a
  `CertificateRequest`. Applications expecting the incorrect,
  non-empty reply for the `status_request` extension will break
  with this patch.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/openssl/+bug/1940141/+subscriptions


-- 
Mailing list: https://launchpad.net/~touch-packages
Post to : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp


[Touch-packages] [Bug 1940141] Re: OpenSSL servers can send a non-empty status_request in a CertificateRequest

2022-04-28 Thread Bruce Elrick
I should add, the results in comment 22 indicate that the fix is active
and working.

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to openssl in Ubuntu.
https://bugs.launchpad.net/bugs/1940141

Title:
  OpenSSL servers can send a non-empty status_request in a
  CertificateRequest

Status in openssl package in Ubuntu:
  Fix Released
Status in openssl source package in Bionic:
  Fix Committed

Bug description:
  [Impact]

  openssl does not conform to RFC8446, Sec. 4.4.2.1., by sending a
  CertificateRequest message to the client with a non-empty
  status_request extension.

  This issue was fixed in openssl-1.1.1d and is included in Focal
  onward.

  Upstream issue is tracked at https://github.com/openssl/openssl/issues/9767
  Upstream patch review at https://github.com/openssl/openssl/pull/9780

  The issue leads to various client failures with TLS 1.3 as described
  in, e.g.

  https://github.com/golang/go/issues/35722
  https://github.com/golang/go/issues/34040

  [Test Plan]

  The issue can be reproduced by building with `enable-ssl-trace`
  and then running `s_server` like this:

  ```
  openssl s_server -key key.pem -cert cert.pem -status_file 
test/recipes/ocsp-response.der -Verify 5
  ```

  And running `s_client` like this:

  ```
  openssl s_client -status -trace -cert cert.pem -key key.pem
  ```

  The output shows a `status_request` extension in the
  `CertificateRequest` as follows:

  Received Record
  Header:
    Version = TLS 1.2 (0x303)
    Content Type = ApplicationData (23)
    Length = 1591
    Inner Content Type = Handshake (22)
  CertificateRequest, Length=1570
    request_context (len=0):
    extensions, length = 1567
  extension_type=status_request(5), length=1521
     - 01 00 05 ed 30 82 05 e9-0a 01 00 a0 82 05 e2   
0..
    000f - 30 82 05 de 06 09 2b 06-01 05 05 07 30 01 01   
0.+.0..
    001e - 04 82 05 cf 30 82 05 cb-30 82 01 1a a1 81 86   
0...0..
    002d - 30 81 83 31 0b 30 09 06-03 55 04 06 13 02 47   
0..1.0...UG
  ...more lines omitted...

  If the `status_request` extension is present in a
  `CertificateRequest` then it must be empty according to RFC8446,
  Sec. 4.4.2.1.

  [Where problems could occur]

  The patch disables the `status_request` extension inside a
  `CertificateRequest`. Applications expecting the incorrect,
  non-empty reply for the `status_request` extension will break
  with this patch.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/openssl/+bug/1940141/+subscriptions


-- 
Mailing list: https://launchpad.net/~touch-packages
Post to : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp


[Touch-packages] [Bug 1940141] Re: OpenSSL servers can send a non-empty status_request in a CertificateRequest

2022-04-28 Thread Bruce Elrick
I pulled the proposed source:

  $ pull-lp-source openssl bionic

built with tracing enabled:

  $ cd openssl-1.1.1
  $ sed -i -e '/^CONFARGS  =/a CONFARGS += enable-ssl-trace' debian/rules
  $ debuild -us -uc -b 2>&1 | tee ../debuild.log
  $ cd ..

installed:
  $ sudo dpkg -i libssl1.1_1.1.1-1ubuntu2.1~18.04.16_amd64.deb 
openssl_1.1.1-1ubuntu2.1~18.04.16_amd64.deb

tested:

  $ openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout key.pem 
-out cert.pem
  $ openssl s_server -key key.pem -cert cert.pem -status_file 
openssl-1.1.1/test/recipes/ocsp-response.der -Verify 5 2>&1 | tee s_server.log &
  $ openssl s_client -status -trace -cert cert.pem -key key.pem 2>&1 | tee 
s_client.log (^c)
  $ grep -B1 -A4 CertificateRequest s_client.log
Inner Content Type = Handshake (22)
  CertificateRequest, Length=45
request_context (len=0): 
extensions, length = 42
  extension_type=signature_algorithms(13), length=38
ecdsa_secp256r1_sha256 (0x0403)
  $ tail -6 s_server.log 
  ---
  No server certificate CA names sent
  CIPHER is TLS_AES_256_GCM_SHA384
  Secure Renegotiation IS supported
  
  ERROR

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to openssl in Ubuntu.
https://bugs.launchpad.net/bugs/1940141

Title:
  OpenSSL servers can send a non-empty status_request in a
  CertificateRequest

Status in openssl package in Ubuntu:
  Fix Released
Status in openssl source package in Bionic:
  Fix Committed

Bug description:
  [Impact]

  openssl does not conform to RFC8446, Sec. 4.4.2.1., by sending a
  CertificateRequest message to the client with a non-empty
  status_request extension.

  This issue was fixed in openssl-1.1.1d and is included in Focal
  onward.

  Upstream issue is tracked at https://github.com/openssl/openssl/issues/9767
  Upstream patch review at https://github.com/openssl/openssl/pull/9780

  The issue leads to various client failures with TLS 1.3 as described
  in, e.g.

  https://github.com/golang/go/issues/35722
  https://github.com/golang/go/issues/34040

  [Test Plan]

  The issue can be reproduced by building with `enable-ssl-trace`
  and then running `s_server` like this:

  ```
  openssl s_server -key key.pem -cert cert.pem -status_file 
test/recipes/ocsp-response.der -Verify 5
  ```

  And running `s_client` like this:

  ```
  openssl s_client -status -trace -cert cert.pem -key key.pem
  ```

  The output shows a `status_request` extension in the
  `CertificateRequest` as follows:

  Received Record
  Header:
    Version = TLS 1.2 (0x303)
    Content Type = ApplicationData (23)
    Length = 1591
    Inner Content Type = Handshake (22)
  CertificateRequest, Length=1570
    request_context (len=0):
    extensions, length = 1567
  extension_type=status_request(5), length=1521
     - 01 00 05 ed 30 82 05 e9-0a 01 00 a0 82 05 e2   
0..
    000f - 30 82 05 de 06 09 2b 06-01 05 05 07 30 01 01   
0.+.0..
    001e - 04 82 05 cf 30 82 05 cb-30 82 01 1a a1 81 86   
0...0..
    002d - 30 81 83 31 0b 30 09 06-03 55 04 06 13 02 47   
0..1.0...UG
  ...more lines omitted...

  If the `status_request` extension is present in a
  `CertificateRequest` then it must be empty according to RFC8446,
  Sec. 4.4.2.1.

  [Where problems could occur]

  The patch disables the `status_request` extension inside a
  `CertificateRequest`. Applications expecting the incorrect,
  non-empty reply for the `status_request` extension will break
  with this patch.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/openssl/+bug/1940141/+subscriptions


-- 
Mailing list: https://launchpad.net/~touch-packages
Post to : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp


[Touch-packages] [Bug 1940141] Re: OpenSSL servers can send a non-empty status_request in a CertificateRequest

2022-03-23 Thread Bruce Elrick
Marc, I lean your way in terms of my feel for the likelihood that
someone is relying on incorrect behaviour in bionic/openssl-1.1.1.

I can say that while the lp1940141* patches rely on the pr9780 ones, the
reverse is absolutely not the case and thus the lp1940141 ones could be
dropped as a whole to achieve the functional portion of the backport
without it being optional.

But I leave that decision to those with more experience.

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to openssl in Ubuntu.
https://bugs.launchpad.net/bugs/1940141

Title:
  OpenSSL servers can send a non-empty status_request in a
  CertificateRequest

Status in openssl package in Ubuntu:
  Fix Released
Status in openssl source package in Bionic:
  New

Bug description:
  [Impact]

  openssl does not conform to RFC8446, Sec. 4.4.2.1., by sending a
  CertificateRequest message to the client with a non-empty
  status_request extension.

  This issue was fixed in openssl-1.1.1d and is included in Focal
  onward.

  Upstream issue is tracked at https://github.com/openssl/openssl/issues/9767
  Upstream patch review at https://github.com/openssl/openssl/pull/9780

  The issue leads to various client failures with TLS 1.3 as described
  in, e.g.

  https://github.com/golang/go/issues/35722
  https://github.com/golang/go/issues/34040

  [Test Plan]

  The issue can be reproduced by building with `enable-ssl-trace`
  and then running `s_server` like this:

  ```
  openssl s_server -key key.pem -cert cert.pem -status_file 
test/recipes/ocsp-response.der -Verify 5
  ```

  And running `s_client` like this:

  ```
  openssl s_client -status -trace -cert cert.pem -key key.pem
  ```

  The output shows a `status_request` extension in the
  `CertificateRequest` as follows:

  Received Record
  Header:
    Version = TLS 1.2 (0x303)
    Content Type = ApplicationData (23)
    Length = 1591
    Inner Content Type = Handshake (22)
  CertificateRequest, Length=1570
    request_context (len=0):
    extensions, length = 1567
  extension_type=status_request(5), length=1521
     - 01 00 05 ed 30 82 05 e9-0a 01 00 a0 82 05 e2   
0..
    000f - 30 82 05 de 06 09 2b 06-01 05 05 07 30 01 01   
0.+.0..
    001e - 04 82 05 cf 30 82 05 cb-30 82 01 1a a1 81 86   
0...0..
    002d - 30 81 83 31 0b 30 09 06-03 55 04 06 13 02 47   
0..1.0...UG
  ...more lines omitted...

  If the `status_request` extension is present in a
  `CertificateRequest` then it must be empty according to RFC8446,
  Sec. 4.4.2.1.

  [Where problems could occur]

  The patch disables the `status_request` extension inside a
  `CertificateRequest`. Applications expecting the incorrect,
  non-empty reply for the `status_request` extension will break
  with this patch.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/openssl/+bug/1940141/+subscriptions


-- 
Mailing list: https://launchpad.net/~touch-packages
Post to : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp


[Touch-packages] [Bug 1940141] Re: OpenSSL servers can send a non-empty status_request in a CertificateRequest

2022-03-23 Thread Bruce Elrick
Good point, Dan. A caveat to my work here on this patch: I did some C
programming and played with the Perl test harness in the early 90s which
gave me enough abililty to develop this patch set but I would benefit
from any deeper knowledge someone else may have, especially anyone with
openssl knowledge.

In terms of due dilligance, I've searched through the source files for
references to 'TSProxy' which is the parent directory for a number of
the test hardness perl modules changes in the commit and nothing I find
indicates it is referenced by the actual openssl C code but only is part
of the build/test process.

For extra due diligence I built with only the tests change backported
and two tests fail. Tests failing is expected because the actual
functional backport is missing. When I add the functional backport then
all tests succeed, as expected. When I then make the test optional, the
same two tests fail, as expected. See the test-results.txt attachment
for more.

I fix the tests by enabling the fix for 'Test 6' only in
openssl-1.1.1/test/recipes/70-test_tls13messages.t by wrapping the test
with perl code to set and delete the FIX_LP_1940141 environment
variable. As an aside, I now see that other such env var setting does
not use single-quoted strings but rather just bare strings; this is
allowed in perl and my patch does not followed the style in the rest of
the test file.

My understanding is that there are several flags for subtests, thus
accounting for the two passing or failing.

But more to your point about the risk of backporting the tests, my assessment
is that the perl modules are only in testing and while there are a non-trivial
number of tests added along with the one that tests what is being backported,
the fact that they all pass suggests that they are relevant here.

That is, it looks to me these additional tests are not-inappropriate, are
actually appropriate, and in fact the reason they were added later was this
fix forced the issue on the lack of capability in the test coverage.


** Attachment added: "test-results.txt"
   
https://bugs.launchpad.net/ubuntu/+source/openssl/+bug/1940141/+attachment/5572296/+files/test-results.txt

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to openssl in Ubuntu.
https://bugs.launchpad.net/bugs/1940141

Title:
  OpenSSL servers can send a non-empty status_request in a
  CertificateRequest

Status in openssl package in Ubuntu:
  Fix Released
Status in openssl source package in Bionic:
  New

Bug description:
  [Impact]

  openssl does not conform to RFC8446, Sec. 4.4.2.1., by sending a
  CertificateRequest message to the client with a non-empty
  status_request extension.

  This issue was fixed in openssl-1.1.1d and is included in Focal
  onward.

  Upstream issue is tracked at https://github.com/openssl/openssl/issues/9767
  Upstream patch review at https://github.com/openssl/openssl/pull/9780

  The issue leads to various client failures with TLS 1.3 as described
  in, e.g.

  https://github.com/golang/go/issues/35722
  https://github.com/golang/go/issues/34040

  [Test Plan]

  The issue can be reproduced by building with `enable-ssl-trace`
  and then running `s_server` like this:

  ```
  openssl s_server -key key.pem -cert cert.pem -status_file 
test/recipes/ocsp-response.der -Verify 5
  ```

  And running `s_client` like this:

  ```
  openssl s_client -status -trace -cert cert.pem -key key.pem
  ```

  The output shows a `status_request` extension in the
  `CertificateRequest` as follows:

  Received Record
  Header:
    Version = TLS 1.2 (0x303)
    Content Type = ApplicationData (23)
    Length = 1591
    Inner Content Type = Handshake (22)
  CertificateRequest, Length=1570
    request_context (len=0):
    extensions, length = 1567
  extension_type=status_request(5), length=1521
     - 01 00 05 ed 30 82 05 e9-0a 01 00 a0 82 05 e2   
0..
    000f - 30 82 05 de 06 09 2b 06-01 05 05 07 30 01 01   
0.+.0..
    001e - 04 82 05 cf 30 82 05 cb-30 82 01 1a a1 81 86   
0...0..
    002d - 30 81 83 31 0b 30 09 06-03 55 04 06 13 02 47   
0..1.0...UG
  ...more lines omitted...

  If the `status_request` extension is present in a
  `CertificateRequest` then it must be empty according to RFC8446,
  Sec. 4.4.2.1.

  [Where problems could occur]

  The patch disables the `status_request` extension inside a
  `CertificateRequest`. Applications expecting the incorrect,
  non-empty reply for the `status_request` extension will break
  with this patch.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/openssl/+bug/1940141/+subscriptions


-- 
Mailing list: https://launchpad.net/~touch-packages
Post to : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp


[Touch-packages] [Bug 1940141] Re: OpenSSL servers can send a non-empty status_request in a CertificateRequest

2022-03-23 Thread Bruce Elrick
"variable, we" -> "variable) we"
"and future" -> "any future"

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to openssl in Ubuntu.
https://bugs.launchpad.net/bugs/1940141

Title:
  OpenSSL servers can send a non-empty status_request in a
  CertificateRequest

Status in openssl package in Ubuntu:
  Fix Released
Status in openssl source package in Bionic:
  New

Bug description:
  [Impact]

  openssl does not conform to RFC8446, Sec. 4.4.2.1., by sending a
  CertificateRequest message to the client with a non-empty
  status_request extension.

  This issue was fixed in openssl-1.1.1d and is included in Focal
  onward.

  Upstream issue is tracked at https://github.com/openssl/openssl/issues/9767
  Upstream patch review at https://github.com/openssl/openssl/pull/9780

  The issue leads to various client failures with TLS 1.3 as described
  in, e.g.

  https://github.com/golang/go/issues/35722
  https://github.com/golang/go/issues/34040

  [Test Plan]

  The issue can be reproduced by building with `enable-ssl-trace`
  and then running `s_server` like this:

  ```
  openssl s_server -key key.pem -cert cert.pem -status_file 
test/recipes/ocsp-response.der -Verify 5
  ```

  And running `s_client` like this:

  ```
  openssl s_client -status -trace -cert cert.pem -key key.pem
  ```

  The output shows a `status_request` extension in the
  `CertificateRequest` as follows:

  Received Record
  Header:
    Version = TLS 1.2 (0x303)
    Content Type = ApplicationData (23)
    Length = 1591
    Inner Content Type = Handshake (22)
  CertificateRequest, Length=1570
    request_context (len=0):
    extensions, length = 1567
  extension_type=status_request(5), length=1521
     - 01 00 05 ed 30 82 05 e9-0a 01 00 a0 82 05 e2   
0..
    000f - 30 82 05 de 06 09 2b 06-01 05 05 07 30 01 01   
0.+.0..
    001e - 04 82 05 cf 30 82 05 cb-30 82 01 1a a1 81 86   
0...0..
    002d - 30 81 83 31 0b 30 09 06-03 55 04 06 13 02 47   
0..1.0...UG
  ...more lines omitted...

  If the `status_request` extension is present in a
  `CertificateRequest` then it must be empty according to RFC8446,
  Sec. 4.4.2.1.

  [Where problems could occur]

  The patch disables the `status_request` extension inside a
  `CertificateRequest`. Applications expecting the incorrect,
  non-empty reply for the `status_request` extension will break
  with this patch.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/openssl/+bug/1940141/+subscriptions


-- 
Mailing list: https://launchpad.net/~touch-packages
Post to : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp


[Touch-packages] [Bug 1940141] Re: OpenSSL servers can send a non-empty status_request in a CertificateRequest

2022-03-23 Thread Bruce Elrick
It's not needed for actual functionality of the backport but that
assumes that any future backports or fixes don't break this backport. By
adding the tests (and wrapping the one test that fails when the
backport-enabling environment variable is not set with the enabling of
that environmetn variable, we ensure that and future changes don't break
this change.

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to openssl in Ubuntu.
https://bugs.launchpad.net/bugs/1940141

Title:
  OpenSSL servers can send a non-empty status_request in a
  CertificateRequest

Status in openssl package in Ubuntu:
  Fix Released
Status in openssl source package in Bionic:
  New

Bug description:
  [Impact]

  openssl does not conform to RFC8446, Sec. 4.4.2.1., by sending a
  CertificateRequest message to the client with a non-empty
  status_request extension.

  This issue was fixed in openssl-1.1.1d and is included in Focal
  onward.

  Upstream issue is tracked at https://github.com/openssl/openssl/issues/9767
  Upstream patch review at https://github.com/openssl/openssl/pull/9780

  The issue leads to various client failures with TLS 1.3 as described
  in, e.g.

  https://github.com/golang/go/issues/35722
  https://github.com/golang/go/issues/34040

  [Test Plan]

  The issue can be reproduced by building with `enable-ssl-trace`
  and then running `s_server` like this:

  ```
  openssl s_server -key key.pem -cert cert.pem -status_file 
test/recipes/ocsp-response.der -Verify 5
  ```

  And running `s_client` like this:

  ```
  openssl s_client -status -trace -cert cert.pem -key key.pem
  ```

  The output shows a `status_request` extension in the
  `CertificateRequest` as follows:

  Received Record
  Header:
    Version = TLS 1.2 (0x303)
    Content Type = ApplicationData (23)
    Length = 1591
    Inner Content Type = Handshake (22)
  CertificateRequest, Length=1570
    request_context (len=0):
    extensions, length = 1567
  extension_type=status_request(5), length=1521
     - 01 00 05 ed 30 82 05 e9-0a 01 00 a0 82 05 e2   
0..
    000f - 30 82 05 de 06 09 2b 06-01 05 05 07 30 01 01   
0.+.0..
    001e - 04 82 05 cf 30 82 05 cb-30 82 01 1a a1 81 86   
0...0..
    002d - 30 81 83 31 0b 30 09 06-03 55 04 06 13 02 47   
0..1.0...UG
  ...more lines omitted...

  If the `status_request` extension is present in a
  `CertificateRequest` then it must be empty according to RFC8446,
  Sec. 4.4.2.1.

  [Where problems could occur]

  The patch disables the `status_request` extension inside a
  `CertificateRequest`. Applications expecting the incorrect,
  non-empty reply for the `status_request` extension will break
  with this patch.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/openssl/+bug/1940141/+subscriptions


-- 
Mailing list: https://launchpad.net/~touch-packages
Post to : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp


[Touch-packages] [Bug 1940141] Re: OpenSSL servers can send a non-empty status_request in a CertificateRequest

2022-03-18 Thread Bruce Elrick
Hey Dan Streetman (ddstreet), I believe the above patch satisfies your
valid concerns about backporting. Would you please analyse for
acceptance?

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to openssl in Ubuntu.
https://bugs.launchpad.net/bugs/1940141

Title:
  OpenSSL servers can send a non-empty status_request in a
  CertificateRequest

Status in openssl package in Ubuntu:
  Fix Released
Status in openssl source package in Bionic:
  New

Bug description:
  [Impact]

  openssl does not conform to RFC8446, Sec. 4.4.2.1., by sending a
  CertificateRequest message to the client with a non-empty
  status_request extension.

  This issue was fixed in openssl-1.1.1d and is included in Focal
  onward.

  Upstream issue is tracked at https://github.com/openssl/openssl/issues/9767
  Upstream patch review at https://github.com/openssl/openssl/pull/9780

  The issue leads to various client failures with TLS 1.3 as described
  in, e.g.

  https://github.com/golang/go/issues/35722
  https://github.com/golang/go/issues/34040

  [Test Plan]

  The issue can be reproduced by building with `enable-ssl-trace`
  and then running `s_server` like this:

  ```
  openssl s_server -key key.pem -cert cert.pem -status_file 
test/recipes/ocsp-response.der -Verify 5
  ```

  And running `s_client` like this:

  ```
  openssl s_client -status -trace -cert cert.pem -key key.pem
  ```

  The output shows a `status_request` extension in the
  `CertificateRequest` as follows:

  Received Record
  Header:
    Version = TLS 1.2 (0x303)
    Content Type = ApplicationData (23)
    Length = 1591
    Inner Content Type = Handshake (22)
  CertificateRequest, Length=1570
    request_context (len=0):
    extensions, length = 1567
  extension_type=status_request(5), length=1521
     - 01 00 05 ed 30 82 05 e9-0a 01 00 a0 82 05 e2   
0..
    000f - 30 82 05 de 06 09 2b 06-01 05 05 07 30 01 01   
0.+.0..
    001e - 04 82 05 cf 30 82 05 cb-30 82 01 1a a1 81 86   
0...0..
    002d - 30 81 83 31 0b 30 09 06-03 55 04 06 13 02 47   
0..1.0...UG
  ...more lines omitted...

  If the `status_request` extension is present in a
  `CertificateRequest` then it must be empty according to RFC8446,
  Sec. 4.4.2.1.

  [Where problems could occur]

  The patch disables the `status_request` extension inside a
  `CertificateRequest`. Applications expecting the incorrect,
  non-empty reply for the `status_request` extension will break
  with this patch.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/openssl/+bug/1940141/+subscriptions


-- 
Mailing list: https://launchpad.net/~touch-packages
Post to : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp


[Touch-packages] [Bug 1940141] Re: OpenSSL servers can send a non-empty status_request in a CertificateRequest

2022-03-18 Thread Bruce Elrick
openssl (1.1.1-1ubuntu2.1~18.04.15ubuntu1) bionic; urgency=medium

  * Backport pr9780 but make it optional:
- d/p/pr9780_0002-Teach-TLSProxy-how-to-parse-CertificateRequest-messa.patch
- d/p/pr9780_0001-Don-t-send-a-status_request-extension-in-a-Certifica.patch
- d/p/lp1940141-make-pr-9780-optional.patch
- d/p/lp1940141-fix-tests-accordingly.patch
- d/p/lp1940141-update-manpages.patch

 -- Bruce Elrick   Wed, 16 Mar 2022 17:05:32
+


** Patch added: "Backport pr9780 but make it optional"
   
https://bugs.launchpad.net/ubuntu/+source/openssl/+bug/1940141/+attachment/5570447/+files/bionic.debdiff

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to openssl in Ubuntu.
https://bugs.launchpad.net/bugs/1940141

Title:
  OpenSSL servers can send a non-empty status_request in a
  CertificateRequest

Status in openssl package in Ubuntu:
  Fix Released
Status in openssl source package in Bionic:
  New

Bug description:
  [Impact]

  openssl does not conform to RFC8446, Sec. 4.4.2.1., by sending a
  CertificateRequest message to the client with a non-empty
  status_request extension.

  This issue was fixed in openssl-1.1.1d and is included in Focal
  onward.

  Upstream issue is tracked at https://github.com/openssl/openssl/issues/9767
  Upstream patch review at https://github.com/openssl/openssl/pull/9780

  The issue leads to various client failures with TLS 1.3 as described
  in, e.g.

  https://github.com/golang/go/issues/35722
  https://github.com/golang/go/issues/34040

  [Test Plan]

  The issue can be reproduced by building with `enable-ssl-trace`
  and then running `s_server` like this:

  ```
  openssl s_server -key key.pem -cert cert.pem -status_file 
test/recipes/ocsp-response.der -Verify 5
  ```

  And running `s_client` like this:

  ```
  openssl s_client -status -trace -cert cert.pem -key key.pem
  ```

  The output shows a `status_request` extension in the
  `CertificateRequest` as follows:

  Received Record
  Header:
    Version = TLS 1.2 (0x303)
    Content Type = ApplicationData (23)
    Length = 1591
    Inner Content Type = Handshake (22)
  CertificateRequest, Length=1570
    request_context (len=0):
    extensions, length = 1567
  extension_type=status_request(5), length=1521
     - 01 00 05 ed 30 82 05 e9-0a 01 00 a0 82 05 e2   
0..
    000f - 30 82 05 de 06 09 2b 06-01 05 05 07 30 01 01   
0.+.0..
    001e - 04 82 05 cf 30 82 05 cb-30 82 01 1a a1 81 86   
0...0..
    002d - 30 81 83 31 0b 30 09 06-03 55 04 06 13 02 47   
0..1.0...UG
  ...more lines omitted...

  If the `status_request` extension is present in a
  `CertificateRequest` then it must be empty according to RFC8446,
  Sec. 4.4.2.1.

  [Where problems could occur]

  The patch disables the `status_request` extension inside a
  `CertificateRequest`. Applications expecting the incorrect,
  non-empty reply for the `status_request` extension will break
  with this patch.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/openssl/+bug/1940141/+subscriptions


-- 
Mailing list: https://launchpad.net/~touch-packages
Post to : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp


[Touch-packages] [Bug 1940141] Re: OpenSSL servers can send a non-empty status_request in a CertificateRequest

2022-03-17 Thread Bruce Elrick
For posterity, here is an example of the relevant part of the client
trace output when the bug is active, i.e. data is sent with the
ClientRequest:

$ grep -B1 -A4 CertificateRequest s_client.log
  Inner Content Type = Handshake (22)
CertificateRequest, Length=1570
  request_context (len=0): 
  extensions, length = 1567
extension_type=status_request(5), length=1521
   - 01 00 05 ed 30 82 05 e9-0a 01 00 a0 82 05 e2   0..

Here is an example of the relevant part of the client trace output when
this is fixed:

$ grep -B1 -A4 CertificateRequest s_client.log
  Inner Content Type = Handshake (22)
CertificateRequest, Length=45
  request_context (len=0): 
  extensions, length = 42
extension_type=signature_algorithms(13), length=38
  ecdsa_secp256r1_sha256 (0x0403)

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to openssl in Ubuntu.
https://bugs.launchpad.net/bugs/1940141

Title:
  OpenSSL servers can send a non-empty status_request in a
  CertificateRequest

Status in openssl package in Ubuntu:
  Fix Released
Status in openssl source package in Bionic:
  New

Bug description:
  [Impact]

  openssl does not conform to RFC8446, Sec. 4.4.2.1., by sending a
  CertificateRequest message to the client with a non-empty
  status_request extension.

  This issue was fixed in openssl-1.1.1d and is included in Focal
  onward.

  Upstream issue is tracked at https://github.com/openssl/openssl/issues/9767
  Upstream patch review at https://github.com/openssl/openssl/pull/9780

  The issue leads to various client failures with TLS 1.3 as described
  in, e.g.

  https://github.com/golang/go/issues/35722
  https://github.com/golang/go/issues/34040

  [Test Plan]

  The issue can be reproduced by building with `enable-ssl-trace`
  and then running `s_server` like this:

  ```
  openssl s_server -key key.pem -cert cert.pem -status_file 
test/recipes/ocsp-response.der -Verify 5
  ```

  And running `s_client` like this:

  ```
  openssl s_client -status -trace -cert cert.pem -key key.pem
  ```

  The output shows a `status_request` extension in the
  `CertificateRequest` as follows:

  Received Record
  Header:
    Version = TLS 1.2 (0x303)
    Content Type = ApplicationData (23)
    Length = 1591
    Inner Content Type = Handshake (22)
  CertificateRequest, Length=1570
    request_context (len=0):
    extensions, length = 1567
  extension_type=status_request(5), length=1521
     - 01 00 05 ed 30 82 05 e9-0a 01 00 a0 82 05 e2   
0..
    000f - 30 82 05 de 06 09 2b 06-01 05 05 07 30 01 01   
0.+.0..
    001e - 04 82 05 cf 30 82 05 cb-30 82 01 1a a1 81 86   
0...0..
    002d - 30 81 83 31 0b 30 09 06-03 55 04 06 13 02 47   
0..1.0...UG
  ...more lines omitted...

  If the `status_request` extension is present in a
  `CertificateRequest` then it must be empty according to RFC8446,
  Sec. 4.4.2.1.

  [Where problems could occur]

  The patch disables the `status_request` extension inside a
  `CertificateRequest`. Applications expecting the incorrect,
  non-empty reply for the `status_request` extension will break
  with this patch.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/openssl/+bug/1940141/+subscriptions


-- 
Mailing list: https://launchpad.net/~touch-packages
Post to : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp