Skip to content

Google v3 frozen log list crossed 70-day freshness limit, causing Android CT checks to fail closed #164

Description

@CMWR421

Apps using certificatetransparency-android via Android/OkHttp are now receiving Google's frozen third-party CT log list:

curl -I -A 'okhttp/4.12.0' https://www.gstatic.com/ct/log_list/v3/log_list.zip

Response includes:

x-ct-log-list-variant: v3-frozen
last-modified: Fri, 03 Apr 2026 23:28:00 GMT

The JSON contains:

{
  "version": "DO NOT USE THIS LOG LIST. See https://googlechrome.github.io/CertificateTransparency/apps_3p_libraries.html",
  "log_list_timestamp": "2026-04-01T00:00:00Z"
}

The live/browser variant still has a recent timestamp:

curl -I -A 'Mozilla/5.0' https://www.gstatic.com/ct/log_list/v3/log_list.zip
x-ct-log-list-variant: v3-live

Its JSON has:

{
  "log_list_timestamp": "2026-06-09T13:40:09Z"
}

Because LogListCacheManagementDataSource treats network log lists older than 70 days as LogListStaleNetwork, the frozen list crossed that threshold on 2026-06-10 UTC:

private val SEVENTY_DAYS = Duration.ofMillis(6048000000)

On Android API 30 with Appmattus installed as the default CT provider, normal HTTPS requests fail closed:

javax.net.ssl.SSLHandshakeException: Certificate transparency failed
Caused by: java.security.cert.CertificateException: Certificate transparency failed
  at CertificateTransparencyTrustManagerExtended.checkServerTrusted

A control test on the same emulator with the Appmattus provider disabled allows the same HTTPS requests to complete normally.

This appears related to Google intentionally serving frozen CT lists to third-party CT libraries:
https://googlechrome.github.io/CertificateTransparency/apps_3p_libraries.html


Related: #163 #143

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions