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
ats-magick-unsigned — Apache Traffic Server 10.2.0 - Alta - Remoto - Scrittura di file - magick convert senza firma scrive come nobody | Kitploit
Strumenti/GitHubGitHub/abraxas/ats-magick-unsigned
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebRaccolta InformazioniSicurezza WebLab e Pratica
GitHubabraxas/ats-magick-unsigned

ats-magick-unsigned

Apache Traffic Server 10.2.0 - Alta - Remoto - Scrittura di file - magick convert senza firma scrive come nobody

Vedi Repository
115 giorni 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

Abraxas Labs - ats-magick-unsigned

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  ats-magick-unsigned

ats-magick-unsigned

Classe: Scrittura file Portata: Remota

Apache Traffic Server 10.2.0 (b1df7334) - Apache Software Foundation

La magick sperimentale esegue ConvertImageCommand di ImageMagick da ?magick= (argv di convert in percent+base64) quando plugin.config non contiene alcuna chiave RSA. verified = nullptr == key_. Il README afferma che la chiave esiste per evitare di essere sfruttati. Caricare magick.so senza argomenti è il comportamento predefinito del plugin.

Un CONTROL firmato con una chiave pubblica RSA su plugin.config restituisce 403, nessun file testimone. La classe resta Scrittura file. Il policy.xml della distribuzione spesso disabilita i delegate URL/shell. Non gonfiare a RCE.

IDnessuna CVE al momento
ClasseScrittura file (argv di convert non firmato)
PortataRemota (?magick= HTTP non autenticato tramite magick.so senza chiave)
CWECWE-347, CWE-73
CVSSAlto: 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
ProdottoApache Traffic Server
Affetto10.2.0 (b1df7334b39a878971c376da849e8da4984918b6) magick sperimentale convert non firmato
Authnessuna
LicenzaGNU Affero GPL v3.0
Labsolo 127.0.0.1:18800

Ho fissato il tag pubblico 10.2.0 peel b1df7334. Il lab è un reverse proxy ats-10.2.0-lab:local compilato dai sorgenti su loopback. Convert non firmato -write png:/tmp/oracle/ATS-MAGICK-UNSIGNED-WITNESS. File testimone di 161 byte con proprietario nobody. CONTROL firmato 403.

Cosa può fare un attaccante

GET /img.png?magick= non autenticato contro un'immagine di origine con un Content-Type compatibile, con magick.so caricato e nessuna chiave RSA.

MetodoSinkPrivilegio
GET /img.png?magick= non autenticato convert non firmato -write png:/tmp/oracle/ATS-MAGICK-UNSIGNED-WITNESSverified = nullptr == key_ (magick.cc:593-609) poi ConvertImageCommandIntegrità / File (dimostrato in lab): file testimone di 161 byte con proprietario nobody. Log ImageMagick's syntax. HTTP 200.
Stessa query con chiave RSA su plugin.configEVP_DigestVerifyChiuso (dimostrato in lab): 403 verifica della firma fallita. Nessun file testimone.
Blob di origine enormeblob_ senza limitiDisponibilità (inferito): pressione sulla memoria del processo. Simile al limite di CVE-2026-58186. Non questa riga Alto.
Delegate URL / shell di IMpolicy.xmlChiuso in questo lab: delegate HTTP/HTTPS/URL/MVG/shell nessuno. Non chiamarlo RCE.

Dimostrato in lab vs inferito: scrittura file non firmata come nobody, 403 firmato, log di sintassi sono da lab. Il DoS da blob senza limiti è inferito. RCE non è rivendicato.

Richiede: magick.so sperimentale senza chiave di verifica, più un policy.xml di ImageMagick che consenta ancora la scrittura del percorso di convert. Non caricato nel plugin.config predefinito.

Superficie adiacente che resta chiusa

SuperficieLab
magick caricato con una chiave pubblica RSACONTROL 403, control-sigfail=yes, nessun file
magick non caricatola query magick è inerte
wasm WASI path_openNOENT
Corpo della richiesta come input di IMil blob della risposta di origine è l'input
decodifica vincolata di webp_transformCVE-2026-58186 chiusa; il blob di magick è il simile che non era vincolato

Non è CVE-2026-58186. Il README di Magick diceva già che la chiave esiste per evitare di essere sfruttata. Ciò che rimane è il caricamento del plugin senza quella chiave.

Lab

python3 ats-magick-unsigned-Abraxas-Labs.py

o

cd lab
./run.sh

Loopback 127.0.0.1:18800 (CONTROL firmato su un secondo listener). Progetto Compose ats-magick-unsigned. Immagine ats-10.2.0-lab:local. Witness ATS-MAGICK-UNSIGNED-WITNESS. Ultima riga:

SUCCESS ats-magick-unsigned unsigned-http=200 file-write=yes uid=nobody syntax-log=true control-http=403 control-sigfail=yes ATS-MAGICK-UNSIGNED-WITNESS

La correzione

Fallire in modo sicuro quando key_ è null. Non eseguire ConvertImageCommand sul client ?magick= senza un magickSig verificato. Trattare una chiave mancante come "plugin misconfigurato", non come "conversione non firmata va bene". Limitare blob_ allo stesso modo in cui è stato limitato webp_transform.

Fino ad allora, non caricare magick.so senza una chiave pubblica RSA di dimensioni di produzione. Il policy.xml della distribuzione non sostituisce la firma.

Riferimenti

  • github.com/apache/trafficserver tag 10.2.0 (b1df7334b39a878971c376da849e8da4984918b6)
  • plugins/experimental/magick/magick.cc verified = nullptr == key_
  • plugins/experimental/magick/README
  • Correlato (chiuso, non questo): CVE-2026-58186 webp_transform bound decode
  • CWE-347 · CWE-73
Scarica lo strumento