4 ms·
> A utf8 decoder should reject portions of utf8 > streams that don't use the shortest possible encoding so you would say that there should be no file
by cbr 15y ago
> A utf8 decoder should reject portions of utf8
> streams that don't use the shortest possible encoding
so you would say that there should be no file
names using the cyrillic o?
I'm sorry, I was unclear. I should have said "don't use the shortest possible encoding for a code point". Cyrillic 'o' is code point U+043E while roman 'o' is code point U+006F. The canonicalization attack relies on overly liberal utf8 decoders that would allow multiple binary streams to be interpreted as, say, code point U+006F.
This looks like the canonicalization attack, but is a different problem, one that is not solved by fixing decoders.
- Sephr 15y agoThe Cyrillic o isn't being interpreted as U+006F, it just looks like it. A UTF-8 decoder doesn't know how it's output is going to be used.
- sesqu 15y agoThat's not the point. The attack relies on some nonconforming decoders exhibiting a many-to-one mapping of bitstreams to codepoints, changing the semantics of the bistream.