Bundled ca-bundle.crt trusts AAA Certificate Services, which cross-signed the compromised eMudhra intermediates
Los mantenedores suelen responder en 1 día
Ya se ha fusionado un pull request relacionado.
- #3461 de @dscpinheiro — fusionado
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 72/100
Línea de trabajo
Empieza con gems/aws-sdk-core/ca-bundle.crt y localiza la raíz de AAA Certificate Services identificada por su huella SHA-256 en el issue. Comprueba el bundle con los intermediarios afectados proporcionados o con la reproducción usando Aws.use_bundled_cert!. Se considera terminado cuando los certificados cuya cadena pasa por los intermediarios comprometidos no superan la verificación y el comportamiento reportado de los endpoints de AWS no relacionados sigue sin verse afectado.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Describe the bug
The private keys of eight eMudhra intermediate CAs (EM DV/OV/EV TLS CA - G3B/G3C, EM OV CS CA - G3B/G3C) have been publicly disclosed as compromised: https://emudhra.we-have-a-problem.com/ (Mozilla bug: https://bugzilla.mozilla.org/show_bug.cgi?id=2083449). Anyone can recover the keys from the certificates. The intermediates were revoked on Oct 18–19, 2026.
Each intermediate was cross-signed by Sectigo's AAA Certificate Services root (SHA-256 D7A7A0FB5D7E2731D771E9484EBCDEF71D5F0C3E0A2948782BC83EE0EA699EF4). That root is still in gems/aws-sdk-core/ca-bundle.crt (last updated in 2018). Mozilla has already removed it from its root store.
As a result, anyone who calls Aws.use_bundled_cert! trusts TLS certificates issued by any of the compromised intermediates. Ruby/OpenSSL doesn't check revocation by default, so the revocations don't help. An attacker holding one of these keys could impersonate any HTTPS endpoint to those clients. That includes non-AWS endpoints and any custom :endpoint.
This is a different request from #3423. That issue was about new roots missing from the bundle. This one is about a root still in the bundle that now anchors publicly compromised keys.
Regression Issue
- Select this option if this issue appears to be a regression.
Expected Behavior
With Aws.use_bundled_cert!, certificates chaining to the compromised eMudhra intermediates should fail verification.
Current Behavior
They verify successfully. All 8 Sectigo cross-signed intermediates in the disclosure's impacted-intermediates.json verify against an OpenSSL::X509::Store loaded from ca-bundle.crt. A live TLS connection to the disclosure's test host also succeeds.
Reproduction Steps
require 'aws-sdk-core'
require 'net/http'
http = Net::HTTP.new('dv-g3b-aaa-emudhra.we-have-a-problem.com', 443)
http.use_ssl = true # VERIFY_PEER by default
http.ca_file = Aws.use_bundled_cert!
puts http.request_get('/').code
# => 200 (should raise OpenSSL::SSL::SSLError: certificate verify failed)
For comparison, dv-g3b-emudhra.we-have-a-problem.com (the same intermediate, issued directly by eMudhra's root) correctly fails with unable to get local issuer certificate.
Possible Solution
Either of these fixes it:
- Remove
AAA Certificate Servicesfromca-bundle.crt. This is the smallest change. - Regenerate
ca-bundle.crtfrom the current Mozilla/curl bundle (2026-10-20 or later). That bundle drops this root and the emSign roots.
A patch release of aws-sdk-core would help users who rely on Aws.use_bundled_cert!.
Additional Information/Context
- AWS service endpoints chain to Amazon Trust Services and aren't affected.
- Users who don't call
Aws.use_bundled_cert!use the OS/OpenSSL trust store and should update their systemca-certificatespackage instead.
Gem name ('aws-sdk', 'aws-sdk-resources' or service gems like 'aws-sdk-s3') and its version
aws-sdk-core 3.259.0 (version-3 @ 824e96b6d8)
Environment details (Version of Ruby, OS environment)
Ruby 3.4.5 (arm64-darwin24), OpenSSL 3.5.9, macOS 27.0.1. The behavior depends on the bundled file, not the platform.
This issue was generated by AI tools, and reviewed by DewaldoDev
- Lenguaje dominante
- Ruby
- Estrellas
- 3.7k
- Forks
- 1.2k
- Merge medio
- 1 d 16 h
- PR fusionados (30 d)
- 25
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de aws/aws-sdk-ruby
-
service-api
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
aws/aws-sdk-ruby#3395 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
BedrockAgentCore: invoke_agent_runtime buffers entire response instead of streaming in real-timeAbiertodocumentation p3 queued
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
aws/aws-sdk-ruby#3348 · 6 comentarios · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
credentials static web identity credentials not picked up without an explicit profile optionAbiertofeature-request needs-major-version
Dificultad 3/5 1-2 días Aptitud para principiantes 48/100
aws/aws-sdk-ruby#3241 · 5 comentarios ·
Los mantenedores suelen responder en 1 día
-
investigating service-api
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
aws/aws-sdk-ruby#3217 · 4 comentarios ·
Los mantenedores suelen responder en 1 día
-
service-api
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
aws/aws-sdk-ruby#3191 · 1 comentario ·
Los mantenedores suelen responder en 1 día
Todos los issues de aws/aws-sdk-ruby
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
Los mantenedores suelen responder en 1 día
-
[Bug] Chatwoot v4.19.0 – Super Admin returns 500 due to missing superadmin.scss Vite manifest entryAbiertoBug
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 2 días
-
PRM baseline System 1 and 2 fans run continuously in unoccupied hours (low priority)Posiblemente ocupada @anchapin la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
NatLabRockies/openstudio-standards#2167 ·
Los mantenedores suelen responder en 1 día
-
Phone validation rejects valid numbers in new NANP area code 738 (phonelib 0.10.15 outdated)Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
18F/identity-idp#13734 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Ubuntu 26.04: gems linking OpenSSL statically (e.g. rugged) fail to build – libjitterentropy3-dev missingPosiblemente ocupada @BattleAurora la tomó hoy. AbiertoArea: Ruby bug report needs triage OS: Ubuntu
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
actions/runner-images#15068 · 1 comentario ·
Los mantenedores suelen responder en 3 días