Make WordPress Core

Opened 5 weeks ago

Last modified 3 weeks ago

#64063 new task (blessed)

Remove bundled 1024-bit certificates from bundled root certificates

Reported by: kkmuffme's profile kkmuffme Owned by:
Milestone: 7.0 Priority: normal
Severity: major Version:
Component: Security Keywords: early
Focuses: Cc:

Description

Because of https://core.trac.wordpress.org/ticket/34935#comment:10 from 10 years ago the bundled .crt still contains 1024-bit certificates, which are only needed for OpenSSL <1.0.1g

There was a recent update to the bundled root certificate https://core.trac.wordpress.org/changeset/60029 keeping those.

1024-bit certificates are considered insecure and not accepted by browsers for a decade now, however they are about to get (instead of just considered) insecure, with first research available indicating that 1024-bit RSA has been cracked in recent months.

Not only is this a security issue, but this can lead to massive direct (e.g. WooCommerce payment gateways) and indirect - like user data/GDPR/privacy e.g. when using email gateways used by most WP sites - financial consequences for sites running on WordPress.

Can these legacy certificates be removed from WP's certificate?

Change History (1)

#1 @johnbillion
3 weeks ago

  • Component changed from HTTP API to Security
  • Keywords early added
  • Milestone changed from Awaiting Review to 7.0
  • Type changed from defect (bug) to task (blessed)

The fundamental problem is that the modern cacert bundle (without those 1024-bit root certs prepended) is not compatible with some ancient versions of OpenSSL. Reading through #34935 and linked tickets I believe this affects 1.0.1e to 1.0.1q due to path discovery bugs. This breaks the TLS connection regardless of whether any cert in the chain is signed with a 1024-bit cert.

This seems to primarily affect CentOS 7 which shipped with OpenSSL 1.0.1e. It can connect to modern services that retain support for ECDHE-GCM ciphers over TLS 1.2 and therefore is not yet functionally obsolete. I've no idea whether CentOS 7 users keep OpenSSL updated to a more modern version, perhaps something to chat with the hosting team about. Anyone still running an unpatched 1.0.1e would have a hard time using a recent cacert bundle anyway.

CentOS 7 is EOL since last year. My vote goes to pulling these out early in the 7.0 cycle.

Related (for 6.9): #63165

Note: See TracTickets for help on using tickets.