WordPress.org

Make WordPress Core

Opened 7 months ago

Last modified 7 weeks ago

#45807 new defect (bug)

CA Bundle is way out of date

Reported by: paragoninitiativeenterprises Owned by:
Milestone: 5.3 Priority: normal
Severity: normal Version:
Component: Security Keywords: early has-patch needs-testing
Focuses: Cc:

Description

The latest bundle is from 2018-12-05, the one shipped with WordPress is from 2015-09-16.

https://core.trac.wordpress.org/browser/trunk/src/wp-includes/certificates/ca-bundle.crt

The past 3 years have shown some significant CA revocations, including Symantec's CA certs. I don't believe an outdated CACert bundle is necessarily a vulnerability worth reporting privately, but updating this may prevent corner case of nation state exploitation.

Attachments (2)

45807.diff (178.9 KB) - added by skithund 8 weeks ago.
45807-wp1024.diff (182.7 KB) - added by skithund 8 weeks ago.

Download all attachments as: .zip

Change History (14)

#1 @Otto42
7 months ago

Related: #30434

#2 @paragoninitiativeenterprises
7 months ago

Note: When PHP 7+ is the minimum supported by WordPress, it would be advantageous to consider https://github.com/paragonie/certainty to automate this, going forward.

This ticket was mentioned in Slack in #core by paragonie. View the logs.


7 months ago

This ticket was mentioned in Slack in #core-https by paragonie. View the logs.


7 months ago

#5 @pento
6 months ago

  • Keywords early added
  • Milestone changed from Awaiting Review to 5.2
  • Version trunk deleted

Given how updating the the CA bundle has caused back compat issues in the past, I'd like to land this change early in the cycle. Milestoning it for 5.2, so it can get a good amount of soak time.

#6 @johnbillion
4 months ago

  • Milestone changed from 5.2 to 5.3

Bumping as per comment above

#7 @skithund
3 months ago

Just to chip in here.

Let's Encrypt is transitioning to ISRG root, which isn't trusted by the current WordPress CA bundle.

wp eval 'var_dump(wp_remote_get("https://valid-isrgrootx1.letsencrypt.org/"));'

The WP_Error message is cURL error 60: SSL certificate problem: unable to get local issuer certificate

This ticket was mentioned in Slack in #core by paragonie. View the logs.


2 months ago

#9 @desrosj
2 months ago

  • Keywords needs-patch added

@skithund
8 weeks ago

#10 @skithund
8 weeks ago

Attached is a file with just the latest ca-bundle without any WordPress modifications.
I'll do another patch with WordPress modifications (add 1024 bit root certs back) later.

#11 @skithund
8 weeks ago

  • Keywords needs-patch removed

Another patch, which updates to latest ca-bundle and adds the same 1024bit certificates back as in [35919] with the following exceptions removed:

  • GTE CyberTrust Global Root - Expired in 2018-08-13
  • ValiCert Class 1 VA - Expires in 2019-06-25
  • ValiCert Class 2 VA - Expires in 2019-06-25
  • Entrust.net Secure Server CA - Expired in 2019-05-25
  • NetLock Business (Class B) Root - Expired in 2019-02-20
  • NetLock Express (Class C) Root - Expired in 2019-02-20
Last edited 8 weeks ago by skithund (previous) (diff)

#12 @skithund
7 weeks ago

  • Keywords has-patch needs-testing added
Note: See TracTickets for help on using tickets.