Shazzer logo

Unicode characters that get normalized into path traversal characters

Chrome logo 12
Firefox logo 12
Edge logo 12

This vector performs normalization and compares to see if the characters get normalized into path traversal characters

hackvertor
Created byhackvertor
Created Dec 12, 2024
Updated May 28, 2025

Tweet
Detecting browser...
CategoryJavaScript Syntax
VisibilityPublic
TypeJS
CharsetUTF-8
Code used before fuzz:
const charsToCheck = ["\\","/","."];0x0D
const normalizationForms = ["NFKC", "NFC", "NFD", "NFKD"];
Template used:
$[i] > 0x7f && normalizationForms.forEach(form => {0x0D
    const normalized = String.fromCodePoint($[i]).normalize(form);0x0D
    for(let charToCheck of charsToCheck) {0x0D
       if(charToCheck === normalized) {0x0D
            log(String.fromCodePoint($[i])+"("+form+")"+"="+charToCheck);0x0D
        }0x0D
     }0x0D
})

Sample payloads

0 > 0x7f && normalizationForms.forEach(form => {0x0D
    const normalized = String.fromCodePoint(0).normalize(form);0x0D
    for(let charToCheck of charsToCheck) {0x0D
       if(charToCheck === normalized) {0x0D
            alert(String.fromCodePoint(0)+"("+form+")"+"="+charToCheck);0x0D
        }0x0D
     }0x0D
})

Fuzz results

Chrome logo
Chrome 144.0.0.0 desktop Windows NT 10.0

Updated

Sat Jan 31 2026
Found 12 results
Loading...
Chrome logo
Chrome 141.0.0.0 desktop macOS 10.15.7older version

Updated

Wed Oct 29 2025
Found 12 results
Loading...
Firefox logo
Firefox 147.0 desktop Linux

Updated

Sun Feb 01 2026
Found 12 results
Loading...
Firefox logo
Firefox 139.0 desktop macOS 10.15older version

Updated

Sat May 31 2025
Found 12 results
Loading...
Edge logo
Microsoft Edge 144.0.0.0 desktop Windows NT 10.0

Updated

Fri Jan 30 2026
Found 12 results
Loading...