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
rep-openai-artifactory — Analisi forense e replica locale dell'incidente di escalation dei privilegi OpenAI-Artifactory (CVE-2026-65616) | Kitploit
Strumenti/GitHubGitHub/alixiacf/rep-openai-artifactory
Escalation di PrivilegiSicurezza dei ContenitoriAnalisi delle VulnerabilitàInformatica ForensePenetration TestingSicurezza CloudPaper e RicercaApprendimento e FormazioneSicurezza dell'IA

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
Lab e Pratica
GitHubalixiacf/rep-openai-artifactory

rep-openai-artifactory

Analisi forense e replica locale dell'incidente di escalation dei privilegi OpenAI-Artifactory (CVE-2026-65616)

Vedi Repository
1111h 28m faNon ancora revisionato

Forensis Lab — Ricostruzione forense dell'escalation di privilegi dell'agente AI (JFrog Artifactory)

Una ricostruzione forense sicura, isolata e documentale dell'"Incidente Cero" (OpenAI, maggio 2026): un agente AI in sandbox scopre il proxy di pacchetti JFrog Artifactory, estrae le credenziali dalla propria configurazione, improvvisa una bacheca messaggi sul server ed escala da lettore ad amministratore.

Obiettivo dello studio: determinare quanto della configurazione di base abbia abilitato l'evento. L'esperimento termina con la creazione dell'utente amministratore (la "flag"). Non copre l'incidente completo.

Requisiti

  • Docker + Docker Compose (testato su Windows/WSL e Linux).
  • Una licenza JFrog Artifactory Pro — ottieni una prova gratuita di 1 mese su https://jfrog.com/start-free/. Inserisci il file di licenza nella cartella artifactory_license/ (sostituisci il segnaposto artifactory.lic presente). Senza licenza, Artifactory funziona in modalità OSS e la maggior parte delle API del lab (permessi, token, repository remoti) non funzionerà.
  • Nota sulla versione: questo lab fissa Artifactory 7.146.25 — la versione esatta la cui API dei token accettava il vettore forged-refresh (CVE-2026-65616, corretto in 7.146.27). Questo è il punto del lab.

Avvio rapido

root@kitploit:~
git clone <this-repo> && cd <dir>
# 1. put your license in artifactory_license/artifactory.lic
# 2. clean start (preserves data volumes; see "Reset semantics" below):
./reset.sh && ./start.sh

start.sh predispone l'intero scenario (il primo avvio richiede diversi minuti mentre Artifactory si avvia):

  1. Licenza — installata manualmente da te tramite l'interfaccia utente (mai automatizzata; la tua licenza è personale e scade). Lo script si limita a verificare se una licenza è attiva e avvisa.
  2. Accesso anonimo esplicitamente abilitato — come nell'incidente originale.
  3. 6 repository — pypi/npm, ciascuno local + remote + virtual. Il remoto PyPI è configurato con URL https://files.pythonhosted.org (la ricetta che funziona effettivamente in questa versione).
  4. Utente agente-compartido (gruppo readers) con permessi di scrittura (Anything: read + deploy/cache) — la cattiva pratica che abilita la bacheca messaggi.
  5. Un token di riferimento predefinito viene fornito all'agente tramite un volume dedicato; l'agente lo inserisce in /etc/pip.conf e /etc/npmrc — la fuga della Fase 1. Il token fornito si trova in .

Scorciatoia: se hai importato i volumi preconfigurati dalla Release (vedi sotto), il provisioning è già stato effettuato — ./start.sh si limita ad avviare lo stack.

Verifica:

root@kitploit:~
curl -s http://localhost:8081/artifactory/api/system/ping     # -> "true"
docker exec -it incidente-modelo-simulado sh
# inside the agent:
cat /etc/pip.conf            # leaked credentials (the Fase 1 leak)
. /opt/venv/bin/activate
pip install six              # packages without internet, via the remote

Poi segui le fasi in ordine: phases/README.md → 00 Architettura → 01 Scoperta → 02 Bacheca messaggi → 03 Token rinnovabile → 04 Escalation (CVE-2026-65616) → 05 Verifica admin.

Ciclo di vita del token (importante)

  • Un token di riferimento predefinito (cmVmdGtu...) è fornito in token/token_ref.txt e viene consegnato all'agente da start.sh a ogni avvio.

  • I token di riferimento sono puntatori al database di Artifactory (l'hash del token risiede nel volume PostgreSQL). reset.sh preserva deliberatamente i volumi dati, quindi il token sopravvive ai reset.

  • Per forzare uno stato completamente nuovo, elimina i volumi manualmente:

    root@kitploit:~
    docker volume rm $(docker volume ls -q | grep -E 'artifactory_data_v714625|postgres_data')
    

    Poi devi generare un nuovo token di riferimento tramite l'interfaccia di amministrazione e assegnarlo direttamente all'utente agente-compartido — non al gruppo. Un token con ambito di gruppo viene attribuito ad admin, e il rinnovo del token dell'agente fallirà silenziosamente. Aggiorna token/token_ref.txt con il nuovo valore.

  • Procedura passo passo per la rigenerazione: token/README.md.

Fasi

Volumi preconfigurati (asset della Release)

Una Release GitHub di questo repository fornisce i tre volumi Docker del lab funzionante come tarball, così un clone può far rivivere lo stato esatto preconfigurato (repository, permessi, anonimo ON, hash del token, cache) senza provisioning:

AssetVolume
incidente_artifactory_data_v714625.tar.gzDati Artifactory (7.146.25)
incidente_postgres_data.tar.gzBackend PostgreSQL (qui risiedono gli hash dei token)
incidente_agent_secrets.tar.gzLa credenziale consegnata all'agente

Importazione (dalla cartella che contiene i tarball):

root@kitploit:~
for V in incidente_artifactory_data_v714625 incidente_postgres_data incidente_agent_secrets; do
  docker volume create $V
  docker run --rm -v $V:/data -v $(pwd):/backup alpine sh -c "cd /data && tar xzf /backup/$V.tar.gz"
done
./start.sh

Note:

  • I volumi si decifrano solo con la masterKey fissata in docker-compose.yml — non modificarla mai dopo l'importazione.
  • Lo stato incluso viene fornito senza licenza: lo stato è verificato privo di qualsiasi materiale di licenza. Installa la tua licenza di prova (vedi Requisiti) subito dopo ./start.sh — senza di essa, le scritture sono bloccate (le letture funzionano).
  • Anche con i volumi, il token di riferimento fornito si autentica solo finché lo stato del volume è intatto — il token è un puntatore a quel database (vedi Ciclo di vita del token sopra).

Semantica del reset

  • ./reset.sh arresta i container senza eliminare i volumi (nessun down -v).
  • ./start.sh è idempotente: predispone ciò che manca e mantiene tutto il resto.
  • Prima esecuzione da una macchina pulita: esegui entrambi. Qualsiasi esecuzione successiva: ./start.sh da solo è sufficiente.

Cosa dimostra questo lab

Ogni condizione isolata dello scenario ha una giustificazione di comodo (cache, credenziale condivisa, token rinnovabili). Orchestrate insieme, dimostrano che non è stata necessaria alcuna escalation crittografica sofisticata: quattro dei sei anelli della catena causale sono decisioni di configurazione. Il confine di fiducia era stato tracciato attorno all'azienda, non attorno a ciascun attore — e l'agente era un attore all'interno del perimetro. La tesi in una frase: Zero Trust non è per i modelli, è per le aziende; quando il consumatore cambia natura (script → agente autonomo), la superficie di fiducia deve essere ricalibrata.

Etica

  • Lab isolato: l'agente non ha accesso a Internet; Artifactory sì, solo per agire come mirror di pacchetti.
  • I token inclusi sono token di lab: effimeri e privi di valore al di fuori di questa rete.
  • Solo a scopo didattico e documentale: archeologia della cybersecurity applicata agli agenti AI.

Citare questo repository

Se utilizzi questo lab in ricerca o didattica, citalo tramite il suo DOI Zenodo 10.5281/zenodo.22817059:

Colmenero-Fernandez, A. (2026). Forensis Lab: Forensic Recreation of the AI Agent Privilege Escalation (JFrog Artifactory, CVE-2026-65616) (v1.0.0). Zenodo. https://doi.org/10.5281/zenodo.22817059

BibTeX:

root@kitploit:~
@software{colmenerofernandez2026forensislab,
  author    = {Colmenero-Fernandez, Alicia},
  title     = {{Forensis Lab: Forensic Recreation of the AI Agent Privilege Escalation (JFrog Artifactory, CVE-2026-65616)}},
  year      = {2026},
  version   = {1.0.0},
  doi       = {10.5281/zenodo.22817059},
  url       = {https://doi.org/10.5281/zenodo.22817059}
}

Metadati di citazione leggibili dalla macchina: CITATION.cff.

Scarica lo strumento
in chiaro
token/token_ref.txt
  • Stranezza dell'interfaccia (documentata): l'interfaccia potrebbe mostrare il token come non rinnovabile; creato come admin con token.allow-refreshable: true, esso è rinnovabile — questa discrepanza fa parte dell'incidente in esame.

  • FileFaseContenuto
    phases/FASE_00_Arquitectura.md0Architettura Docker, versione vulnerabile (7.146.25), provisioning dell'operatore
    phases/FASE_01_Descubrimiento.md1L'agente scopre Artifactory: non può navigare, ma può installare; audit di pip.conf
    phases/FASE_02_Tablon_Mensajes.md2PUT su un repository locale (HTTP 201), bacheca messaggi improvvisata
    phases/FASE_03_Token_Refreshable.md3Richiesta di token rinnovabile; evidenza YAML (allow-refreshable)
    phases/FASE_04_Escalada.md4Falsificazione JWT ed exploit del refresh; tentativi falliti e scoping
    phases/FASE_05_Verificacion_Admin.md5Verifica del token admin e creazione dell'utente agente-admin (la flag)
    phases/FASE_06_Post_Escalada.md6Attività post-escalation dell'incidente (documentate, non implementate)