Nom de domaine

Siamo qui rilassando in una buona giornata normale quando improvvisamente Avviso rosso internazionaleapprendiamo che c’è un difetto critico CVSS 10 Parquet Apachee che tutti sono panico ovviamente !!

Tu, amministratore di sistema o sviluppatore, ti precipiti al tuo telefono che non smette di squillare mentre gli esperti del certificazione ti bombargono con e -mail di allerta e MLDR; E nel mezzo di questo caos, ti graffi la testa (o qualcos’altro) chiedendoti: “Ma sono davvero preoccupato, o è ancora una tempesta in un bicchiere d’acqua?»

Bene, se sei il tipo da voler essere concreto piuttosto che voci, questo articolo ti aiuterà a sapere cosa ritorna al difetto CVE-2025-30065 che ha causato sudori freddi a molte persone negli ultimi giorni. Questo è un caso abbastanza incredibile in cui a Il miglioramento della sicurezza è diventato una vulnerabilità critica.

E ovviamente ti mostrerò come verificare se i tuoi sistemi sono davvero vulnerabili in pochi minuti, senza passare ore a sbucciare i tuoi annessi.

In breve, Apache Parquet, per coloro che non hanno familiarità con questa parola, è un formato di archiviazione in colonne particolarmente efficace per l’elaborazione analitica dei dati. Viene utilizzato dall’ecosistema Apache Hadoop e migliaia di progetti open source, in particolare in tutto ciò che sono pipeline di dati, AI/ML e Big Data. Ad esempio, box come Airbnb, Twitter o Netflix lo usano quotidianamente per gestire le loro monasty di dati.

Ora ciò che è delirante con il CVE-2025-30065 è la sua cronologia completamente WTF:

  • 2 maggio 2024: Apache Avro aggiunge una funzionalità di sicurezza (nessun CVE)
  • 5 agosto 2024: la funzionalità è inclusa in Apache Avro 1.11.4
  • 5 marzo 2025: uno sviluppatore suggerisce di aggiungere la stessa funzionalità a Apache Parquet
  • 16 marzo 2025: Apache Parquet 1.15.1 è pubblicato con la nuova funzionalità
  • 29 marzo 2025: le voci su una grave vulnerabilità iniziano a circolare
  • 1 aprile 2025: annuncio ufficiale di CVE-2025-30065 con punteggio CVSS 10.0 (e no, non è stato un pazzo di aprile!)

Ed è così che a Miglioramento della sicurezza (L’aggiunta di un elenco di autorizzazione) è diventata una vulnerabilità critica.

E il più ironico lì dentro è che Apache Avro ha implementato esattamente la stessa cosa senza ricevere un CVE. Da allora non ha avuto tempo, il “correttivo” era già disponibile due settimane prima dell’annuncio ufficiale. Sì, ti ho detto che la cronologia degli eventi era ouatzefuck!

Tecnicamente, la vulnerabilità è nel modulo parquet-Avro che consente di incorporare gli oggetti AVRO nei file di parquet. Per non iniziati, la de-eédérilization è il processo che trasforma i dati archiviati in oggetti che possono essere utilizzati da un programma. Il problema qui è che durante questa dereializzazione, è possibile istanziare le classi Java arbitrarie.

Tuttavia, a differenza delle vulnerabilità convenzionali di dissizzazione di Java, è possibile solo un’istanza tramite un produttore con un parametro di stringa singolo. Questa limitazione fortunatamente riduce considerevolmente l’effettiva sfruttabilità del difetto, come vedremo.

Un punteggio CVSS 10.0 è, come sai, il livello massimo sulla scala della gravità delle vulnerabilità. In genere parliamo di esecuzione di codice remoto senza autenticazione, del genere Heartbleed (OpenSSL) o Log4Shell che ha messo in ginocchio Internet qualche anno fa.

Ma nel caso della CVE-2025-30065, i limiti effettivi dello sfruttamento sono molto più restrittivi di quanto sembri perché, a differenza delle classiche vulnerabilità della dereializzazione di Java in cui si possono fare catena “gadget” (oggetti Java usati come pezzi di un puzzle dannoso) per eseguire praticamente qualsiasi cosa, qui l’attaccante è limitato alle istanziali delle classi che: che

  1. Sono già nel percorso di classe del bersaglio
  2. Chiedi a un produttore di accettare un parametro String String
  3. Produrre utili effetti collaterali durante la loro istanza

I possibili scenari di attacco rimangono quindi limitati:

  • Watering Hole: pubblicare un set di dati dannoso su un deposito pubblico
  • Ingegneria sociale: inviare direttamente il file parquet dannoso
  • Phishing di lancia: targeting per sviluppatori specifici

In ogni caso, l’attaccante deve soprattutto convincere la sua vittima a elaborare un file di parquet dannoso, che non è sempre ovvio.

Allora perché stare attento?

Bene perché il parquet è onnipresente nelle pipeline di dati e AI/ML. Le configurazioni possono variare enormemente da un ambiente all’altro e alcune organizzazioni trattano file di parquet di fonti esterne non dichiarate. Il rischio è quindi significativo in alcuni contesti, anche se non è universale.

Di fronte a questa situazione, F5 Labs ha sviluppato un ottimo strumento: il “Canary feat“Come un piccolo canarino coraggioso in una miniera che rileva gas tossici, questo strumento open source crea un file di parquet dannoso che cerca di fare una richiesta HTTP a un URL che indica. Se il tuo sistema è vulnerabile, proverà quindi a connettersi a questo URL, confermando il problema.

Tecnicamente, lo strumento genera un file di parquet contenente uno schema AV speciale. Questo diagramma indica che la stringa del personaggio deve essere interpretata come un oggetto javax.swing.jetorpane. Pertanto, quando un sistema vulnerabile tratta questo file, installa questa classe con l’URL fornito, che cerca quindi di connettersi, confermando la vulnerabilità.

Vuoi verificare se sei vulnerabile?

Quindi prima, assicurati di avere Java JDK 21+ installato sulla tua macchina e segui I seguenti passaggi sul lettore del progetto. Fai attenzione, a casa, il comando Curl non ha funzionato, quindi ho dovuto recuperare manualmente il .jar.

È facile da usare, anche se non sei un ninja in una sicurezza e ti consente di verificare rapidamente se i tuoi sistemi sono preoccupati. E poi se hai impostato la correzione, ti consente di verificare che sia davvero in atto. Questo è il tipo di strumento che ti consente di verificare rapidamente che tutto va bene piuttosto che lasciare andare un controllo manuale negli annessi Maven o Gradle. E funziona sotto Linux, MacOS e Windows.

Certo, ci sono alcune limitazioni:

  • Il sistema deve essere in grado di eseguire richieste in uscita (HTTP/DNS)
  • Le configurazioni di rete restrittive possono portare a falsi negativi
  • Configurazioni molto specifiche di seriazable_packages potrebbero anche distorcere i risultati
  • Questo non è un sostituto per un’analisi completa di sicurezza

Ma francamente, per un breve test, è l’ideale.

Ora, chi dovrebbe davvero preoccuparsi di questa cosa?

Bene, tutte le organizzazioni che utilizzano Apache Parquet Java con il modulo parquet-avro nelle versioni ≤1.15.0e in particolare quelli che trattano i file del parquet da fonti esterne. Anche gli ambienti ML/IA/Big Data in cui il parquet è comunemente usato dovrebbe essere vigile.

E se sei vulnerabile, non farti prendere dal panico! Ecco le soluzioni per proteggerti:

  • Aggiorna a Apache Parquet ≥1.15.1
  • Configurare correttamente org.apache.parquet.avro.serializable_packages Limitare i pacchetti autorizzati
  • Evita il parametro generico ” *” che annulla l’effetto dell’elenco di autorizzazione
  • Analizza il tuo albero dipendente con Maven o Gradle per rilevare le versioni vulnerabili

In breve, è potenzialmente pericoloso in determinate condizioni molto specifiche, ma lungi dall’essere lo scenario di disastro che il punteggio CVSS 10.0 consente di immaginare. Comunque, ora lo sai.

Fonte


Source link

Categorized in: