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
cve-2026-103956-loom-unauth — CVE-2026-103956 - Loom per AWS - Critico - Bypass dell'autenticazione - super-admin non autenticato quando non è configurato alcun IdP | Kitploit
Strumenti/GitHubGitHub/abraxas/cve-2026-103956-loom-unauth
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebVirtualizzazione per la SicurezzaPenetration TestingSicurezza CloudAutenticazioneLab e Pratica
GitHubabraxas/cve-2026-103956-loom-unauth

cve-2026-103956-loom-unauth

CVE-2026-103956 - Loom per AWS - Critico - Bypass dell'autenticazione - super-admin non autenticato quando non è configurato alcun IdP

Vedi Repository
852220 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 - cve-2026-103956-loom-unauth

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  cve-2026-103956-loom-unauth

cve-2026-103956-loom-unauth

Loom for AWS < 1.6.1 - AWS Labs

Quando Cognito non è configurato e nessun IdP esterno è attivo, get_current_user assegna a ogni richiesta t-admin / g-admins-super. Ciò include le richieste senza header Authorization. Un deploy appena eseguito prima della configurazione dell'IdP è un pannello di amministrazione aperto.

IDCVE-2026-103956
CWECWE-306 / CWE-1188
CVSSCritico: 10.0 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
ProdottoLoom for AWS
Affetto< 1.6.1. Pin del lab v1.6.0 (8c658d61). Corretto in v1.6.1 (ccad5665).
Autenticazionenon autenticato
ClasseBypass dell'autenticazione / super-admin non autenticato (ATO)
RaggiungibilitàRemota (non autenticata)
LicenzaGNU Affero GPL v3.0
Labsolo 127.0.0.1

Cosa può fare un attaccante

L'attaccante controlla il piano di controllo degli agenti senza alcuna credenziale.

  • Entra come super-admin. GET /api/auth/me senza header restituisce username=local-dev, sub=local, gruppi t-admin e g-admins-super. Ogni scope in GROUP_SCOPES è disponibile con quell'identità.
  • Registra server di tool. POST /api/mcp/servers non autenticato restituisce 201. MCP, A2A, agenti, memorie, sicurezza, impostazioni, credenziali e audit di amministrazione si trovano dietro la stessa dipendenza.
  • Legge i segreti delle integrazioni memorizzati. GET /api/mcp/servers/{id}/export richiede admin:write. Su questo pin restituisce oauth2_client_secret da SQLite. Il testo della CVE menziona anche la riscrittura delle policy dei ruoli IAM sui ruoli degli agenti gestiti; quel percorso richiede AWS ed è al di fuori di questo lab su loopback.
  • Colpiscilo su una porta pubblicata. Deploy appena eseguito, Cognito dimenticato o un IdP che non è riuscito a caricarsi. Il backend è FastAPI sulla porta 8000. La raggiungibilità di rete è sufficiente.

v1.6.1 richiede LOOM_ALLOW_UNAUTHENTICATED_LOCAL_DEV più un client loopback. La stessa richiesta restituisce 401 (No identity provider configured).

Come l'ho trovato

AWS ha pubblicato CVE-2026-103956 con GHSA-vgmj-998f-r8mp e il bollettino 2026-124-AWS. Ho fissato awslabs/loom v1.6.0 (8c658d61) accanto a v1.6.1 (ccad5665) e ho eseguito il backend su SQLite con LOOM_COGNITO_USER_POOL_ID non impostato.

backend/app/dependencies/auth.py get_current_user controlla le variabili d'ambiente di Cognito e una riga IdP attiva. Entrambe vuote: restituisce UserInfo(sub="local", username="local-dev", groups=["t-admin", "g-admins-super"], scopes=ALL_SCOPES). Il token non viene mai letto.

Ho avviato FastAPI standard su loopback 127.0.0.1:18180 (v1.6.0) e 18181 (v1.6.1). Nessun frontend. Nessun AWS. GET /api/auth/me non autenticato sulla 1.6.0 ha restituito 200 con quei gruppi. POST /api/mcp/servers non autenticato con oauth2_client_secret=CVE-2026-103956-WITNESS ha restituito 201. GET /api/mcp/servers/1/export ha restituito il segreto. Sulla 1.6.1 lo stesso /api/auth/me ha restituito 401.

SUCCESS CVE-2026-103956 me-http=200 me-user=local-dev me-sub=local me-groups=t-admin,g-admins-super mcp-create=201 export-has-secret=yes list-has-witness=yes patched-me-http=401 CVE-2026-103956-WITNESS

I passaggi errati già registrati: public.ecr.aws/docker/library/python:3.13-slim è stato saltato per Docker Hub python:3.13-slim; il primo /health su v1.6.0 è stato curl 52 mentre uvicorn era in ascolto, poi 200; lo schema di creazione MCP ha trovato corrispondenza al primo POST, nessun nuovo tentativo 422. Una reverse shell. Teatro. L'oracolo è /api/auth/me più il segreto esportato.

Lab

cd lab
./run.sh

Punta solo a http://127.0.0.1:18180 (v1.6.0) e http://127.0.0.1:18181 (v1.6.1). run.sh esegue un clone shallow di quei tag, compila entrambi i backend, quindi smonta lo stack. SQLite. Nessuna variabile d'ambiente Cognito. Nessun LOOM_ALLOW_UNAUTHENTICATED_LOCAL_DEV sul servizio patchato.

La correzione

Aggiorna a 1.6.1 o successivo. AWS raccomanda 1.7.0 per i problemi correlati di SSRF/token. Il bypass della 1.6.1 è opt-in e limitato al loopback. Fino ad allora, completa Cognito o un IdP esterno prima che il backend sia raggiungibile oltre il loopback, e mantieni LOOM_ALLOW_UNAUTHENTICATED_LOCAL_DEV non impostato su qualsiasi cosa venga distribuita.

Riferimenti

  • CVE-2026-103956
  • GHSA-vgmj-998f-r8mp
  • AWS bulletin 2026-124-AWS
  • awslabs/loom tag v1.6.0 / v1.6.1
  • backend/app/dependencies/auth.py (get_current_user)
  • CWE-306

Licenza

GNU Affero GPL v3.0

Scarica lo strumento