
Verificatore offline di evidenze per NetScaler ADC / Gateway per CVE-2026-88774. Evidenze di firmware e configurazione segnalate. Python standalone; report JSON/CSV/HTML; nessun payload di exploit.
Triage offline di versione e configurazione per CVE-2026-88774, il bypass delle policy di espressione URL HTTP di NetScaler.
Un checker Python 3.10+ autonomo, che utilizza solo la libreria standard, che confronta le evidenze di build e configurazione NetScaler riportate dall'operatore con le build corrette dal fornitore. È completamente offline: non ha accesso all'appliance, esecuzione di applicazioni, payload di exploit o modalità di rete, e copre solo questa CVE.
[!IMPORTANT] Le versioni riportate sono dichiarazioni dell'operatore, non uno stato runtime verificato.
potentially_affectednon indica sfruttabilità confermata,fixed_version_reportednon è una patch verificata né una garanzia di sicurezza, eunknownnon è mai sicuro. Ogni risultato riportaexploitability: not_tested.
Python 3.10 o superiore. Non c'è nulla da installare e non ci sono dipendenze; usa python3 dove python non è disponibile. Esegui --help per tutte le opzioni e --tool-version per la versione del checker.
# One reported build
python netscaler_cve_2026_88774_check.py --version 14.1-73.36 --variant standard
# The synthetic example inventory as a self-contained HTML report
python netscaler_cve_2026_88774_check.py --inventory docs/example-inventory.json --format html --output report.html
# Your own CSV inventory as JSON, with a non-zero exit when firmware is potentially affected
python netscaler_cve_2026_88774_check.py --csv-list inventory.csv --format json --fail-on-finding
I report vengono inviati allo standard output come JSON a meno che non venga specificato --output. Un file di report esistente viene rifiutato a meno che non si passi --force.
--version, --inventory e --csv-list possono essere combinati in un'unica esecuzione. Ne è richiesto almeno uno.
| Opzione | Scopo |
|---|---|
--version BUILD | Una build segnalata. Ripetibile. |
--variant standard|fips|ndcpp | Variante applicata a ogni --version. Le varianti ambigue non specificate rimangono unknown. |
--build-source | Provenienza applicata a ogni --version. Solo empty, unknown, official e citrix consentono il confronto; qualsiasi altro valore lascia il risultato unknown. |
--inventory FILE | Inventario JSON rigoroso. Ripetibile. |
--csv-list FILE | Inventario CSV rigoroso con un'intestazione version. Ripetibile. |
--http-url-policy-expression | Osservazione di configurazione: true, false o unknown (predefinito). Vedere Osservazioni di configurazione. |
--format json|csv|html | Formato del report. Il valore predefinito è json. |
--output FILE | Nuovo file di report. Il valore predefinito è stdout. La directory di output deve già esistere. |
--force | Sostituisce esplicitamente un file di report esistente. |
--fail-on-finding | Esce con 1 quando un risultato è potentially_affected. Vedere Codici di uscita e interruzione. |
--tool-version | Stampa il nome e la versione del checker. |
Si noti che --version accetta una build NetScaler, non la versione del checker.
Inventari. Gli inventari JSON sono oggetti UTF-8 o array non vuoti; ogni voce richiede il valore intero schema_version: 1 e una stringa version (vuota equivale a unknown), e può aggiungere label, variant, build_source, il campo di osservazione e fino a 16 version_candidates. I file CSV richiedono una colonna version e possono aggiungere label, variant, build_source e la colonna di osservazione; schema_version e version_candidates sono esclusivi del formato JSON. Campi sconosciuti, chiavi o intestazioni duplicate, tipi errati e righe malformate sono errori.
Limiti. Fino a 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 il contratto di input completo, e docs/example-inventory.json è un inventario sintetico che non descrive alcun sistema reale.
Una build è potenzialmente interessata solo quando è strettamente precedente alla build corretta per lo stesso ramo e la stessa variante. Non viene inventato alcun limite inferiore né alcuna conclusione sul ciclo di vita.
| Ramo e variante | Build corretta dal 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 |
Gli altri rami e 14.1 NDcPP rimangono unknown. Una variante 13.1 non specificata rimane unknown quando i confronti standard e FIPS/NDcPP sono discordanti.
Testo di build accettato. 14.1-73.37, 14.1.73.37 e NS14.1: Build 73.37.nc, facoltativamente contrassegnati come FIPS o NDcPP prima di un marcatore nc facoltativo. Fornire solo il testo della build, non un'intera riga di show version. Evidenze malformate, qualificate, non ASCII, in conflitto, build personalizzate e non coperte rimangono unknown.
Fornire osservazioni esplicite come flag CLI true, false o unknown, booleani JSON o null, oppure valori CSV documentati. Le osservazioni restano separate dallo stato della versione e non dimostrano la raggiungibilità. Non viene raccolto alcun dato di configurazione o di processo locale.
| Osservazione CLI | Significato | La condizione di esposizione prevede |
|---|---|---|
--http-url-policy-expression | Una policy utilizza un'espressione basata su URL HTTP | true |