Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-85243 — Proof-of-concept eseguibile in Spring Boot e Quarkus per CVE-2026-85243, che dimostra il downgrade della verifica di integrità di Apache Camel camel-crypto-pgp e la relativa correzione. | Kitploit
Strumenti/GitHubGitHub/oscerd/cve-2026-85243
Strumenti DifensiviAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebCrittografiaPaper e RicercaApprendimento e Formazione
GitHuboscerd/cve-2026-85243

CVE-2026-85243

Proof-of-concept eseguibile in Spring Boot e Quarkus per CVE-2026-85243, che dimostra il downgrade della verifica di integrità di Apache Camel camel-crypto-pgp e la relativa correzione.

Vedi Repository
1 giorno faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2026-85243 — camel-crypto-pgp: downgrade della verifica di integrità (il pacchetto legacy salta il controllo)

Reproduttore eseguibile di proof-of-concept per la vulnerabilità di Apache Camel in cui il formato dati PGP di unmarshal() verificava il codice di rilevamento delle modifiche solo quando il messaggio utilizzava il pacchetto dati protetto da integrità cifrato simmetricamente di OpenPGP. Il più vecchio pacchetto dati cifrato simmetricamente non contiene tale codice, e la modalità CFB di OpenPGP è malleabile senza di esso, quindi un messaggio che utilizzava quel pacchetto legacy saltava del tutto il controllo di integrità. Poiché il tipo di pacchetto è scelto da chi ha prodotto il messaggio, il mittente — o chiunque sia in grado di riscrivere il messaggio in transito — decideva se il controllo di integrità fosse applicato o meno. L'opzione integrity esistente governa solo il marshalling e non aveva una controparte lato decifratura, quindi un deployment non poteva richiedere la protezione dell'integrità sui messaggi che accettava.

RuntimeDirectoryStack
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-crypto-pgp 4.22.0 (affetto; corretto in 4.22.1)
Camel Quarkuscamel-quarkus/Quarkus 3.29.0 + camel-quarkus-crypto-pgp (Camel 4.15.0, affetto; controllo corretto CQ 3.40.0 / Camel 4.22.1)

Entrambi i moduli dimostrano il comportamento affetto e quello corretto.

Cosa dimostra

Il driver di exploit interpreta un mittente (o un intermediario) che produce un messaggio PGP con il pacchetto legacy cifrando con integrity=false — il testo cifrato risultante non contiene alcun codice di rilevamento delle modifiche. Poi invia quel messaggio a una route che lo decifra con la chiave segreta.

  • Affetto: il messaggio viene decifrato e il suo testo in chiaro (BENIGN-PGP-PAYLOAD-MARKER-5E1F) restituito — il controllo di integrità è stato saltato del tutto perché il mittente ha scelto il pacchetto legacy. Il deployment ha accettato un testo cifrato che non poteva verificare.
  • Corretto: il decifratore rifiuta il messaggio con una PGPException — "PGP message is not integrity protected…" — perché la nuova opzione requireIntegrityProtection è impostata per default su true.

I portachiavi (pubring.gpg, secring.gpg, user id e password entrambi sdude) sono le fixture di test pubbliche RSA-2048 dai test camel-crypto-pgp di Apache Camel stesso — materiale inerte, incluso affinché il round-trip sia autosufficiente.

# Camel Spring Boot
cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack     # affected: legacy message decrypts; >>> PROVEN
docker compose down
# Patched control
mvn clean package -Dcamel.version=4.22.1
java -jar target/cve-2026-85243-crypto-pgp-integrity-downgrade-0.0.1-SNAPSHOT.jar &
curl -s http://localhost:8080/exploit/attack     # fixed: rejected "not integrity protected"; >>> Not exploited
# Camel Quarkus
cd camel-quarkus
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack     # affected (Camel 4.15.0): legacy message decrypts
docker compose down
# Patched control: CQ 3.40.0 ships Camel 4.22.1
mvn clean package -Dcamel-quarkus.version=3.40.0 -Dquarkus.platform.version=3.40.0
java -jar target/quarkus-app/quarkus-run.jar &
curl -s http://localhost:8080/exploit/attack     # fixed: rejected "not integrity protected"

Riepilogo della vulnerabilità

ProprietàValore
Componentecamel-crypto-pgp (PGPKeyAccessDataFormat.unmarshal)
CWECWE-354 (Validazione impropria del valore di controllo dell'integrità)
GravitàMEDIA
Vettore di attaccoUn messaggio prodotto con il pacchetto dati legacy cifrato simmetricamente (senza codice di rilevamento delle modifiche)
ImpattoDowngrade della verifica dell'integrità: il mittente/intermediario decide se il controllo di integrità viene eseguito; il testo cifrato malleabile viene accettato senza verifica
Versioni interessateDalla 4.0.0 precedente alla 4.18.5, dalla 4.19.0 precedente alla 4.22.1
Versioni corrette4.18.5, 4.22.1, 4.23.0
JIRACAMEL-24441
CreditoClaude Security Scan Tool

Avviso: https://camel.apache.org/security/CVE-2026-85243.html

La correzione

PGPKeyAccessDataFormat.unmarshal aggiunge un'opzione requireIntegrityProtection (predefinita a true). Quando un messaggio non è un pacchetto protetto da integrità e l'opzione è abilitata, unmarshal ora genera PGPException("PGP message is not integrity protected…") invece di decifrarlo. Si noti che signatureVerificationOption è ancora predefinito a optional, quindi un messaggio privo di firma viene comunque accettato; le due opzioni insieme sono ciò che conferisce a un messaggio decifrato autenticità e non solo riservatezza. Impostare requireIntegrityProtection=false solo per interoperare con un mittente che emette ancora il pacchetto legacy, e trattare il contenuto decifrato come non autenticato.

Mitigazione se non è possibile aggiornare

Rifiutare i messaggi che non utilizzano il pacchetto protetto da integrità prima che raggiungano il data format (ad esempio, ispezionare l'header del pacchetto OpenPGP in un processor a monte di unmarshal).

Disclaimer

Questo repository è pubblicato per scopi educativi e difensivi: per aiutare gli utenti di Apache Camel a comprendere la vulnerabilità, verificare se ne sono interessati e confermare che l'aggiornamento la risolve. I keyring e il testo in chiaro sono fixture di test pubbliche e inerti. Non utilizzare questo materiale contro sistemi di cui non si è proprietari o gestori.

Scarica lo strumento