simd-json icon indicating copy to clipboard operation
simd-json copied to clipboard

Nul character allowed in JSON?

Open edgarogh opened this issue 2 years ago • 1 comments

Hello, I'm doing differential fuzzing to find issues in my own JSON lexer, and it seems like simd-json allows nul bytes within an array:

fn main() {
    let mut source = Vec::from(b"[-2374611873366417043\0]".as_slice());
    let _ = dbg!(simd_json::to_borrowed_value(&mut source));
}
[src/main.rs:6] simd_json::to_borrowed_value(&mut source) = Ok(
    Array(
        [
            Static(
                I64(
                    -2374611873366417043,
                ),
            ),
        ],
    ),
)

My lexer and Firefox's JSON.parse both reject it. According to the spec, NUL bytes are not part of allowed whitespace characters.

edgarogh avatar Nov 07 '23 05:11 edgarogh

you are right, this should error 👍 I don't have time to look at it right now but it's a bug in simd-json not your library :)

Licenser avatar Nov 09 '23 10:11 Licenser