
Verificatore offline delle evidenze NetScaler ADC / Gateway per CVE-2026-88775. Evidenze segnalate su firmware e configurazione. Python standalone; report JSON/CSV/HTML; nessun payload di exploit.
Triage offline delle evidenze su build e configurazione NetScaler segnalate dall'operatore per CVE-2026-88775 (corruzione di memoria in Gateway o AAA).
Un checker Python 3.10+ autonomo che utilizza solo la libreria standard. Legge le stringhe di build e le osservazioni di configurazione fornite, le confronta con le build corrette dal fornitore e scrive un report in JSON, CSV o HTML. Non ha modalità di rete: non contatta un'appliance, non esegue codice applicativo, non invia payload di exploit né analizza una configurazione.
Il checker copre una sola CVE e segue le convenzioni di reportistica di node2shell-check e php2shell-check.
potentially_affected non equivale a sfruttabilità confermata.fixed_version_reported non è uno stato di patch verificato né una garanzia di sicurezza. Significa che la build segnalata è pari o superiore alla build corretta dal fornitore.unknown non è mai sicuro.exploitability: not_tested.Utilizzare solo inventari che si è autorizzati a valutare.
Requisiti: Python 3.10 o successivo (usare python3 dove questo è il nome del comando). Non c'è nulla da installare e non ci sono dipendenze di terze parti. --help elenca tutte le opzioni.
# One reported build
python netscaler_cve_2026_88775_check.py --version 14.1-73.36 --variant standard
# The synthetic example inventory, as an HTML report
python netscaler_cve_2026_88775_check.py --inventory docs/example-inventory.json --format html --output report.html
# A CSV inventory, as JSON, exiting 1 if any row is potentially affected
python netscaler_cve_2026_88775_check.py --csv-list inventory.csv --format json --fail-on-finding
Il formato del report è JSON per impostazione predefinita e l'output predefinito è stdout. Un file di report esistente viene rifiutato a meno che non venga fornito --force. Il checker termina con stato 2 se non viene fornito alcun input --version, --inventory o --csv-list.
--version, --inventory e --csv-list possono essere combinati in un'unica esecuzione.
| Input | Descrizione |
|---|---|
--version BUILD | Una build segnalata. Ripetibile. --variant standard|fips|ndcpp e --build-source si applicano a ogni --version sulla riga di comando. |
--inventory FILE | Oggetto JSON UTF-8 o array non vuoto. Richiede schema_version: 1 e una version di tipo stringa. Opzionali: label, variant, build_source, version_candidates (fino a 16 stringhe). Ripetibile. |
--csv-list FILE | CSV UTF-8 con un'intestazione version obbligatoria. Opzionali: label, variant, build_source e colonne di osservazione. Ripetibile. |
Solo una build source vuota, unknown, official o citrix consente un confronto; qualsiasi altra provenienza resta unknown. La provenienza è un'affermazione dell'operatore.
L'input è rigoroso. Campi sconosciuti o duplicati, tipi errati, JSON o CSV malformati e input oltre i limiti sono errori che non pubblicano nulla. I limiti sono 100 file di input e 10.000 osservazioni per esecuzione, 4 MiB per file e 512 caratteri per stringa. Gli input devono essere file regolari; archivi e alberi di directory non vengono mai aperti. Il riferimento contiene le regole complete sui campi e sul parsing, inclusi i campi che sono esclusivi del JSON.
docs/example-inventory.json è sintetico e non descrive sistemi reali.
Affected significa rigorosamente prima della build correttiva per lo stesso branch e la stessa variante. Non viene inventato alcun limite inferiore né alcuna conclusione sul ciclo di vita.
| Branch e variante | Build correttiva del fornitore |
|---|---|
| 14.1 standard | 14.1-73.37 |
| 13.1 standard | 13.1-64.23 |
| 14.1 FIPS | 14.1-73.37 |
| 13.1 FIPS/NDcPP | 13.1-37.279 |
Le forme di build accettate sono 14.1-73.37, 14.1.73.37 e NS14.1: Build 73.37.nc, facoltativamente contrassegnate come FIPS o NDcPP prima di un marcatore nc opzionale. Fornire solo il testo della build, non un'intera riga di show version.
Quanto segue resta unknown e non viene mai indovinato:
Le osservazioni sono true, false o unknown. Fornirle come flag CLI, booleani JSON o null, oppure come valori documentati delle celle CSV (true, false, unknown o vuoto). Non modificano mai lo stato della versione.
| Osservazione CLI | Significato | La condizione di esposizione si aspetta |
|---|---|---|
--gateway-or-aaa-vserver | È configurato un virtual server Gateway o AAA | true |
Lo stato della versione, la configurazione e la remediation sono riportati separatamente.
| Campo | Valori |
|---|---|
version_status | potentially_affected, fixed_version_reported, unknown |
precondition_status | conditions_observed, condition_not_observed, unknown |
remediation_status | Distingue tra aggiornamento firmware richiesto, verifica della versione richiesta e requisito della versione segnalata. |
exploitability | Sempre not_tested |
version_reason spiega la decisione su branch, build e variante. precondition_status riassume solo le osservazioni dell'operatore e non è mai un'esposizione verificata né un risultato pulito. L'evidenza è sempre un'affermazione non verificata dell'operatore.
I formati sono JSON, CSV sicuro per le formule e HTML autonomo e senza script. Usare --format json|csv|html e --output FILE.