
PEACH
Un framework di isolamento del tenant
memtomem's shared credential detector (privacy.py, DEFAULT_PATTERNS) contains a JWT rule whose cost is quadratic in the length of a run of base64url characters:
\beyJ[A-Za-z0-9_-]{8,}.[A-Za-z0-9_-]{8,}.[A-Za-z0-9_-]{8,}\b
A match can be attempted after every - inside such a run, and each attempt scans to the end of the run. privacy.scan() scans the whole input with no length cap, and it runs on the write path (mem_add and indexing) and in session-tracing redaction, so a crafted text holds that path until the scan finishes.
Severity: High (availability). No data is exposed. No CVSS vector or CVE is asserted yet.
2f9eae64, Python 3.13, privacy.scan)| input | time |
|---|---|
eyJ- repeated, 64 KB | 0.51 s |
eyJ- repeated, 128 KB | 1.97 s |
eyJ- repeated, 256 KB | 7.75 s |
memtomem-stm carries the same rule byte-for-byte in its CREDENTIAL_PATTERNS (GHSA-3v6c-9qpg-gf63, draft). The two advisories are published together.
The rule is replaced with the linear-time form memtomem-stm adopted, which gives the same yes/no answer, match count and match ends:
\beyJ(?=[A-Za-z0-9_-]{8})[A-Za-z0-9_]+(?:-(?!eyJ[A-Za-z0-9_-]{8})[A-Za-z0-9_]+)*+.[A-Za-z0-9_-]{8,}.[A-Za-z0-9_-]{8,}\b
memtomem also uses match starts (redaction in session tracing, the span_start reported by the privacy audit commands), so scan() restores each JWT match's start to where the old rule began it. The browser-side pattern list keeps the old rule, unchanged.
Fonte: NVD
Valutazione gratuita delle vulnerabilità
Valuta le tue pratiche di sicurezza cloud in 9 domini di sicurezza per confrontare il tuo livello di rischio e identificare le lacune nelle tue difese.
Richiedi una demo personalizzata
"La migliore esperienza utente che abbia mai visto offre piena visibilità ai carichi di lavoro cloud."
"Wiz fornisce un unico pannello di controllo per vedere cosa sta succedendo nei nostri ambienti cloud."
"Sappiamo che se Wiz identifica qualcosa come critico, in realtà lo è."