Quali byte vengono eliminati da info-zip?

0

Vedo molti software che controllano solo .. tra i separatori di percorso. Per molto tempo ho pensato che non ci fossero possibilità di sfruttare byte non validi (ad esempio, il tentativo di creare .‌. porterà a .?. su osx) .

Ma ieri ho visto cve-2003-0282. Quindi quali sono i caratteri non validi che possono attivare quel bug sulle versioni vulnerabili.

Ho provato a cercare di più su questo, ma vede tutti i link pertinenti sul rapporto cve sono morti .

    
posta user2284570 06.05.2016 - 17:22
fonte

1 risposta

0

Da la patch si può vedere che sta saltando qualsiasi controllo e alcuni altri caratteri ( [\x00-\x1f\x7f\xff] ) durante la costruzione del nome del file di destinazione:

+        * SECURITY: Skip past control characters if the user
+        * didn't OK use of absolute pathnames. lhh - this is
+        * a very quick, ugly, inefficient fix; it traverses
+        * the WHOLE path, eating up these as it comes to it.
+        */
+       dp = cp;
+       do {
+           workch = (uch)(*dp);
                 ...
+            } else if (workch == '.' && !snarf_ddot) {
+               snarf_ddot = TRUE;
+           } else if (isprint(workch) ||
+                      ((workch > 127) && (workch <= 254))) {
+               /*
+                * Since we found a printable, non-ctrl char,
+                * we can stop looking for '../', the amount
+                * in ../!
+                */
+               break;
+           }
+
+           dp++;
+        } while (*dp != 0);
    
risposta data 06.05.2016 - 18:21
fonte

Leggi altre domande sui tag