Compare commits

..

3 Commits

Author SHA1 Message Date
opencode cd2f1de610 Use X509ExtendedTrustManager to avoid JDK AlgorithmChecker constraints
Netty 4.2.15 fixed CVE-2026-50010 by removing the silent wrapping of
plain X509TrustManager in X509ExtendedTrustManager. When a plain
X509TrustManager is used, the JDK wraps it in AbstractTrustManagerWrapper
and runs TrustManagerImpl.checkTrusted() with AlgorithmChecker before
calling the custom trust manager.

This caused client certificates signed with SHA3-512withECDSA to be
rejected even though they are not explicitly blacklisted in java.security,
because the JDK's internal PKIX validator applies stricter constraints.

By making our custom trust managers implement X509ExtendedTrustManager
directly, the JDK calls the 3-arg methods directly and bypasses its
internal TrustManagerImpl, restoring the pre-4.2.15 behavior where
only our custom PKIX validation runs.

Files changed:
- rbcs-common/RBCS.kt: getTrustManager() returns X509ExtendedTrustManager
- rbcs-client/RemoteBuildCacheClient.kt: trust-all manager uses X509ExtendedTrustManager
2026-06-12 00:29:46 +00:00
woggioni cdd4f7bd04 tmp
CI / build (push) Successful in 2m22s
2026-06-12 00:27:52 +08:00
woggioni b4a97845ca tmp
CI / build (push) Failing after 1m26s
2026-06-09 22:32:40 +08:00
3 changed files with 8 additions and 1 deletions
@@ -2,7 +2,7 @@ Args=-O3 \
-march=x86-64-v3 \ -march=x86-64-v3 \
--gc=serial \ --gc=serial \
--enable-url-protocols=jpms \ --enable-url-protocols=jpms \
--pgo=conf/default.iprof \ --pgo=native-image/default.iprof \
--initialize-at-run-time=io.netty \ --initialize-at-run-time=io.netty \
--initialize-at-build-time=net.woggioni.rbcs.common.RbcsUrlStreamHandlerFactory,net.woggioni.rbcs.common.RbcsUrlStreamHandlerFactory$JpmsHandler \ --initialize-at-build-time=net.woggioni.rbcs.common.RbcsUrlStreamHandlerFactory,net.woggioni.rbcs.common.RbcsUrlStreamHandlerFactory$JpmsHandler \
--trace-object-instantiation=ch.qos.logback.classic.Logger \ --trace-object-instantiation=ch.qos.logback.classic.Logger \
+7
View File
@@ -1,5 +1,12 @@
pluginManagement { pluginManagement {
repositories { repositories {
// mavenLocal {
// content {
// includeGroup 'net.woggioni.gradle'
// includeGroup 'net.woggioni.gradle.lombok'
// includeGroup 'net.woggioni.gradle.finalguard'
// }
// }
maven { maven {
url = getProperty('gitea.maven.url') url = getProperty('gitea.maven.url')
} }